1. 程式人生 > 實用技巧 >Linux常用主機效能測試

Linux常用主機效能測試

本文出自:https://blog.51cto.com/chaixinwang/2082849


sar是System Activity Reporter(系統活動情況報告)的縮寫。sar工具將對系統當前的狀態進行取樣,然後通過計算資料和比例來表達系統的當前執行狀態。它的特點是可以連續對系統取樣,獲得大量的取樣資料;取樣資料和分析的結果都可以存入檔案,所需的負載很小。sar是目前Linux上最為全面的系統性能分析工具之一,可以從14個大方面對系統的活動進行報告,包括檔案的讀寫情況、系統呼叫的使用情況、串列埠、CPU效率、記憶體使用狀況、程序活動及IPC有關的活動等,使用也是較為複雜。

檢視CPU使用率: sar -u 1 2 (後面兩個引數表示監控的頻率,比如例子中的1和2,表示每秒取樣一次,總共取樣兩次)

截圖23.png

·%user 使用者模式下消耗的CPU時間的比例;

·%nice 通過nice改變了程序排程優先順序的程序,在使用者模式下消耗的CPU時間的比例

·%system 系統模式下消耗的CPU時間的比例;

·%iowait CPU等待磁碟I/O導致空閒狀態消耗的時間比例;

·%steal 利用Xen等作業系統虛擬化技術,等待其它虛擬CPU計算佔用的時間比例;

·%idle CPU空閒時間比例;

1[[email protected]~]#sar-q12

截圖24.png

·runq-sz:執行佇列的長度(等待執行的程序數)

·

plist-sz:程序列表中程序(processes)和執行緒(threads)的數量

·ldavg-1:最後1分鐘的系統平均負載

·ldavg-5:過去5分鐘的系統平均負載

·ldavg-15:過去15分鐘的系統平均負載

查詢記憶體: sar -r 1 2

1[[email protected]~]#sar-r12

截圖25.png

·kbmemfree:這個值和free命令中的free值基本一致,所以它不包括buffer和cache的空間.

·kbmemused:這個值和free命令中的used值基本一致,所以它包括buffer和cache的空間.

·%memused:實體記憶體使用率,這個值是kbmemused和記憶體總量(不包括swap)的一個百分比.

·kbbuffers和kbcached:這兩個值就是free命令中的buffer和cache.

·kbcommit:保證當前系統所需要的記憶體,即為了確保不溢位而需要的記憶體(RAM+swap).

·%commit:這個值是kbcommit與記憶體總量(包括swap)的一個百分比.

查詢頁面交換:sar -W 1 3

1[[email protected]~]#sar-W13

截圖26.png

·pswpin/s:每秒系統換入的交換頁面(swap page)數量

·pswpout/s:每秒系統換出的交換頁面(swap page)數量

free

free工具用來查詢系統可用記憶體,顯示當前系統未使用和已使用的記憶體數目,還可以顯示被核心使用的記憶體快取區。

截圖27.png

·total:記憶體總數

·used:已經使用的記憶體數

·free:空閒的記憶體數

·shared:當前已經廢棄不用

·buffers Buffer:快取記憶體數

程式實實在在吃掉的記憶體數:Mem中的used - buff/cache

可以挪用的記憶體總數:Mem中的free + buff/cache

swap:也就是我們通常所說的虛擬記憶體。當記憶體使用到一定值的時候,會開始進行交換(怎麼檢視額定值 cat /proc/meminfo)

page cache 和 buffer cache的區別?

簡單來說,page cache用來快取檔案資料,buffer cache用來快取磁碟資料。在有檔案系統的情況下,對檔案操作,那麼資料會快取到page cache。如果直接採用dd等工具對磁碟進行讀寫,那麼資料會快取到buffer cache。

free -s 10 #週期性的查詢記憶體使用情況,每10s 執行一次命令

iostat

被用於監視系統輸入輸出裝置和CPU使用情況,它的特點是彙報磁碟活動統計情況,同時也會彙報出CPU的使用情況。

1[[email protected]~]#iostat11

截圖28.png

注:如果%iowait的值過高,表示硬碟存在I/O瓶頸。 %idle值高,表示CPU較空閒。如果%idle值高但系統響應慢時,有可能是CPU等待分配記憶體,此時應加大記憶體容量。%idle值如果持續低於10,那麼系統的CPU處理能力相對較低,表明系統中最需要解決的資源是CPU。

·tps:該裝置每秒的傳輸次數;

·kB_read/s:每秒從裝置(drive expressed)讀取的資料量;

·kB_wrtn/s:每秒向裝置(drive expressed)寫入的資料量;

·kB_read:讀取的總資料量;kB_wrtn:寫入的總數量資料量;

vmstat

顯示虛擬記憶體狀態,但是他可以報告關於程序、記憶體、I/O等系統執行狀態。

截圖29.png

Procs(程序)
r: 執行佇列中程序數量,這個值也可以判斷是否需要增加CPU。(長期大於1)
b: 等待IO的程序數量。

Memory(記憶體)
swpd: 使用虛擬記憶體大小,如果swpd的值不為0,但是SI,SO的值長期為0,這種情況不會影響系統性能。
free: 空閒實體記憶體大小。
buff: 用作緩衝的記憶體大小。
cache: 用作快取的記憶體大小,如果cache的值大的時候,說明cache處的檔案數多,如果頻繁訪問到的檔案都能被cache處,那麼磁碟的讀IO bi會非常小。

