让我用一个例子来帮助解释上面的结果显示:
第一:我创建了一个bash脚本,我作为用户patrickr运行,这意味着要在系统上施加足够的负载才能引人注目.
#!/bin/bash
#this file is named loop_script.sh
for i in {1..5000}
do
echo "Welcome $i times"
done
第二:我卸载然后重新安装了acct,以便我/ var / log / acct中的文件是新鲜的.创建/ var / log / acct / pacct文件的副本,以便将来可以使用格式正确的文件轻松截断文件(您不能只删除并重新创建文件 – 如果您这样做,sa将停止工作).请注意,此文件是系统上所有命令的日志,据我所知,无法根据时间段在日志中提取部分.
第三:然后我将这个脚本作为patrickr运行两次
patrickr@hostname:~$bash loop_script.sh
我会给你结果,然后我会解释它们:
以root身份(或其他任何patrickr用户)
在第一次循环后作为patrickr:
**sa -m**
24 0.09re 0.03cp 0avio 894k
root 22 0.07re 0.02cp 0avio 853k
patrickr 2 0.02re 0.01cp 0avio 1336k
**sa -u |grep patrickr**
patrickr 0.38 cpu 1336k mem 0 io bash
在第二次循环后作为patrickr:
**sa -m**
30 0.09re 0.03cp 0avio 850k
root 27 0.07re 0.02cp 0avio 814k
patrickr 3 0.02re 0.01cp 0avio 1178k
**sa -u |grep patrickr**
patrickr 0.38 cpu 1336k mem 0 io bash
patrickr 0.35 cpu 1336k mem 0 io bash
patrickr 0.00 cpu 863k mem 0 io ls (I happened to also run ls at patrickr)
**sa -u**
The results returned 106 results for a total of 2.86cpu that averaged to 0.03cp
这是你所看到的:
sa -m显示该服务器超时的所有活动的平均值.随着更多命令运行,此文件随着时间的推移而变大
sa -u | grep patrickr显示特定命令的cpu分钟内系统和用户时间的总和.
运行:
sa -u | grep patrickr | awk’BEGIN {TOTAL = 0} {TOTAL = TOTAL $2} END {print TOTAL}’
将为用户patrick提供总计,但sa -m命令实际上是给你平均值.看一下内存值,你需要第二个例子.它们也是平均值.
如果我将上面列出的三个结果添加到patrickr,.35 .37 .0并除以106并舍入到最接近的百分之一,我将获得0.01cp.
0.01cp的结果是系统上用户patrickr的平均负载,与从安装acct应用程序时的系统上的所有负载相比(即,因为文件/ var / log / acct / pacct开始跟踪).
Output Fields
cpu - sum of system and user time in cpu minutes
re - actual time in minutes
k - cpu-time averaged core usage,in 1k units
k*sec - cpu storage integral (kilo-core seconds)
u - user cpu time in cpu minutes
s - system time in cpu minutes
一个很好的资源,将帮助你在beginlinux.com(原始链接发现here).