AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 105560
Accepted
epic9x
epic9x
Asked: 2010-01-23 15:59:02 +0800 CST2010-01-23 15:59:02 +0800 CST 2010-01-23 15:59:02 +0800 CST

Linux进程记帐-“cp”和“cpu”字段之间的区别?

  • 772

我一直在研究使用进程记帐来跟踪运行在我们环境中存在问题的脚本的各种用户和站点,而不是尝试执行诸如定期刮顶之类的事情。

不是特别清楚的是哪些字段真正表示使用的 cpu 秒/分钟。我读过的手册页说'cpu'列是烧毁的秒数,但是还有'cp'列用-m显示-它们可以显示不同的总数。例如:

当我使用 -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”列之间的区别?

谢谢!

linux monitoring process-accounting
  • 1 1 个回答
  • 2425 Views

1 个回答

  • Voted
  1. Best Answer
    Patrick R
    2010-01-23T18:22:00+08:002010-01-23T18:22:00+08:00

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

    首先:我创建了一个以用户 patrickr 身份运行的 bash 脚本,该脚本旨在为系统施加足够的负载以引起注意。

    #!/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 显示此服务器超时的所有活动的平均值。随着更多命令的运行,该文件会随着时间的推移而变大。

    萨-u | grep patrickr 以 cpu 分钟为单位显示特定命令的系统和用户时间的总和。

    运行: sa -u |grep patrickr|awk 'BEGIN{TOTAL=0}{TOTAL=TOTAL+$2}END{print TOTAL}'

    将为您提供用户 patrick 的总和,但 sa -m 命令实际上是为您提供平均值。看看内存值是否需要第二个示例。他们也是平均的。

    如果我将上面列出的 patrickr 的三个结果相加,0.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是一个可以帮助您的好资源(原始链接在这里)。

    • 6

相关问题

  • 更改 PHP 的默认配置设置?

  • 你用什么工具来监控你的服务器?

  • 我应该如何管理每用户带宽?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve