我有一個web服務器,我目前正在爲CPU使用率進行基準測試。我在做什麼本質上是一個運行過程踩住與請求的服務器,然後運行以下bash腳本來確定CPU使用率:有沒有辦法以編程方式獲得PS輸出?
#! /bin/bash
for ((;;))
do
echo "`python -c 'import time; print time.time()'`, `ps -p $1 -o '%cpu' | grep -vi '%CPU'`"
sleep 5
done
這將是很好能夠做到這一點在Python,所以我可以在一個腳本中運行而不必運行兩個腳本。我似乎無法找到任何獨立於平臺的獨立平臺(或至少平臺獨立於Linux和OS X)的方式來獲取Python中的ps輸出,而無需實際啓動另一個進程來運行該命令。我可以做到這一點,但它會是真的很好,如果有這樣做的API。
有沒有辦法做到這一點,或者我將不得不啓動外部腳本?
啓動子進程有什麼問題?這就是你的shell腳本所做的。它每次通過循環啓動一堆進程。至少有3個獨立的進程,可能是4.將其減少到1有什麼問題? – 2010-08-24 17:37:59
我會說5個處理程序之一,用於python的第二個回聲,第三個針對ps第四個針對grep,第五個針對睡眠 – 2010-08-24 17:46:29
@ S.Lott - 這不是一個不想啓動太多進程的問題,因爲Python代碼對我來說更容易推理而不是使用shell程序。 – 2010-08-24 18:01:12