试试atop
以一种更图形化的方式连续捕获系统状态快照的过去活动,可以使用atop。 atop类似于像top或htop这样的程序,但有一个显著的区别,它运行定期的cron作业来生成和保留完整的进程和系统活动数据。这使您可以在以后的时间回溯来调查问题。 atop还提供了一个实用程序atopsar,类似于传统的Unix sar。这两个实用程序共享相同的系统数据快照数据库。
下面是一个atop截图,显示了在磁盘利用率压力下的系统情况。请注意,红色高亮显示了sda和LVM上的100%磁盘利用率。图片来源:atop作者Gerlof Langeveld,atoptool.nl。

安装方法:
sudo apt-get install atop
现在您需要等待约10分钟进行第一次会计快照。每个指标点每个实体使用快照。跟踪的实体包括:
- 进程(按可执行文件)
- 每个核心的CPU利用率、频率和缩放,系统与用户
- 内存和交换使用情况
- 磁盘分区:读取、写入、%利用率
- 网络接口:数据包进/出(UDP和TCP),错误,数据包重传等
所有指标都是对所观察到的快照的累积总数。
查看过去的活动
这实际上为您提供了一个小的“时间机器”。您可以向前或向后移动时间,以查看过去观察到的每个时间片段中发生的情况。
atop -r [/var/log/atop/...]
没有快照文件参数,atop将显示过去一天的视图(选择任何现有的快照文件来显示不同的一天),从午夜开始。最重要的记住键是:
t 向前移动时间(到下一个时间片段)
T 向后移动时间(到上一个时间片段)
h 帮助
q 退出
快照增量通过在每个进程的exit()处使用进程账户正确实现,因此即使您有许多运行时间很短的进程,它们的部分总和也会被正确添加,并正确归属于适当的可执行文件和适当的时间片。
不仅仅捕捉进程,还捕捉整个系统状态。屏幕的上半部分显示了所有重要的系统指标,包括CPU、内存、磁盘和网络利用率。数据包括CPU频率和缩放因子、网络错误等等。为了更加有帮助性,异常值会以颜色进行突出显示,例如任何时间片磁盘利用率达到100%时会显示为鲜红色,接近最大值的数值会显示为不同的颜色,这样任何负载过高的实体都不容易被忽视。
如果你更喜欢批处理风格,可以使用"atopsar"而不是"atop"。例如,要以批处理方式转储完整的时间范围,可以使用以下命令:
atopsar -D -b 14:05 -e 14:45
今天在14:05和14:45之间,显示前3个磁盘利用率(-D)最高的进程。详细使用方法请参考man atopsar。
如果你想关注特定的子区域,你可以使用这些atopsar选项(atop以相同的字母进行交互):
-C sort processes in order of cpu-consumption (default)
-M sort processes in order of memory-consumption
-D sort processes in order of disk-activity
-N sort processes in order of network-activity
-A sort processes in order of most active resource (auto mode)
你可以利用 atop 和 atopsar 做更多的事情。使用 man atop 和 man atopsar 获取详细信息。上述是其要点。
free -h和sysctl vm.swappiness。与我交流时,请以@heynnema开头,否则我可能会错过您的评论。 - heynnemadmesg可能会或可能不会有帮助,这取决于特定的机制。 - chrylis -cautiouslyoptimistic-top -bn1 -o %CPU -c | head -17 >> $HOME/Desktop/monitor-top.txt这样的东西怎么样? - DK Bosesleep和while。 - DK Bose