定義
CPU使用率是指某個任務(進程/線程/中斷程序)在一定時間內佔用CPU的時間比例;
查看CPU使用率
CPU維度
mpstat命令:查看所有或某個CPU使用率;(第一行的all表示所有CPU的平均使用率)
[root@stress ~]# mpstat -P ALL
Linux 3.10.0-514.16.1.el7.x86_64 (stress) 11/22/2019 _x86_64_ (48 CPU)
07:05:33 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
07:05:33 PM all 11.10 0.00 23.47 0.20 0.00 0.15 0.00 0.00 0.00 65.07
07:05:33 PM 0 12.85 0.00 21.55 0.28 0.00 0.20 0.00 0.00 0.00 65.12
07:05:33 PM 1 12.62 0.00 21.52 0.28 0.00 0.19 0.00 0.00 0.00 65.38
07:05:33 PM 2 12.58 0.00 21.59 0.28 0.00 0.19 0.00 0.00 0.00 65.35
07:05:33 PM 3 12.57 0.00 21.96 0.28 0.00 0.19 0.00 0.00 0.00 65.00
07:05:33 PM 4 12.54 0.00 21.73 0.28 0.00 0.19 0.00 0.00 0.00 65.25
07:05:33 PM 5 12.53 0.00 21.76 0.28 0.00 0.19 0.00 0.00 0.00 65.23
07:05:33 PM 6 12.51 0.00 21.86 0.28 0.00 0.19 0.00 0.00 0.00 65.16
07:05:33 PM 7 11.87 0.00 20.36 0.29 0.00 0.20 0.00 0.00 0.00 67.27
07:05:33 PM 8 12.70 0.00 23.15 0.28 0.00 0.19 0.00 0.00 0.00 63.69
07:05:33 PM 9 12.71 0.00 23.09 0.28 0.00 0.19 0.00 0.00 0.00 63.73
07:05:33 PM 10 12.67 0.00 23.01 0.28 0.00 0.19 0.00 0.00 0.00 63.85
07:05:33 PM 11 12.69 0.00 22.89 0.28 0.00 0.19 0.00 0.00 0.00 63.94
07:05:33 PM 12 13.39 0.00 22.36 0.26 0.00 0.19 0.00 0.00 0.00 63.79
07:05:33 PM 13 12.74 0.00 23.31 0.25 0.00 0.19 0.00 0.00 0.00 63.50
07:05:33 PM 14 12.94 0.00 22.54 0.25 0.00 0.19 0.00 0.00 0.00 64.08
07:05:33 PM 15 13.01 0.00 22.50 0.25 0.00 0.19 0.00 0.00 0.00 64.05
07:05:33 PM 16 12.97 0.00 22.49 0.25 0.00 0.19 0.00 0.00 0.00 64.10
07:05:33 PM 17 12.91 0.00 22.40 0.25 0.00 0.19 0.00 0.00 0.00 64.24
07:05:33 PM 18 12.94 0.00 22.42 0.25 0.00 0.19 0.00 0.00 0.00 64.19
07:05:33 PM 19 12.91 0.00 22.39 0.25 0.00 0.19 0.00 0.00 0.00 64.26
07:05:33 PM 20 12.68 0.00 22.05 0.26 0.00 0.19 0.00 0.00 0.00 64.82
07:05:33 PM 21 12.91 0.00 22.31 0.26 0.00 0.19 0.00 0.00 0.00 64.32
07:05:33 PM 22 12.92 0.00 22.25 0.26 0.00 0.19 0.00 0.00 0.00 64.38
07:05:33 PM 23 12.94 0.00 22.18 0.26 0.00 0.19 0.00 0.00 0.00 64.43
07:05:33 PM 24 8.79 0.00 24.93 0.15 0.00 0.12 0.00 0.00 0.00 66.01
07:05:33 PM 25 10.31 0.00 27.13 0.15 0.00 0.12 0.00 0.00 0.00 62.29
07:05:33 PM 26 10.00 0.00 26.22 0.15 0.00 0.12 0.00 0.00 0.00 63.51
07:05:33 PM 27 9.63 0.00 25.58 0.15 0.00 0.12 0.00 0.00 0.00 64.52
07:05:33 PM 28 9.28 0.00 25.41 0.15 0.00 0.12 0.00 0.00 0.00 65.04
07:05:33 PM 29 9.07 0.00 25.14 0.15 0.00 0.12 0.00 0.00 0.00 65.52
07:05:33 PM 30 8.94 0.00 24.86 0.15 0.00 0.12 0.00 0.00 0.00 65.92
07:05:33 PM 31 9.61 0.00 24.90 0.15 0.00 0.13 0.00 0.00 0.00 65.21
07:05:33 PM 32 8.68 0.00 23.47 0.15 0.00 0.13 0.00 0.00 0.00 67.57
07:05:33 PM 33 8.60 0.00 23.47 0.15 0.00 0.13 0.00 0.00 0.00 67.65
07:05:33 PM 34 8.59 0.00 23.40 0.15 0.00 0.13 0.00 0.00 0.00 67.73
07:05:33 PM 35 8.57 0.00 23.44 0.16 0.00 0.13 0.00 0.00 0.00 67.70
07:05:33 PM 36 9.49 0.00 23.90 0.14 0.00 0.11 0.00 0.00 0.00 66.36
07:05:33 PM 37 11.15 0.00 25.46 0.13 0.00 0.12 0.00 0.00 0.00 63.14
07:05:33 PM 38 10.79 0.00 25.56 0.13 0.00 0.11 0.00 0.00 0.00 63.40
07:05:33 PM 39 10.41 0.00 25.28 0.13 0.00 0.11 0.00 0.00 0.00 64.06
07:05:33 PM 40 9.98 0.00 24.88 0.13 0.00 0.11 0.00 0.00 0.00 64.89
07:05:33 PM 41 9.66 0.00 24.70 0.13 0.00 0.11 0.00 0.00 0.00 65.40
07:05:33 PM 42 9.53 0.00 24.39 0.13 0.00 0.11 0.00 0.00 0.00 65.84
07:05:33 PM 43 9.38 0.00 24.24 0.13 0.00 0.11 0.00 0.00 0.00 66.13
07:05:33 PM 44 9.24 0.00 24.23 0.13 0.00 0.12 0.00 0.00 0.00 66.28
07:05:33 PM 45 9.22 0.00 24.05 0.13 0.00 0.11 0.00 0.00 0.00 66.48
07:05:33 PM 46 9.12 0.00 24.02 0.13 0.00 0.11 0.00 0.00 0.00 66.61
07:05:33 PM 47 9.10 0.00 23.96 0.13 0.00 0.12 0.00 0.00 0.00 66.69
top命令:查看CPU平均使用率或者累加和;(平均值還是累加跟操作系統有關)
進程維度
pidstat命令:查看每個進程CPU使用率(用戶態、內核態等詳細情況);
pidstat -u
top命令:查看每個進程CPU使用率(沒有詳細信息,只是累加和);
說明:進程維度查看CPU使用率時可能超過100%,每個進程的CPU使用率實際上是進程內所有線程CPU使用率之和。比如,一個進程有兩個線程,在1s,分別佔用了CPU0 0.6s和CPU1 0.7s,此時進程的CPU使用率爲130%;
線程維度
pidstat命令:查看某個進程內每個線程CPU使用率(用戶態、內核態等詳細情況);
pidstat -u -t -p pid
top命令:查看某個進程內每個進程CPU使用率(沒有詳細信息,只是累加和);
top -Hp pid
CPU使用率過高影響
CPU使用率過高會造成任務不能被快速的執行完成,導致用戶請求的響應時間變長;
CPU使用率爲什麼會超過100%
- 情況1:CPU維度統計時展示的是所有CPU累加之和;
- 情況2:進程維度統計,所有線程CPU使用率累加之和;