0

我编写了一个简单的 shell 脚本来监视我的 linux 中的进程。

echo `date` ':' `top -d 3 -n 3 -b | grep swiftd | awk -F' ' '{print $9 }'` >> results.log

我通过 crontab 每 5 分钟运行一次。一切都很好,直到我发现我的 results.log 有问题,

Wed Aug 26 18:06:01 CST 2015 : 4.0 3.3 3.3 
Wed Aug 26 18:07:01 CST 2015 : 4.0 3.3 3.7 
Wed Aug 26 18:08:01 CST 2015 : 5.9 3.7 3.3 
Wed Aug 26 18:09:01 CST 2015 : 97.1 3.7 3.0 
Wed Aug 26 18:10:01 CST 2015 : 4.0 3.3 3.7
Wed Aug 26 18:11:01 CST 2015 : 4.0 3.3 3.3
Wed Aug 26 18:12:01 CST 2015 : 2.0 3.7 3.0 

在第四行中,cpu 使用率变为 97.1%,然后在下一次迭代中为 3.7%。使用量似乎在短时间内达到了顶峰。

我的困惑是,

  1. 这是进程突然获得 100% cpu 使用率的任何其他原因吗?
  2. 'top' 是监控进程'cpu 使用情况的好命令吗?
  3. 如何为进程获得更好的平均 CPU 使用率
4

1 回答 1

0

top不是 shell 脚本中的好命令。我建议使用ps命令来监控特定进程的 cpu 使用情况。这是一个例子。

echo `date` ':' `ps auxww | grep swiftd | awk '{print $3}'` >> results.log
于 2015-08-27T06:01:37.483 回答