通过接下来的命令你将可以查看到关于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