Я хотел бы отслеживать текущее использование ЦП в масштабе всей системы на Mac с Python.
Я написал некоторый код, который запускает «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%, вероятно, вызванные самой программой измерения. Этот пик использования процессора не регистрируется на моих MenuMeters или других программах мониторинга системы. Как я могу получить показания, которые больше похожи на то, что отображает MenuMeters? (Я хочу обнаружить критические ситуации, в которых какая-то программа загружает процессор.)
p.s. Я пробовал psutil , но
psutil.cpu_percent()
всегда возвращает 100%, так что это либо бесполезно для меня, либо я использую его неправильно.