【发布时间】:2016-10-18 13:10:43
【问题描述】:
如何使用 PHP 或 bash 获取 Linux 进程消耗的 CPU 百分比?我试图为此找到任何实用程序,但找不到。我发现总是出于相同的原因得到相同的结果。
【问题讨论】:
-
这个链接是关于 Windows 并抓取一个任务列表,我想要的是只给出每个进程的 CPU 利用率。
如何使用 PHP 或 bash 获取 Linux 进程消耗的 CPU 百分比?我试图为此找到任何实用程序,但找不到。我发现总是出于相同的原因得到相同的结果。
【问题讨论】:
我在这里找到了这个惊人的答案:https://unix.stackexchange.com/questions/554/how-to-monitor-cpu-memory-usage-of-a-single-process
要在脚本中使用该信息,您可以这样做:
calcPercCpu.sh
#!/bin/bash
nPid=$1;
nTimes=10; # customize it
delay=0.1; # customize it
strCalc=`top -d $delay -b -n $nTimes -p $nPid \
|grep $nPid \
|sed -r -e "s;\s\s*; ;g" -e "s;^ *;;" \
|cut -d' ' -f9 \
|tr '\n' '+' \
|sed -r -e "s;(.*)[+]$;\1;" -e "s/.*/scale=2;(&)\/$nTimes/"`;
nPercCpu=`echo "$strCalc" |bc -l`
echo $nPercCpu
像这样使用:calcPercCpu.sh 1234 其中 1234 是 pid
对于指定的$nPid,会测量整个1秒内10个快照的cpu使用平均值(每个延迟0.1s * nTimes=10);这可以为当前正在发生的事情提供良好且快速的准确结果。
根据需要调整变量。
【讨论】: