【问题标题】:Getting CPU utilization information获取 CPU 利用率信息
【发布时间】:2011-09-05 23:50:14
【问题描述】:

如何在 linux 中通过时间信息获取 CPU 利用率?基本上我想让我的应用程序在一夜之间运行。同时,我想监控应用程序运行期间的 CPU 利用率。

我试过了 | grep appName >& log,它似乎没有在日志中返回任何内容。有人可以帮我解决这个问题吗?

谢谢。

【问题讨论】:

    标签: linux cpu-usage


    【解决方案1】:

    使用 top 或 watch 命令

    PID    COMMAND      %CPU TIME     #TH  #WQ  #PORT #MREG RPRVT  RSHRD  RSIZE  VPRVT  VSIZE  PGRP  PPID  STATE    UID  FAULTS    COW    MSGSENT    MSGRECV    SYSBSD    SYSMACH   CSW       PAGEINS USER
    10764  top          8.4  00:01.04 1/1  0    24    33    2000K  244K   2576K  17M    2378M      10764 10719 running  0    9908+     54     564790+    282365+    3381+     283412+   838+          27      root
    10763  taskgated    0.0  00:00.00 2    0    25    27    432K   244K   1004K  27M    2387M  10763 1     sleeping 0    376       60     140        60         160       109       11        0       root
    

    【讨论】:

      【解决方案2】:

      编写一个程序来调用您的进程,然后调用 getrusage(2) 并报告其子进程的统计信息。

      【讨论】:

        【解决方案3】:

        vmstatiostat 都可以为您提供这种性质的周期性信息;我建议要么手动设置次数,要么将单个轮询放入 cron 作业中,然后将输出重定向到文件:

        vmstat 20 4230 >> cpu_log_file
        

        这将为您提供 24 小时内每 20 秒使用一次的快照。

        【讨论】:

          【解决方案4】:

          安装 sysstat 包并运行 sar

          nohup sar -o output.file 12 8 >/dev/null 2>&1 &
          

          【讨论】:

            【解决方案5】:

            您可以在程序运行时使用top 监控程序使用的时间。

            或者,您可以使用time 命令启动您的应用程序,该命令将打印您的程序在执行结束时使用的CPU 时间总量。只需输入 time ./my_app 而不是 ./my_app

            欲了解更多信息,man 1 time

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-11-10
              • 1970-01-01
              • 2019-11-22
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多