找出罪魁祸首的进程

找出罪魁祸首的进程

这是一个基本的 Linux 管理问题。我们有一台运行生产应用程序的 CentOS Linux 机器。该机器上运行着 10 个应用程序特定进程。Once in every 3/4 days, the linux machine freezes恢复它的唯一方法是从 Amazon AWS 控制台硬重启它。

我们启用了 Amazon Cloudwatch,每 5 分钟捕获一次 CPU 使用情况。我们看到 CPU 在冻结之前的 10-15 秒内达到 100%(8 核)。不幸的是,我们无法从进程日志文件中找出任何信息。

我们如何真正定位which process out of those 10 processes is causing the linux server to freeze?

是否有任何简单的 CPU/内存监控应用程序可以将最占用 CPU/内存的情况记录到磁盘(例如每 2 秒)?感谢任何其他想法来找出罪魁祸首的过程。

答案1

您可以简单地top以批处理模式运行并将输出保存到文件中:

$ top -b -d 2 > /your/log/file &

-d 2是采样周期。请注意,这将生成大量数据。

您可能希望使用-u仅列出给定用户的进程的选项,甚至是-p显式列出应用程序进程的选项。

答案2

此链接包含多个 (20) 个用于监控流程的工具。top当然是最受欢迎的,但其他工具iotop也很有用。iotop将显示哪些进程正在使用最多的文件系统 IO。

http://www.howtoing.com/command-line-tools-to-monitor-linux-performance/

相关内容