我有一个小代码可以定期跟踪 cpu 的使用情况。不知何故,当我尝试创建文件(“wb”或“w”模式)时,文件被创建但它是空的。知道为什么会这样吗?
W/O 文件处理程序:
import subprocess
import os
MESSAGE = "mpstat -P ALL | awk '{print $4}'"
SLEEP = "sleep 1"
cmds = [MESSAGE, SLEEP]
def runCommands(commands = cmds):
count =0
while True:
for cmd in cmds:
count+=1
subprocess.call(cmd, shell = True)
runCommands()
使用文件处理程序:
import subprocess
import os
MESSAGE = "mpstat -P ALL | awk '{print $4}'"
SLEEP = "sleep 1"
cmds = [MESSAGE, SLEEP]
def runCommands(commands = cmds):
count =0
while True:
for cmd in cmds:
count+=1
with open('cpu_usage.txt', 'w')as f:
subprocess.call(cmd, stdout = f, shell = True)
runCommands()
mpstat 给出标准输出(不是标准错误)。目标是使用 python 每秒收集 cpu 和内存使用情况,并嵌入应用程序以收集数据并以图形方式输出相同的数据。我知道 psutil 在这方面是一个很好的框架,但如果你没有经常使用它。它也可以解决我的问题,因为最后我有一个图形输出,其中包含每秒内存和 cpu 使用。
最终我正在寻找一个形式为:
%CPU %MEM
.. ..
.. ..
.. ..
最后,时间 vs CPU 和时间 vs 内存就足够了。通过获取 cpu 值,我只是解决这个问题的一步。ps aux
似乎不是一个很好的命令来做我需要的事情,尽管它给出的输出类似于我想要的输出。任何想法/想法/建议。