1. 程式人生 > 其它 >linux 排查cpu負載過高原因

linux 排查cpu負載過高原因

linux 排查cpu負載過高原因

CPU負載檢視方法:

使用vmstat檢視系統維度的CPU負載

使用top檢視程序維度的CPU負載

一、測試工具

1、使用 vmstat 檢視系統緯度的 CPU 負載:
可以通過 vmstat 從系統維度檢視 CPU 資源的使用情況。
用法說明:

格式:vmstat -n 1# -n 1 表示結果一秒重新整理一次。示例輸出:

[root@wangerxiao ~]# vmstat  -t 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- -----timestamp-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st                 CST
 3  0      0 5910832 134096 3931732    0    0     0     1    0    1  0  0 100  0  0 2016-11-13 19:57:36
 0  0      0 5910816 134096 3931732    0    0     0     0  274  511  0  0 100  0  0 2016-11-13 19:57:37

回顯說明:

返回結果中的主要資料列說明:

r 表示系統中 CPU 等待處理的執行緒。由於 CPU 每次只能處理一個執行緒,所以,該數值越大,通常表示系統執行越慢。
us:使用者模式消耗的 CPU 時間百分比。該值較高時,說明使用者程序消耗的 CPU 時間比較多,比如,如果該值長期超過 50%,則需要對程式演算法或程式碼等進行優化。
sy:核心模式消耗的 CPU 時間百分比。
waIO 等待消耗的 CPU 時間百分比。該值較高時,說明 IO 等待比較嚴重,這可能磁碟大量作隨機訪問造成的,也可能是磁碟效能出現了瓶頸。
id:處於空閒狀態的 CPU 時間百分比。如果該值持續為 0,同時 sy  us 的兩倍,則通常說明系統則面臨著 CPU 資源的短缺。

回顯說明:

返回結果中的主要資料列說明:

r 表示系統中 CPU 等待處理的執行緒。由於 CPU 每次只能處理一個執行緒,所以,該數值越大,通常表示系統執行越慢。
us:使用者模式消耗的 CPU 時間百分比。該值較高時,說明使用者程序消耗的 CPU 時間比較多,比如,如果該值長期超過 50%,則需要對程式演算法或程式碼等進行優化。
sy:核心模式消耗的 CPU 時間百分比。
waIO 等待消耗的 CPU 時間百分比。該值較高時,說明 IO 等待比較嚴重,這可能磁碟大量作隨機訪問造成的,也可能是磁碟效能出現了瓶頸。
id:處於空閒狀態的 CPU 時間百分比。如果該值持續為 0,同時 sy  us 的兩倍,則通常說明系統則面臨著 CPU 資源的短缺。

2、使用 top 檢視程序緯度的 CPU 負載:
可以通過 top 從程序緯度來檢視其 CPU、記憶體等資源的使用情況。
用法說明:格式:top示例輸出

[root@wangerxiao ~]# top
top - 20:02:37 up 35 days, 23:33,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 296 total,   1 running, 295 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  0.1 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 12139008 total,  5998320 free,  2074896 used,  4065792 buff/cache
KiB Swap:  2098172 total,  2098172 free,        0 used.  9739056 avail Mem 
 
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                   
 1006 influxdb  20   0 5001836 332224  11568 S   1.0  2.7   1172:51 influxd                                                                                   
 3578 icinga    20   0 1399032  12792   5152 S   0.3  0.1 136:59.57 icinga2                                                                                   
30207 root      20   0   40800   2120   1328 R   0.3  0.0   0:00.10 top                                                                                       
    1 root      20   0  196848  11904   2348 S   0.0  0.1   7:32.27 systemd                                                                                   
    2 root      20   0       0      0      0 S   0.0  0.0   0:02.22 kthreadd                                                                                  
    3 root