CPU信息查看:
cpu信息:cat /etc/cpuinfo 或者 cat /proc/cpuinfo
查看cpu物理核數:cat /etc/cpuinfo |grep 'physical id' | sort |uniq|wc -l
查看cpu邏輯核數:cat /etc/cpuinfo | grep processor | wc -l
查看cpu是幾核cpu:cat /proc/cpuinfo |grep 'cores' | uniq
查看cpu型號:cat /etc/cpuinfo | grep 'model name'
processor :系統中邏輯處理核的編號。對於單核處理器,則課認為是其CPU編號,對於多核處理器則可以是物理核、或者使用超線程技術虛擬的邏輯核
vendor_id :CPU制造商
cpu family :CPU產品系列代號
model :CPU屬於其系列中的哪一代的代號
model name:CPU屬於的名字及其編號、標稱主頻
stepping :CPU屬於制作更新版本
cpu MHz :CPU的實際使用主頻
cache size :CPU二級緩存大小
physical id :物理CPU的標號
siblings :單個物理CPU內封裝的邏輯核數
core id :當前物理核在其所處CPU中的編號,這個編號不一定連續
cpu cores :位於相同物理封裝中的內核數量
apicid :用來區分不同邏輯核的編號,系統中每個邏輯核的此編號必然不同,此編號不一定連續
fpu :是否具有浮點運算單元(Floating Point Unit)
fpu_exception :是否支持浮點計算異常
cpuid level :執行cpuid指令前,eax寄存器中的值,根據不同的值cpuid指令會返回不同的內容
wp :表明當前CPU是否在內核態支持對用戶空間的寫保護(Write Protection)
flags :當前CPU支持的功能
bogomips :在系統內核啟動時粗略測算的CPU速度(Million Instructions Per Second)
clflush size :每次刷新緩存的大小單位
cache_alignment :緩存地址對齊單位
address sizes :可訪問地址空間位數
① 物理CPU
實際Server中插槽上的CPU個數
物理cpu數量,可以數不重復的 physical id 有幾個
② 邏輯CPU
Linux用戶對 /proc/cpuinfo 這個文件肯定不陌生. 它是用來存儲cpu硬件信息的
信息內容分別列出了processor 0 – n 的規格。這里需要注意,如果你認為n就是真實的cpu數的話, 就大錯特錯了
一般情況,我們認為一顆cpu可以有多核,加上intel的超線程技術(HT), 可以在邏輯上再分一倍數量的cpu core出來
邏輯CPU數量=物理cpu數量 x cpu cores 這個規格值 x 2(如果支持並開啟ht)
備注一下:Linux下top查看的CPU也是邏輯CPU個數
③ CPU核數
一塊CPU上面能處理數據的芯片組的數量、比如現在的i5 760,是雙核心四線程的CPU、而 i5 2250 是四核心四線程的CPU
一般來說,物理CPU個數×每顆核數就應該等於邏輯CPU的個數,如果不相等的話,則表示服務器的CPU支持超線程技術
vendor id 如果處理器為英特爾處理器,則字符串是 GenuineIntel。
processor 包括這一邏輯處理器的唯一標識符。
physical id 包括每個物理封裝的唯一標識符。
core id 保存每個內核的唯一標識符。
siblings 列出了位於相同物理封裝中的邏輯處理器的數量。
cpu cores 包含位於相同物理封裝中的內核數量。
1. 擁有相同 physical id 的所有邏輯處理器共享同一個物理插座,每個 physical id 代表一個唯一的物理封裝。
2. Siblings 表示位於這一物理封裝上的邏輯處理器的數量,它們可能支持也可能不支持超線程(HT)技術。
3. 每個 core id 均代表一個唯一的處理器內核,所有帶有相同 core id 的邏輯處理器均位於同一個處理器內核上。簡單的說:“siblings”指的是一個物理CPU有幾個邏輯CPU,”cpu cores“指的是一個物理CPU有幾個核。
4. 如果有一個以上邏輯處理器擁有相同的 core id 和 physical id,則說明系統支持超線程(HT)技術。
5. 如果有兩個或兩個以上的邏輯處理器擁有相同的 physical id,但是 core id不同,則說明這是一個多內核處理器。cpu cores條目也可以表示是否支持多內核。
硬盤信息查看:
查看系統中文件的使用情況:df -h
Size 分割區總容量
Used 已使用的大小
Avail 剩下的大小
Use% 使用的百分比
Mounted on 路徑地址
FreeBSD下,當硬盤容量已滿時,您可能會看到已使用的百分比超過 100%,因為 FreeBSD 會留一些空間給 root,讓 root 在檔案系統滿時,還是可以寫東西到該檔案系統中,以進行管理。
查看當前目錄下各個文件及目錄占用空間大小:du -sh *
內存信息查看:
free -h
Mem:內存信息
Swap:Swap交換分區並不是真正的內存,它的本質還是物理硬盤。Swap分區在系統的物理內存(這里應該是運行內存)不夠用的時候,把物理內存中的一部分空間釋放出來,以供當前運行的程序使用。那些被釋放的空間可能來自一些很長時間沒有什么操作的程序,這些被釋放的空間被臨時保存到Swap分區中,等到那些程序要運行時,再從Swap分區中恢復保存的數據到內存中。
* total:內存總數
* used:已使用內存數
* free:空閑內存數
* shared:當前廢棄不用
* buffers:緩存內存數(Buffer)
* cached:緩存內舒數(Page)
(-/+ buffers/cache)行:
* (-buffers/cache): 真正使用的內存數,指的是第一部分的 used - buffers - cached
* (+buffers/cache): 可用的內存數,指的是第一部分的 free + buffers + cached
實際上不要看free少就覺得內存不足了,buffers和cached都是可以在使用內存時拿來用的,應該以(-/+ buffers/cache)行的free和used來看。只要沒發現swap的使用,就不用太擔心,如果swap用了很多,那就要考慮增加物理內存了。
顯卡信息查看:
nvidia-smi
表格中會顯示顯卡的一些信息,第一行是版本信息,第二行是標題欄,第三行就是具體的顯卡信息了,如果有多個顯卡,會有多行,每一行的信息值對應標題欄對應位置的信息。
* GPU:編號
* Fan:風扇轉速,在0到100%之間變動,這里是42%
* Name:顯卡名,這里是TITAN X
* Temp:顯卡溫度,這里是69攝氏度
* Perf:性能狀態,從P0到P12,P0性能最大,P12最小
* Persistence-M:持續模式的狀態開關,該模式耗能大,但是啟動新GPU應用時比較快,這里是off
* Pwr:能耗
* Bus-Id:涉及GPU總線的東西
* Disp.A:表示GPU的顯示是否初始化
* Memory-Usage:現存使用率,這里已經快滿了
* GPU-Util:GPU利用率
* Compute M.:計算模式
需要注意的一點是顯存占用率和GPU占用率是兩個不一樣的東西,類似於內存和CPU,兩個指標的占用率不一定是互相對應的。
cpu使用率/負載
top
我們來結合這個視圖講解各個數據的含義。
第一行:
10:01:23 — 當前系統時間
126 days, 14:29 — 系統已經運行了126天14小時29分鍾(在這期間沒有重啟過)
2 users — 當前有2個用戶登錄系統
load average: 1.15, 1.42, 1.44 — load average后面的三個數分別是1分鍾、5分鍾、15分鍾的負載情況。
load average數據是每隔5秒鍾檢查一次活躍的進程數,然后按特定算法計算出的數值。如果這個數除以邏輯CPU的數量,結果高於5的時候就表明系統在超負荷運轉了。
第二行:
Tasks — 任務(進程),系統現在共有183個進程,其中處於運行中的有1個,182個在休眠(sleep),stoped狀態的有0個,zombie狀態(僵屍)的有0個。
6.7% us — 用戶空間占用CPU的百分比。
0.4% sy — 內核空間占用CPU的百分比。
0.0% ni — 改變過優先級的進程占用CPU的百分比
92.9% id — 空閑CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中斷(Hardware IRQ)占用CPU的百分比
0.0% si — 軟中斷(Software Interrupts)占用CPU的百分比
8306544k total — 物理內存總量(8GB)
7775876k used — 使用中的內存總量(7.7GB)
530668k free — 空閑內存總量(530M)
79236k buffers — 緩存的內存量 (79M)
第五行:swap交換分區
2031608k total — 交換區總量(2GB)
2556k used — 使用的交換區總量(2.5M)
2029052k free — 空閑交換區總量(2GB)
4231276k cached — 緩沖的交換區總量(4GB)
這里要說明的是不能用windows的內存概念理解這些數據,如果按windows的方式此台服務器“危矣”:8G的內存總量只剩下530M的可用內存。Linux的內存管理有其特殊性,復雜點需要一本書來說明,這里只是簡單說點和我們傳統概念(windows)的不同。
第四行中使用中的內存總量(used)指的是現在系統內核控制的內存數,空閑內存總量(free)是內核還未納入其管控范圍的數量。納入內核管理的內存不見得都在使用中,還包括過去使用過的現在可以被重復利用的內存,內核並不把這些可被重新使用的內存交還到free中去,因此在linux上free內存會越來越少,但不用為此擔心。
如果出於習慣去計算可用內存數,這里有個近似的計算公式:第四行的free + 第四行的buffers/cached,按這個公式此台服務器的可用內存。
對於內存監控,在top里我們要時刻監控第五行swap交換分區的used,如果這個數值在不斷的變化,說明內核在不斷進行內存和swap的數據交換,這是真正的內存不夠用了。
第七行以下:各進程(任務)的狀態監控
PID — 進程id
USER — 進程所有者
PR — 進程優先級
NI — nice值。負值表示高優先級,正值表示低優先級
VIRT — 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES
RES — 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA
SHR — 共享內存大小,單位kb
S — 進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=僵屍進程
%CPU — 上次更新到現在的CPU時間占用百分比
%MEM — 進程使用的物理內存百分比
TIME+ — 進程使用的CPU時間總計,單位1/100秒
COMMAND — 進程名稱(命令名/命令行)