你可以使用sa命令打印过去执行命令的统计信息。另外, sa命令保存了一个叫做savacct文件, 文件包含了命令被调用的次数和资源使用的次数。而且sa还提供每一个用户的统计信息, 这些信息保存在一个叫做usracct的文件当中。
# sa
输出:
579
222.81re
0.16cp
7220k
4
0.36re
0.12cp 31156k up2date
8
0.02re
0.02cp 16976k rpmq
8
0.01re
0.01cp
2148k netstat
11
0.04re
0.00cp
8463k grep
18
100.71re
0.00cp 11111k ***other*
8
0.00re
0.00cp 14500k troff
5
12.32re
0.00cp 10696k smtpd
2
8.46re
0.00cp 13510k bash
8
9.52re
0.00cp
1018k less
以结果输出的第一行为例:
4 0.36re 0.12cp 31156k up2date
分析:
◆0.36re "实际时间" 单位为分钟。
◆0.12cp 系统和用户时间总数(CPU时间, 单位为分钟)。
◆31156K 核心使用所占的平均CPU时间, 一个单元的大小为1KB。
◆up2date 命令名。
显示每一个用户:
# sa -u
输出:
root
0.00 cpu
595k mem accton
root
0.00 cpu 12488k mem initlog
root
0.00 cpu 12488k mem initlog
root
0.00 cpu 12482k mem touch
root
0.00 cpu 13226k mem psacct
root
0.00 cpu
595k mem consoletype
root
0.00 cpu 13192k mem psacct
*
root
0.00 cpu 13226k mem psacct
root
0.00 cpu 12492k mem chkconfig
postfix 0.02 cpu 10696k mem smtpd
vivek
0.00 cpu 19328k mem userhelper
vivek
0.00 cpu 13018k mem id
vivek
0.00 cpu 13460k mem bash
*
lighttpd 0.00 cpu 48240k mem php
*
上面了显示了每一个用户的进程数量和CPU时间数
# sa -m
输出:
667
231.96re
0.17cp
7471k
root
544
51.61re
0.16cp
7174k
vivek
103
17.43re
0.01cp
8228k
postfix 18
162.92re
0.00cp
7529k
lighttpd 2
0.00re
0.00cp 48536k
6). 找出谁在占用CPU
你可以通过查看re, k, cp/cpu(见上面输出解释)时间来找出可疑的活动, 或某个用户/命令占用了所有的CPU时间。如果CPU/Memeory使用数(命令)在不断增加, 可以说明命令存在问题。
另外上面的所有命令和软件包也可以在其它的Unix类操作系统平台上运行, 比如Solaris和*BSD操作系统。