我正在運行一些針對Java進程的JMeter測試,以確定Web應用程序如何響應負載(500多個用戶)。 JMeter會爲每個Web請求提供響應時間,並且我已經編寫了一個腳本來每X秒對Tomcat管理器進行ping操作,這將使我獲得當前JVM堆的大小。在shell腳本中獲取CPU使用情況?
我想收集服務器上Tomcat使用的CPU百分比的統計信息。我試圖做到這一點,使用ps
這樣的shell腳本:
PS_RESULTS=`ps -o pcpu,pmem,nlwp -p $PID`
...運行命令每隔X秒,將結果追加到一個文本文件中。 (對於想知道的人,pmem
=%mem使用率和nlwp
是線程數)
但是我發現這給出了「CPU使用率%」的不同定義 - 根據我的需要 - 根據manpages ps,pcpu
定義爲:
「##。#」格式的進程的CPU利用率。它使用的CPU時間除以進程運行的時間(cputime/realtime ratio),以百分比表示。
換句話說,pcpu
給我用於該方法的壽命過程中的%的CPU利用率。
因爲我要帶樣品每X秒,我想可以在當前時間僅收集過程中的CPU利用率 - 類似於top
會給我 (進程的CPU利用率,因爲最後更新)。
如何從shell腳本中收集此信息?
感謝dstat工具! – 2009-04-17 05:00:57