Ubuntu 18.04 lsb,我正在尝试找出诊断 Amazon Ec2 实例(免费套餐)挂起时发生的情况的最佳方法。
有实验服务正在运行,可能存在/是内存泄漏。
为了提高生活质量,我使用了一个名为lnav的实用程序来帮助我浏览系统日志。我还安装了一个名为monitorix的实用程序来可视化正在发生的事情。
我可以/如何从系统日志中识别导致问题的特定过程吗?哪个日志可以帮助我?(/var/log/syslog 没有帮助)
这些图表显示了与系统交换空间相关的高 CPU 负载,直到发生灾难性故障。
但这并没有告诉我具体的过程。我怎样才能通过终端做到这一点?
我可以配置其他一些过程监控吗?
任何帮助appriciated...
编辑:感谢@Rinzwind 的提示,sar
现在已安装并且 cron 每 2 分钟运行一次......但它没有提供进程级别信息。因此,在其他答案的帮助下:
pidstat 5 > pidhist.log
管道输出到一个文本文件,并在持久会话中运行它将有助于在事件再次发生时进行诊断。
@heynnema 建议iotop
Runningiotop -P -a
用于top
文件 I/O 作为累加器。它表明实验过程(单声道服务)是使用 SWAPIN
****消耗最多交换的过程
我们看到可以看到相同的消耗模式,然后在重新启动进程后从 monitorix 恢复正常 ~20%。
在这些随机事件之间,系统连续数周保持稳定。证据iotop
证明根本问题在实验过程中!
然而,这仍然是一个运行时诊断。有没有办法从现有日志中确定事后哪个进程出错了?在没有抢先监控和日志记录的情况下做到这一点。
证明出了什么问题是需要解决的关键问题。如果没有启用日志记录,我们如何在不等待它再次发生的情况下做到这一点?内核日志???
谢谢你的帮助。