2011-07-22 90 views
2

我有一個使用並行python運行的python程序。這個模塊擴展了我提交給我個人計算機核心的作業,我不知道它是如何做到的,但是當我檢查我的系統監視器時,它在兩個核心(我正在運行一些非常繁重的工作)中清楚地顯示100%的使用率。如何從系統監視器程序捕獲CPU內核使用情況?

是否有任何python模塊或工具可以讓我在運行我的工作時從系統監視程序捕獲單個核心用法?

回答

5

psutil

>>> for x in range(3): 
...  psutil.cpu_percent(interval=1, percpu=True) 
... 
[4.0, 6.9] 
[7.0, 8.5] 
[1.2, 9.0] 
-1

所以,如果你有辦法調用系統監視器來寫核使用到stdout,你總是可以做這樣的事情:

import subprocess 
command = 'top -b -n 1' # or whatever you use 
output = subprocess.Popen(command, stdout=subprocess.PIPE).communicate[0] 

# parse output here and extract cpu usage. this is super-dependent 
# on the layout of your system monitor output 
cpuline = output.split('\n')[2] 

你可以閱讀關於如何subprocess工作here

+0

我想從系統監視器輸出內容,我沒有辦法調用系統監視器。 – Rahul

+0

那麼你如何檢查你的系統監視器?在某處,你必須調用系統監視器程序來啓動它,在這種情況下,你應該可以調用它。或者它已經在後臺運行了?那麼可能存在某種方式來查詢正在運行的進程的當前狀態。 –

+0

請嘗試通過使用庫給出一個乾淨的答案,管道是哈克伊莫。 – TimZaman

0
import psutil 

values = psutil.cpu_percent(percpu=True) 
print values 

[0.0, 0.0, 0.0] 

values = psutil.cpu_percent() 
print values 

0.0 
+3

歡迎來到[so]。請查看[回答]。只有代碼的答案不如提供解釋他們所做的事情的答案。 – TemporalWolf

相關問題