cpu篇html
每一秒採集一次數據:linux
r : 當前運行隊列中線程的數目.表明線程處於可運行狀態,但CPU 還未能執行.(值越大系統越忙)web
b : 當前進程阻塞並等待IO 請求完成的數目(值越大系統越忙)數據庫
swpd :虛擬內存已使用的大小(大於0表示內存不足)緩存
in : 當前中斷被處理的數目(值越大系統越忙)ide
cs : 當前kernel system中,發生上下文切換的數目(值越大系統越忙)工具
free : 空閒的物理內存的大小性能
buff : buffer緩存大小(buffer是針對數據元文件的緩存,是對數據塊處理)spa
cache : cache緩存大小(cacha是對數據文件緩存,是文件系統層的)線程
si : 每秒從磁盤讀入虛擬內存的大小,若是這個值大於0,表示物理內存不夠用或者內存泄露了,經過ps查找最大進程使用的程序
so : 每秒虛擬內存寫入磁盤的大小
bi:從塊設備讀入的數據總量(讀磁盤)(KB/S)
bo:寫入到塊設備的數據總量(寫磁盤)(KB/S)
磁盤讀寫的時候,這2個值越大(如超出1M),能看到CPU在IO等待的值也會越大。
in : 系統每秒CPU的中斷次數,包括時間中斷
cs : 每秒上下文切換次數,能夠做爲web測壓的選項,若是該值過大,表示CPU大部分浪費在上下文切換,沒有充分利用cpu資源
us : 用戶進程消耗的CPU 時間,
sy : 內核進程消耗的CPU時間,Sy的值較高時,說明內核消耗的CPU資源不少
wa : IO等待CPU處理的時間。wa的值高時,說明IO等待比較嚴重,此時磁盤可能有大量的操做
id : CPU處於空閒狀態時間百分比
實例一
根據觀察值,咱們能夠獲得如下結論:
1.有大量的中斷(in) 和較少的上下文切換(cs).這意味着一個單一的進程在產生對設備的大量請求.
2.進一步顯示某單個應用,user time(us)常常在85%或者更多.考慮到較少的上下文切換,這個應用應該還在處理器中被處理.
3.運行隊列還在可接受的性能範圍內,其中有2個地方,是超出了容許限制.
案例二
根據觀察值,咱們能夠獲得如下結論:
1.上下文切換數目高於中斷數目,說明kernel中至關數量的時間都開銷在上下文切換線程.
2.大量的上下文切換將致使CPU 利用率分類不均衡.很明顯實際上等待io 請求的百分比(wa)很是高,以及user time百分比很是低(us).
3.由於CPU 都阻塞在IO請求上,因此運行隊列裏也有至關數目的可運行狀態線程在等待執行.
mpstat 工具的使用
參考:http://www.linuxeden.com/html/softuse/20131229/147003.html
# mpstat -P ALL 1
Linux 3.2.0-4-amd64 (vmware1) 04/10/2014 _x86_64_(2 CPU)
04:15:33 AMCPU%usr%nice%sys %iowait%irq%soft%steal%guest%idle
04:15:34 AMall0.000.000.000.000.000.000.000.00100.00
04:15:34 AM00.000.000.000.000.000.000.000.00100.00
04:15:34 AM10.000.000.000.000.000.000.000.00100.00
%user用戶進程所使用 CPU 的百分比。用戶進程是用於應用程序(如 Oracle 數據庫)的非內核進程。
%nice 表示使用 nice 命令對進程進行降級時 CPU 的百分比。nice 命令更改進程的優先級。
%system 表示內核進程使用的 CPU 百分比
%iowait 表示等待 I/O 所使用的 CPU 時間百分比
%irq 表示用於處理系統中斷的 CPU 百分比
%soft 表示用於軟件中斷的 CPU 百分比
%steal : 顯示虛擬機管理器在服務另外一個虛擬處理器時虛擬CPU處在非自願等待下花費時間的百分比(注意:虛擬機纔有的選項)
%guest : 顯示運行虛擬處理器時CPU花費時間的百分比(注意:虛擬機纔有的選項)
%idle CPU 的空閒時間
%intr/s 每秒 CPU 接收的中斷總數
cpu篇總結
監控 CPU 性能由如下幾個部分組成:
1.檢查system的運行隊列,以及肯定不要超出每一個處理器3個可運行狀態線程的限制.
2.肯定CPU 利用率中user/system比例維持在70/30
3.當CPU 開銷更多的時間在system mode,那就說明已經超負荷而且應該嘗試從新調度優先級
4.當I/O 處理獲得增加,CPU 範疇的應用處理將受到影響