Elastic Beanstalk CPU 在特定时间出现峰值问题

问题描述 投票:0回答:1

我的 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 脚本是轻量级的。

项目和系统规格:

项目及系统规格:

  1. 实例类型:T3 小型 (Amazon Linux 2023 AMI)
  2. 框架:Laravel
  3. 数据库:ElastiCache Redis(Redis 数据库不与任何其他项目共享)

有一个视频显示了此行为,请检查06:45:0406:46:04top命令中空闲CPU的变化: https://drive.google.com/file/d/1-iaTlionP52x5GyPm46maRjyOqKuVGep/view?usp=sharing

我还没有发现问题。

laravel amazon-web-services amazon-ec2 redis amazon-elastic-beanstalk
1个回答
0
投票

在整个运行过程中,您有 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,它们更便宜且性能更好。

© www.soinside.com 2019 - 2024. All rights reserved.