【发布时间】:2010-08-24 17:23:51
【问题描述】:
我有一个网络服务器,我目前正在对 CPU 使用率进行基准测试。我正在做的实际上是运行一个进程来向服务器发送请求,然后运行以下 bash 脚本来确定 CPU 使用率:
#! /bin/bash
for (( ;; ))
do
echo "`python -c 'import time; print time.time()'`, `ps -p $1 -o '%cpu' | grep -vi '%CPU'`"
sleep 5
done
如果能够在 Python 中执行此操作会很好,这样我就可以在一个脚本中运行它,而不必运行两个脚本。我似乎找不到任何独立于平台(或至少独立于 linux 和 OS X 的平台)的方式来在 Python 中获取 ps 输出,而无需实际启动另一个进程来运行命令。我可以做到这一点,但如果有一个 API 可以做到这一点,那将是真的很好。
有没有办法做到这一点,还是我必须启动外部脚本?
【问题讨论】:
-
启动子进程有什么问题?这就是你的 shell 脚本所做的。它每次通过循环启动一堆进程。至少 3 个独立的进程,也许是 4 个。将其减少到 1 个有什么问题?
-
我会说 5 进程一个用于 echo 第二个用于 python 第三个用于 ps 第四个用于 grep 第五个用于睡眠
-
@S.Lott - 这不是不想启动太多进程的问题,因为我认为 python 代码比使用 shell 程序更容易推理。
-
如果启动子流程无关紧要,那么也许您应该将其从问题中删除。
标签: python linux macos unix ps