【发布时间】:2010-02-22 14:01:58
【问题描述】:
我想使用 Python 在 Mac 上监控当前系统范围的 CPU 使用情况。
我编写了一些以“ps”开头的代码,并将“%cpu”列中的所有值相加。
def psColumn(colName):
"""Get a column of ps output as a list"""
ps = subprocess.Popen(["ps", "-A", "-o", colName], stdout=subprocess.PIPE)
(stdout, stderr) = ps.communicate()
column = stdout.split("\n")[1:]
column = [token.strip() for token in column if token != '']
return column
def read(self):
values = map(float, psColumn("%cpu"))
return sum(values)
但是,我总是得到 50% - 80% 的高读数,这可能是由测量程序本身造成的。这个 CPU 使用峰值不会在我的 MenuMeters 或其他系统监控程序上注册。如何获得更像 MenuMeters 显示的读数? (我想检测某些程序占用 CPU 的严重情况。)
附言我试过psutil,但是
psutil.cpu_percent()
总是返回 100%,所以要么对我没用,要么我用错了。
【问题讨论】: