Linux进程记帐 – ‘cp’和’cpu’字段之间的区别?

前端之家收集整理的这篇文章主要介绍了Linux进程记帐 – ‘cp’和’cpu’字段之间的区别?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在寻找使用进程记帐来跟踪运行在我们的环境中存在问题的脚本的各种用户站点,而不是尝试像定期抓取顶部那样.

不太清楚的是哪个字段真正表示使用的cpu秒/分钟.我读过的手册页说’cpu’列是用于秒燃烧的,但是也有用-m显示的’cp’列,它们可以显示不同的总数.例如:

当我使用-m标志时,我得到了

$sa -m | grep username
 username 14944      65.53re      29.90cp     5308k

当我使用-u标志并总计“cpu”列时,我得到以下内容

sa -u |grep username|awk 'BEGIN{TOTAL=0}{TOTAL=TOTAL+$2}END{print TOTAL}'
 1032.86

有人能帮助我理解这两种不同模式中’cp’和’cpu’列之间的区别吗?

谢谢!

解决方法

让我用一个例子来帮助解释上面的结果显示

第一:我创建了一个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).

猜你在找的Linux相关文章