cpu时间是一项重要的资源,有时,我们需要跟踪某个时间内占用cpu周期最多的进程。 在linux系统中,ps命令用于收集系统中进程的详细信息。这些信息包括cpu使用情况、正在执行的命令、内存使用、进程状态等。记录在一个小时内占用过的cpu的进程,然后通过恰当地运用ps以及文本处理就可以找出占用cpu最多的10个进程。
例子,监视并计算一小时内cpu使用情况的shell脚本。
复制代码代码如下:
#!/bin/bash
SECS=3600
# 将SECS更改成需要进行监视的总秒数 STEPS=$(( $SECS / $UNIT_TIME )) echo Watching CPU usage... ;
for ((i=0;i<STEPS;i++))
echo
cat /tmp/cpu_usage.$$ | \
}' | sort -nrk 2 | head
输出结果:
注解: tail -n +2用来将ps输出中的头部和COMMAND %CPU剥除。 cpu_usage.$$中的$$表示当前脚本的进程ID。假设进程ID为1345,那么在脚本执行时,它会被替换成/tmp/cpu_usage.1345。因为这是一个临时文件,所以我们把它放在/tmp目录中。
统计文件在1小时后,准备妥当,文件中包含了60项,分别对应每分钟的进程状态。 |