这是一个基本的 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/