1
我想知道我的應用程序在執行時使用每個內核的CPU時間以及程序結束所用的時間長度。對於後者,我使用linux「time」命令。對於前者,我認爲我必須使用「mpstat」之類的東西。但是我希望mpstat只在執行應用程序時生成一些日誌,我不知道是否可以這樣做。誰可以幫我這個事?MPSTAT僅在應用程序執行期間顯示CPU使用率平均值
我想知道我的應用程序在執行時使用每個內核的CPU時間以及程序結束所用的時間長度。對於後者,我使用linux「time」命令。對於前者,我認爲我必須使用「mpstat」之類的東西。但是我希望mpstat只在執行應用程序時生成一些日誌,我不知道是否可以這樣做。誰可以幫我這個事?MPSTAT僅在應用程序執行期間顯示CPU使用率平均值
我會編寫一個包裝腳本來啓動您的應用程序,該應用程序將負責爲您啓動和停止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