不錯的文章(linux系統性能監控--CPU利用率):https://blog.csdn.net/ctthuangcheng/article/details/52795477linux
在linux的系統維護中,可能須要常常查看cpu使用率,分析系統總體的運行狀況。而監控CPU的性能通常包括如下3點:運行隊列、CPU使用率和上下文切換。
對於每個CPU來講運行隊列最好不要超過3,例如,若是是雙核CPU就不要超過6。若是隊列長期保持在3以上,說明任何一個進程運行時都不能立刻獲得cpu的響應,這時可能須要考慮升級cpu。另外滿負荷運行cpu的使用率最好是user空間保持在65%~70%,system空間保持在30%,空閒保持在0%~5% 。
下面總結下查看CPU使用率經常使用的幾個命令。
一、top
這個命令很經常使用,在第三行有顯示CPU當前的使用狀況。
[root@li676-235 ~]# top -bn 1 -i -c
top - 14:19:51 up 138 days, 7:15, 1 user, load average: 0.20, 0.33, 0.39
Tasks: 115 total, 1 running, 114 sleeping, 0 stopped, 0 zombie
Cpu(s): 4.5%us, 3.8%sy, 0.0%ni, 91.0%id, 0.6%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1014660k total, 880512k used, 134148k free, 264904k buffers
Swap: 262140k total, 34788k used, 227352k free, 217144k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12760 root 20 0 15084 1944 1632 R 2.0 0.2 0:00.01 top -bn 1 -i -c
如上所示,top命令能夠看到整體的系統運行狀態和cpu的使用率 。
%us:表示用戶空間程序的cpu使用率(沒有經過nice調度)
%sy:表示系統空間的cpu使用率,主要是內核程序。
%ni:表示用戶空間且經過nice調度過的程序的cpu使用率。
%id:空閒cpu
%wa:cpu運行時在等待io的時間
%hi:cpu處理硬中斷的數量
%si:cpu處理軟中斷的數量
%st:被虛擬機偷走的cpu
緩存
2. ps命令查看CPU狀態
ps(process status)命令用來彙報處理器狀態信息,示例用法:
ps ux
ps -H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu
上述命令:第一條按默認方式查看狀態,第二條命令指定顯示列和排序方式,使用時任選其一。
性能
3. vmstatspa
root@vm-199:~# vmstat 2 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 0 1 97640 50348 192812 578352 0 0 3 20 1 12 1 2 93 3 0 0 97640 54636 192812 578360 0 0 0 14 126 147 2 4 86 8 0 3 97640 53908 192816 578356 0 0 0 62 96 110 2 4 86 9 0 0 97640 54156 192816 578360 0 0 0 14 113 118 3 5 83 11 0 0 97640 53908 192816 578360 0 0 0 16 107 103 2
(1)進程procs: r:在運行隊列中等待的進程數 。 b:在等待io的進程數 。 (2)Linux 內存監控內存memoy: swpd:現時可用的交換內存(單位KB)。 free:空閒的內存(單位KB)。 buff: 緩衝去中的內存數(單位:KB)。 cache:被用來作爲高速緩存的內存數(單位:KB)。 (3) Linux 內存監控swap交換頁面 si: 從磁盤交換到內存的交換頁數量,單位:KB/秒。 so: 從內存交換到磁盤的交換頁數量,單位:KB/秒。 (4)Linux 內存監控 io塊設備: bi: 發送到塊設備的塊數,單位:塊/秒。 bo: 從塊設備接收到的塊數,單位:塊/秒。 (5)Linux 內存監控system系統: in: 每秒的中斷數,包括時鐘中斷。 cs: 每秒的環境(上下文)轉換次數。 (6)Linux 內存監控cpu中央處理器: cs:用戶進程使用的時間 。以百分比表示。 sy:系統進程使用的時間。 以百分比表示。 id:中央處理器的空閒時間 。以百分比表示。