我的 EBS 实例遇到 CPU 峰值问题。在几分钟之初,php-fpm 的 CPU 使用率偶尔会出现短暂峰值,然后恢复正常。我的 Laravel 项目中没有任何可能导致此问题的 cron 作业。我根本无法理解这种行为。当 CPU 峰值时,我的响应时间会显着缩短。此问题发生在同一分钟的同一秒 (02,04,06)。
当我在 Nginx access.log 中记录耗时超过 1 秒的请求时,会出现以下结果:
14/Sep/2024:00:14:02 +0000
14/Sep/2024:01:39:04 +0000
14/Sep/2024:01:00:06 +0000]
14/Sep/2024:01:13:02 +0000
14/Sep/2024:10:06:04 +0000
14/Sep/2024:09:50:02 +0000
对于每个时间段,平均有 20-25 个请求花费的时间超过 1 秒,我的平均响应时间约为 0.018 秒,其中 90% 的请求在 0.05 秒内完成,因此我确信我的 php 脚本是轻量级的。
项目和系统规格:
项目及系统规格:
有一个视频显示了此行为,请检查06:45:04和06:46:04的top命令中空闲CPU的变化: https://drive.google.com/file/d/1-iaTlionP52x5GyPm46maRjyOqKuVGep/view?usp=sharing
我还没有发现问题。
在整个运行过程中,您有 1-5 个进程正在运行,有趣的部分是在峰值之前发生的情况。
您的进程跳转到 6-8,然后下降到 1,然后返回以完成跳转到 7 并返回到正常数字。
检查您的
php-fpm.conf
或 www.conf
文件以查看以下值:
pm.max_children
pm.start_servers
pm.min_spare_servers
pm.max_spare_servers
你的conf可能不适合你的使用,可能太低,导致fpm在平衡上花费很多。
我真的质疑这个选项,但你也可以在这些点检查你的缓存性能。
最后,t3 不太适合实际应用程序,请检查 M6G 或 M7G,它们更便宜且性能更好。