Swap
si: 每秒從交換區寫到記憶體的大小,由磁碟調入記憶體。
so: 每秒寫入交換區的記憶體大小,由記憶體調入磁碟。
注意:記憶體夠用的時候,這2個值都是0,如果這2個值長期大於0時,系統性能會受到影響,磁碟IO和CPU資源都會被消耗。有些朋友看到空閒記憶體(free)很少的或接近於0時,就認為記憶體不夠用了,不能光看這一點,還要結合si和so,如果free很少,但是si和so也很少(大多時候是0),那麼不用擔心,系統性能這時不會受到影響的。

IO(現在的Linux版本塊的大小為1kb)
bi: 每秒讀取的塊數
bo: 每秒寫入的塊數
注意:隨機磁碟讀寫的時候,這2個值越大(如超出1024k),能看到CPU在IO等待的值也會越大。

system(系統)
in: 每秒中斷數,包括時鐘中斷。
cs: 每秒上下文切換數。
注意:上面2個值越大,會看到由核心消耗的CPU時間會越大。

CPU(以百分比表示)
us: 使用者程序執行時間百分比(user time)
us的值比較高時,說明使用者程序消耗的CPU時間多,但是如果長期超50%的使用,那麼我們就該考慮優化程式演算法或者進行加速。
sy: 核心系統程序執行時間百分比(system time)
sy的值高時,說明系統核心消耗的CPU資源多,這並不是良性表現,我們應該檢查原因。
wa: IO等待時間百分比
wa的值高時,說明IO等待比較嚴重,這可能由於磁碟大量作隨機訪問造成,也有可能磁碟出現瓶頸(塊操作)。

id: 空閒時間百分比

top

可以實時動態地檢視系統的整體執行情況,是一個綜合了多方資訊監測系統性能和執行資訊的實用工具,是Linux下的工作管理員。通過top命令所提供的互動式介面,用熱鍵可以管理。熱鍵如下:

·q:退出top命令

·<Space>:立即重新整理

·s:設定重新整理時間間隔

·c:顯示命令完全模式

·t::顯示或隱藏程序和CPU狀態資訊

·m:顯示或隱藏記憶體狀態資訊

·l:顯示或隱藏uptime資訊

·f:增加或減少程序顯示標誌

·S:累計模式,會把已完成或退出的子程序佔用的CPU時間累計到父程序的MITE+

·P:按%CPU使用率排行

·T:按MITE+排行

·M:按%MEM排行

·u:指定顯示使用者程序

·r:修改程序renice值

·kkill:程序

·i:只顯示正在執行的程序

·W:儲存對top的設定到檔案^/.toprc,下次啟動將自動呼叫toprc檔案的設定。

·h:幫助命令。

·q:退出

注:強調一下,使用頻率最高的是P、T、M,因為通常使用top,我們就想看看是哪些程序最耗cpu資源、佔用的記憶體最多; 注:通過”shift + >”或”shift + <”可以向右或左改變排序列 如果只需要檢視記憶體:可用free命令。只檢視uptime資訊(第一行),可用uptime命令

1[[email protected]~]#top

截圖30.png

第一行

·16:56:31系統當前時間

·,30系統開機到現在經過了多少時間

·3 users : 當前3使用者線上

·load average: 0.15, 0.13, 0.18系統1分鐘、5分鐘、15分鐘的CPU負載資訊

第二行

·Tasks:任務;

·205 total:很好理解,就是當前有358個任務,也就是358個程序。

·3running:3個程序正在執行

·202sleeping:202個程序睡眠

·0 stopped:停止的程序數

·0 zombie:僵死的程序數

第三行

·Cpu(s):表示這一行顯示CPU總體資訊

·0.7%us:使用者態程序佔用CPU時間百分比,不包含renice值為負的任務佔用的CPU的時間。

·2.2%sy:核心佔用CPU時間百分比

·2.6%ni:改變過優先順序的程序佔用CPU的百分比

·93.7%id:空閒CPU時間百分比

·0.0%wa:等待I/O的CPU時間百分比

·0.0%hi:CPU硬中斷時間百分比

·0.7%si:CPU軟中斷時間百分比

·注:這裡顯示資料是所有cpu的平均值,如果想看每一個cpu的處理情況,按1即可;摺疊,再次按1;

第四

·Men:記憶體的意思

·total:實體記憶體總量

·used:使用的實體記憶體量

·free:空閒的實體記憶體量

·buffers:用作核心快取的實體記憶體量

第五行

·Swap:交換空間

·total:交換區總量

·used:使用的交換區量

·free:空閒的交換區量

·cached:緩衝交換區總量

程序資訊

·PID:程序的ID

·USER:程序所有者

·PR:程序的優先級別,越小越優先被執行

·NInice:值

·VIRT:程序佔用的虛擬記憶體

·RES:程序佔用的實體記憶體

·SHR:程序使用的共享記憶體

·S:程序的狀態。S表示休眠,R表示正在執行,Z表示僵死狀態,N表示該程序優先值為負數

·%CPU:程序佔用CPU的使用率

·%MEM:程序使用的實體記憶體和總記憶體的百分比

·TIME+:該程序啟動後佔用的總的CPU時間,即佔用CPU使用時間的累加值。

·COMMAND:程序啟動命令名稱

1Github上發現了一個Linux命令搜尋工具,很好用,介紹給大家:https://jaywcjlove.github.io/linux-command/


轉載於:https://blog.51cto.com/bosszhang/2083129