linux系統cpu使用率查詢

一、cat /proc/loadavg命令

  此命令用於查看系統平均負載。html

$ cat /proc/loadavg 0.08 0.06 0.10 1/442 8347

  前三項分別是最近1分鐘、5分鐘和15分鐘的系統平均負載。系統平均負載爲在特定時間間隔內運行隊列中的平均進程數,包括正在CPU上運行或者等待運行的進程。
  第四項,分子是正在運行的進程數,分母是進程總數。
  最後一項是最近運行的進程ID號。ios

二、top 命令

  Top命令是最經常使用的查看系統資源使用狀況的工具,能夠查看CPU、內存等資源的使用狀況。nginx

$ top top - 10:00:34 up 193 days, 15 min,  2 users,  load average: 0.03, 0.05, 0.10 Tasks: 168 total,   1 running, 167 sleeping,   0 stopped,   0 zombie %Cpu(s):  0.8 us,  0.8 sy,  0.0 ni, 98.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st KiB Mem : 32946324 total, 10400992 free,  2478008 used, 20067324 buff/cache KiB Swap: 0 total,        0 free,        0 used. 28319396 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM     TIME+ COMMAND 9106 root      20   0 1230476  46344  15688 S   6.7  0.1 626:31.26 containerd 1 root      20   0   51768   3836   2416 S   0.0  0.0 116:33.67 systemd 2 root      20   0       0      0      0 S   0.0  0.0   0:07.89 kthreadd 3 root      20   0       0      0      0 S   0.0  0.0   0:13.71 ksoftirqd/0                                                                                    
    5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H 7 root      rt   0       0      0      0 S   0.0  0.0   0:15.24 migration/0                                                                                    
    8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh 9 root      20   0       0      0      0 S   0.0  0.0 200:13.21 rcu_sched 10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-drain

  與CPU使用狀況相關的主要是前三行,顯示的是整個系統的cpu使用情況。另外,%MEM列實時顯示了每一個進程的CPU使用率。
  第一行是基本狀況,分別是:當前時間,系統運行時長,當前登陸用戶數,系統平均負載(同cat /proc/loadavg命令前三個值)。
  第二行是進程情況,分別是:進程總數,正在運行的進程數,睡眠的進程數,中止的進程數,殭屍進程數。
  第三行是CPU使用信息,分別是:用戶空間佔用CPU時間百分比,內核空間佔用CPU時間百分比,用戶進程空間內改變過優先級的進程佔用CPU時間百分比,空閒CPU時間百分比,等待輸入輸出的CPU時間百分比,CPU服務於硬件中斷的CPU時間百分比,CPU服務於軟件中斷的CPU時間百分比,被虛擬機偷走的CPU時間百分比。
服務器

三、vmstat命令

  vmstat是Virtual Meomory Statistics(虛擬內存統計)的縮寫,可對操做系統的虛擬內存、進程、CPU活動進行監控,是對系統的總體狀況進行統計。app

$ vmstat procs -----------memory-----------  --swap--  --io--  --system--  -----cpu----- r b swpd free   buff   cache   si   so   bi  bo   in   cs    us sy id wa st 1  0     0  14376368 161976 1130836   0    0    0   3    2    2     0  0 100 0  0

  咱們只關注cpu列:
  us:用戶進程執行時間百分比
  sy:系統進程執行時間百分比
  id:空閒時間百分比
  wa:等待IO時間百分比
  st:被虛擬機偷走的cpu時間百分比工具

四、iostat命令

  iostat是I/O statistics(輸入/輸出統計)的縮寫,iostat將對系統的磁盤操做活動進行監視。iostat命令主要是用來查看IO使用情況,也能夠查看cpu使用狀況。性能

Linux 3.10.0-862.3.2.el7.x86_64 (instance-34rgafwb)     01/03/2020     _x86_64_    (8 CPU) avg-cpu:  %user   %nice %system %iowait  %steal   %idle 0.17    0.02    0.15    0.00    0.00   99.64 Device: tps kB_read/s    kB_wrtn/s kB_read kB_wrtn vda 1.94         0.30        18.15    5030634  302731996 vdb 0.00         0.00         0.00       6252        148

  avg-cpu 行是CPU平均使用率,與前述命令相似:spa

  %user:CPU處在用戶模式下的時間百分比。操作系統

  %nice:CPU處在帶NICE值的用戶模式下的時間百分比。.net

  %system:CPU處在系統模式下的時間百分比。

  %iowait:CPU等待輸入輸出完成時間的百分比。

  %steal:管理程序維護另外一個虛擬處理器時,虛擬CPU的無心識等待時間百分比。

  %idle:CPU空閒時間百分比。

