【问题标题】:MPSTAT show cpu usage average only during an application's executionMPSTAT 仅在应用程序执行期间显示 cpu 平均使用率
【发布时间】:2010-12-14 22:58:52
【问题描述】:

我想知道我的应用程序在执行时使用了每个内核的 CPU 时间,以及程序结束所需的时间长度。对于后者,我使用 linux“时间”命令。对于前者,我认为我必须使用“mpstat”之类的东西。但是我希望 mpstat 仅在我的应用程序执行期间生成一些日志,我不知道是否可以这样做。谁能帮我解决这个问题?

【问题讨论】:

    标签: linux profiling cpu-usage


    【解决方案1】:

    我会编写一个包装脚本来启动您的应用程序,该脚本会在您的应用程序启动之前为您启动和停止 mpstat,并在它退出后立即终止它。

    在这个快速示例中,我们启动后台的 mpstat,并将其 stdout/err 重定向到日志文件。然后,我们使用标准“时间”启动您的应用程序(无论您在日志文件名称后的命令行中传递什么)命令.. 最后,一旦应用程序返回/退出,我们就会终止后台 mpstat。你当然可以使用任何你喜欢的命令行参数来启动 mpstat。这里我们只是用 1 秒的时间来启动它,并没有结束条件。

    $ cat test.sh
    mpstat 1 2>&1 > $1 &
    pid=$!
    shift
    time $*
    kill $pid
    
    $ ./test.sh logfile.log sleep 5
    
    real    0m5.005s
    user    0m0.004s
    sys     0m0.000s
    
    $ cat logfile.log
    Linux 2.6.31-15-generic-pae (-desktop)  12/03/2009      _i686_  (4 CPU)
    
    12:55:58 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
    12:55:59 PM  all    1.25    0.00    1.75    0.00    0.00    0.00    0.00    0.00   96.99
    12:56:00 PM  all    0.25    0.00    0.25    0.00    0.00    0.00    0.00    0.00   99.51
    12:56:01 PM  all    0.50    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.50
    12:56:02 PM  all    0.00    0.00    0.50    0.00    0.00    0.00    0.00    0.00   99.50
    12:56:03 PM  all    0.49    0.00    0.49    0.00    0.00    0.00    0.00    0.00   99.02
    

    【讨论】:

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