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

相关文章
相关标签/搜索