五、sar命令

   sar(System Activity Reporter,系統活動狀況報告)是目前 Linux 上最爲全面的系統性能分析工具之一,能夠從多方面對系統的活動進行報告,包括:文件的讀寫狀況、系統調用的使用狀況、磁盤I/O、CPU效率、內存使用情況、進程活動及IPC有關的活動等。咱們如今只關注CPU使用率和系統負載。

  • 輸出CPU使用率的統計信息
sar 10 3    //每10秒採樣一次,連續採樣3次 sar -u 10 3  //同上
sar       //輸出全天cpu使用率的統計信息
sar -p     //同上
sar -P ALL 2 3  //每2秒採樣一次,連續採樣3次,輸出CPU每一個核心的使用率

  輸出以下:

# sar -u 10 3 Linux 2.6.32-642.13.1.el6.x86_64 (appstore-nginx-test)     01/03/2020     _x86_64_    (8 CPU) 02:26:29 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle 02:26:39 PM     all      0.28      0.00      0.31      0.01      0.01     99.38
02:26:49 PM     all      0.33      0.03      0.31      0.05      0.03     99.26
02:26:59 PM     all      0.29      0.00      0.35      0.03      0.03     99.31 Average: all 0.30      0.01      0.33      0.03      0.02     99.32

  CPU列的 「all」 說明統計信息是全部cpu使用率的平均值,數字 「x」 說明此統計信息是CPU核心x的使用率。各列數據的意義與前述幾個命令同樣,再也不贅述。

  • 系統平均負載

  監控進程隊列長度和平均負載,每10秒採樣一次,連續採樣3次:

# sar -q 1 3 Linux 2.6.32-642.13.1.el6.x86_64 (appstore-nginx-test)     01/03/2020     _x86_64_    (8 CPU) 03:01:01 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
03:01:02 PM         0       512      0.06      0.03      0.00
03:01:03 PM         0       512      0.06      0.03      0.00
03:01:04 PM         0       512      0.06      0.03      0.00 Average: 0       512      0.06      0.03      0.00

  輸出項說明:

  runq-sz:運行隊列的長度(等待運行的進程數,每核的CP不能超過3個)
  plist-sz:進程列表中的進程(processes)和線程數(threads)的數量
  ldavg-1:最近1分鐘的CPU平均負載,即將多核CPU過去一分鐘的負載相加再除以核心數得出的平均值,如下相似
  ldavg-5:最近5分鐘的CPU平均負載
  ldavg-15:最近15分鐘的CPU平均負載

六、mpstat命令

  mpstat是MultiProcessor Statistics的縮寫,是一個實時系統監控工具,輸出CPU的一些統計信息,這些信息存放在/proc/stat文件中。在多CPU系統裏,其不但能查看全部CPU的平均統計信息,並且可以查看特定CPU的信息。
  • 顯示全部CPU總體(平均)使用情況
# mpstat        //不帶參數時,輸出爲從系統啓動以來的平均值
Linux 2.6.32-642.13.1.el6.x86_64 (appstore-nginx-test)     01/03/2020     _x86_64_    (8 CPU) 03:14:40 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle 03:14:40 PM  all    1.59    0.05    0.74    0.05    0.00    0.04    0.03    0.00   97.51 # mpstat 1 5    //每1秒收集一次,共5次
Linux 2.6.32-642.13.1.el6.x86_64 (appstore-nginx-test)     01/03/2020     _x86_64_    (8 CPU) 03:25:58 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle 03:25:59 PM  all    0.13    0.00    0.25    0.00    0.00    0.00    0.00    0.00   99.62
03:26:00 PM  all    0.38    0.00    0.38    0.00    0.00    0.13    0.00    0.00   99.12
03:26:01 PM  all    2.01    0.00    1.01    0.00    0.00    0.00    0.13    0.00   96.86
03:26:02 PM  all    0.38    0.00    0.38    0.00    0.00    0.00    0.00    0.00   99.25
03:26:03 PM  all    0.25    0.00    0.25    0.00    0.00    0.13    0.00    0.00   99.37 Average: all 0.63    0.00    0.45    0.00    0.00    0.05    0.03    0.00   98.85
  • 顯示全部CPU的使用情況
