ロードアベレージ/CPU負荷を調べる

UNIXの場合

os.getloadavg()を使います。

import os

while 1:
    time.sleep(1)
    print '(%6.2f, %6.2f, %6.2f)' % os.getloadavg()

float数値3つのタプルを返し、それぞれ直前1分間、5分間、15分間の負荷平均を示します。

(  0.15,   0.14,   0.10)

Windowsの場合

WMIサービスオブジェクトからCPU負荷値が取れます。「CPU負荷が何%なら警告」とかお手軽にやりたければそれを使います。

import time
from win32com.client import GetObject

wmi = GetObject('winmgmts:')
while 1:
    time.sleep(1)
    cpu = wmi.InstancesOf('Win32_Processor')
    print [x.Properties_('LoadPercentage').Value for x in cpu]

I/Oなども含めて細かい記録を取るような話であればwin32pdhを使います(ここでは省略)。