如何确定 CPU 利用率突然上升的原因

如何确定 CPU 利用率突然上升的原因

我在 AWS EC2 实例中配置了一个 Web 应用程序的生产服务器。我已经运行了好几年,突然从今天早上开始,它显示 CPU 使用率出现了一些峰值,并且应用程序今天停机了几次。当我运行 atop 命令时,我看到 php-fpm 的 CPU 利用率很高,但只有少数 PID 如此。有没有办法确定这个正在运行的进程或 PHP 控制器操作是什么。感谢您的帮助。

在此处输入图片描述

当我检查 nginx 错误日志时,我发现了这一点,

2022/01/30 11:26:01 [alert] 547#547: *160214 open socket #26 left in connection 259
2022/01/30 11:26:01 [alert] 547#547: *160153 open socket #6 left in connection 268
2022/01/30 11:26:01 [alert] 547#547: *159984 open socket #17 left in connection 273
2022/01/30 11:26:01 [alert] 547#547: *157860 open socket #140 left in connection 275
2022/01/30 11:26:01 [alert] 547#547: *160427 open socket #38 left in connection 280
2022/01/30 11:26:01 [alert] 547#547: aborting

答案1

Nginx 可以记录$upstream_response_time。这与请求时间不同,因为它不包括将其发送到客户端的时间。如果启用此功能,您可以在日志中看到哪些请求在 PHP 中花费了很长时间。

此外,PHP-fpm 还具有查询可能有用的统计数据的功能。也许phpfpmtop有用。

相关内容