我有一个Linode的盒子,正在经历奇怪的行为。 每隔一段时间,CPU和磁盘I / O将会发射到100%,并且服务器变得无响应,并且必须启动。 我想更好地调查发生了什么事情,但我不知道如何find谁负责所有的CPU和I / O。 我正在运行Gentoo 2.6.18。
你可以尝试做这样的事情:
while true; do ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10 >> logfile.txt; echo "\n" >> logfile.txt; sleep 3; done
这将显示CPU使用率方面的十大进程。 您可以通过将“头-10”中的10更改为不同的数字来更改显示的进程数,以及通过更改“睡眠3”中的3或完全取出“睡眠3”部分来更新的次数。
检查一下,它会写几乎所有你可能想要的二进制日志,然后你可以使用像GUI一样的顶部去审阅一天的时间片(默认是每5分钟取一次数据)。 http://www.atcomputing.nl/Tools/atop/
我认为, 慕尼黑是监控的商品工具之一,可以帮助您获得关于您的箱子活动的一些信息。 另外,还有一些像sar ,iostat,ps,top等命令行工具。
其他的答案只显示了你如何看待当前正在进行的事情,如果系统已经重新启动,这并没有什么帮助。
如果你想为后人logging这些信息(或账单,或者其他可能的用途),你想要的是进程记账。
这是我发现的一个HOWTO,但是我会诚实的 – 我已经使用了stream程会计已经有十年了。
Shawn的解决scheme用于近实时监控的更友好的方法:
while true; do clear; ps -eo pcpu,pmem,pid,user,args --sort=-pcpu c|head -20; sleep 1; done
这将提供前20个进程的静态视图,每1秒刷新一次。 ps命令中的“c”选项将打印进程可执行文件名称,而不是整个args命令。 如果您需要整个命令信息,则可以省略此选项。 %内存使用量列也被添加。
Gentoo没有“top”命令吗?
machine:~/# top
应该给你哪些程序导致最多负载的运行状态。