# mpstat -P ALL 10 20  //每10秒收集一次數據,共20次 Linux 2.6.32-642.13.1.el6.x86_64 (appstore-nginx-test)     01/03/2020     _x86_64_    (8 CPU) 03:12:59 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle 03:13:09 PM  all    0.41    0.00    0.34    0.03    0.00    0.05    0.04    0.00   99.13
03:13:09 PM    0    1.01    0.00    0.70    0.20    0.00    0.00    0.00    0.00   98.09
03:13:09 PM    1    1.21    0.00    0.71    0.00    0.00    0.40    0.20    0.00   97.47
03:13:09 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
03:13:09 PM    3    0.10    0.00    0.30    0.00    0.00    0.00    0.00    0.00   99.60
03:13:09 PM    4    0.30    0.00    0.30    0.00    0.00    0.00    0.00    0.00   99.40
03:13:09 PM    5    0.50    0.00    0.40    0.00    0.00    0.00    0.00    0.00   99.10
03:13:09 PM    6    0.10    0.00    0.10    0.00    0.00    0.00    0.00    0.00   99.80
03:13:09 PM    7    0.00    0.00    0.20    0.00    0.00    0.00    0.00    0.00   99.80 ....

  輸出項說明:

  %usr:表示處理用戶進程所使用CPU的百分比

  %nice:表示使用nice命令對進程進行降級時CPU的百分比

  %sys:表示內核進程使用的CPU百分比

  %iowait:表示等待進行I/O所使用的CPU時間百分比

  %irq:表示用於處理系統中斷的CPU百分比

  %soft:表示用於軟件中斷的CPU百分比

  %steal:顯示虛擬機管理器在服務另外一個虛擬處理器時虛擬CPU處在非自願等待下花費時間的百分比

  %guest:顯示運行虛擬處理器時CPU花費時間的百分比

  %idle:顯示CPU的空閒時間百分比

七、uptime命令

  uptime命令是一個簡單的獲取系統總共運行時長,以及最近1分鐘、5分鐘、15分鐘的平均負載的工具。uptime命令輸出內容與top命令輸出首行內容同樣,再也不贅述。

# uptime
 15:40:19 up 203 days, 23:15,  2 users,  load average: 0.01, 0.01, 0.00

八、pidstat命令

  pidstat命令主要用於監控所有或指定進程佔用系統資源的狀況。

# pidstat Linux 2.6.32-642.13.1.el6.x86_64 (appstore-nginx-test)     01/03/2020     _x86_64_    (8 CPU) 03:48:26 PM       PID    %usr %system  %guest    %CPU CPU Command 03:48:26 PM         1    0.00    0.01    0.00    0.01     5 init 03:48:26 PM         2    0.00    0.00    0.00    0.00     1 kthreadd 03:48:26 PM         3    0.00    0.00    0.00    0.00     0  migration/0
03:48:26 PM         4    0.00    0.00    0.00    0.00     0  ksoftirqd/0
03:48:26 PM         6    0.00    0.00    0.00    0.00     0  watchdog/0
03:48:26 PM         7    0.00    0.00    0.00    0.00     1  migration/1 ....

九、ps ux命令

  ps ux 命令列出的是當前服務器的全部進程狀態信息,其中包括了各個進程的cpu使用率。

# ps ux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1  0.0  0.0  19364  1632 ?        Ss    2019  18:20 /sbin/init root 2  0.0  0.0      0     0 ?        S     2019   0:00 [kthreadd] root 3  0.0  0.0      0     0 ?        S     2019   0:46 [migration/0] root 4  0.0  0.0      0     0 ?        S     2019   3:13 [ksoftirqd/0] root 5  0.0  0.0      0     0 ?        S     2019   0:00 [stopper/0] root 6  0.0  0.0      0     0 ?        S     2019   0:39 [watchdog/0] root 7  0.0  0.0      0     0 ?        S     2019   0:35 [migration/1] ....

 

參考:

  https://www.cnblogs.com/shirley-bhu/p/8743377.html  https://www.cnblogs.com/gongchixin/articles/7998054.html  https://www.cnblogs.com/aresxin/p/9152127.html  https://blog.csdn.net/yuanchunsi/article/details/79295801  https://www.cnblogs.com/arnoldlu/p/9462221.html

相關文章
相關標籤/搜索