Linux 几种查看CPU 使用率的方法

通过接下来的命令你将可以查看到关于CPU 的以下信息:

  • CPU 利用率
  • 每个CPU 的利用率(SMP CPU)
  • 查看自从上一次重启后CPU 的平均利用率
  • 判断哪个进程在消耗CPU

一、 TOP

top 是一个即很古老也很实用的命令,它有点类似于windows 系统中任务管理器,提供一个实时的系统使用信息。这些信息包括CPU 使用率、进程参数和内存使用率。

按数字1 可查看单个cpu 实用情况。ctrl+c 或者q 可以退出top 界面。

 

二、 mpstat

mpstat 属于sysstat 包,这个包包含了查看系统性能的一些工具 ,

# apt-get install sysstat

# up2date sysstat

如果你是实用单个CPU ,那么直接输入命令即可:

# mpstat

Linux 2.6.15.4 (debian)         Thursday 06 April 2006
05:13:05  IST  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
05:13:05  IST  all   16.52    0.00    2.87    1.09    0.07    0.02    0.00   79.42    830.06

mpstat -P ALL 可以查看所有CPU:

# mpstat -P ALL

Linux 2.6.15.4 (debian)         Thursday 06 April 2006
05:14:58  IST  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
05:14:58  IST  all   16.46    0.00    2.88    1.08    0.07    0.02    0.00   79.48    835.96
05:14:58  IST    0   16.46    0.00    2.88    1.08    0.07    0.02    0.00   79.48    835.96
05:14:58  IST    1   15.77    2.70    3.17    2.01    0.05    0.03    0.00   81.44    822.54

三、 sar

sar 可以显示当天CPU 的使用情况:

Linux 2.6.9-42.0.3.ELsmp (debian)         01/13/2007
12:00:02 AM       CPU     %user     %nice   %system   %iowait     %idle
12:10:01 AM       all      1.05      0.00      0.28      0.04     98.64
12:20:01 AM       all      0.74      0.00      0.34      0.38     98.54
12:30:02 AM       all      1.09      0.00      0.28      0.10     98.53
12:40:01 AM       all      0.76      0.00      0.21      0.03     99.00
12:50:01 AM       all      1.25      0.00      0.32      0.03     98.40
01:00:01 AM       all      0.80      0.00      0.24      0.03     98.92
...
.....
..
04:40:01 AM       all      8.39      0.00     33.17      0.06     58.38
04:50:01 AM       all      8.68      0.00     37.51      0.04     53.78
05:00:01 AM       all      7.10      0.00     30.48      0.04     62.39
05:10:01 AM       all      8.78      0.00     37.74      0.03     53.44
05:20:02 AM       all      8.30      0.00     35.45      0.06     56.18
Average:          all      3.09      0.00      9.14      0.09     87.68

sar 可以统计在给定时间CPU 使用的使用情况,用于CPU 的对比。比如比较比较CPU 使用率,每次2 秒,五次。

# sar -u 2 5

Linux 2.6.9-42.0.3.ELsmp (debian)         01/13/2007
05:33:24 AM       CPU     %user     %nice   %system   %iowait     %idle
05:33:26 AM       all      9.50      0.00     49.00      0.00     41.50
05:33:28 AM       all     16.79      0.00     74.69      0.00      8.52
05:33:30 AM       all     17.21      0.00     80.30      0.00      2.49
05:33:32 AM       all     16.75      0.00     81.00      0.00      2.25
05:33:34 AM       all     14.29      0.00     72.43      0.00     13.28
Average:          all     14.91      0.00     71.49      0.00     13.61

上图中对应的参数如下含义:

  • %user: 执行在用户态占用CPU 使用率百分比。
  • %nice: 在用户态具有优先级执行占用CPU 使用率百分比。
  • %system: 在系统内核执行占用CPU 使用率百分比(内核)。
  • %iowait: 当有大量磁盘请求时CPU/CPUs 空闲时间百分比。
  • %idle: CPU/CPUs 空闲且没有大量磁盘I/O 情况时间百分比。

可以后台运行sar 保存运行数据:

# sar -o output.file 12 8 >/dev/null 2>&1 &

最好还能加上nohup 命令:

# nohup sar -o output.file 12 8 >/dev/null 2>&1 &

数据是以二进制的方式写入的,可以通过-f 选项打开文件

# sar -f data.file

 

四、 iostat

iostat 可以查看CPU 使用情况和磁盘输入输出信息:

# iostat

Linux 2.6.15.4 (debian)         Thursday 06 April 2006
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
     16.36    0.00    2.99    1.06    0.00   79.59
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
hda               0.00         0.00         0.00         16          0
hdb               6.43        85.57       166.74     875340    1705664
hdc               0.03         0.16         0.00       1644          0
sda               0.00         0.00         0.00         24          0 

下面这个命令五秒中显示一次,共计三次:

$ iostat -xtc 5 3

 

五、其他工具

如果有的程序非常吃CPU ,想找出这样的程序和使用人,可以用下面的命令,找出最消耗CPU 的程序和对应的用户:

# ps -eo pcpu,pid,user,args | sort -k 1 -r | head –10

或者:

# ps -eo pcpu,pid,user,args | sort -r -k1 | less

%CPU   PID USER     COMMAND
1.3  2361 f309     /usr/lib/firefox-10.0.1/firefox
0.1  1987 f309     gnome-terminal
0.1  1172 root     /usr/bin/X :0 -nr -verbose -auth /var/run/gdm/auth-for-gdm-A53nIB/database -nolisten tcp vt7
0.0     9 root     [migration/2]
0.0    99 root     [crypto/4]
0.0    98 root     [crypto/3]
0.0    97 root     [crypto/2]
0.0    96 root     [crypto/1]
0.0    95 root     [crypto/0]

 

当然如果不是远程登录的话可以考虑用系统自带的GUI 工具:

$ gnome-system-monitor

gnome-system-monitor - view and control the processes

gnome-system-monitor - view and control the processes

 

原文:How do I Find Out Linux CPU Utilization?

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据