首页 > 解决方案 > PHP-FPM 进程导致 VPS 上 CPU 使用率高

问题描述

几个月前,由于共享托管平台的性能不佳,我们将电子商务网站迁移到了 VPS。为了处理流量的增加(平均每天 300-500 名访问者),我们调整了 PHP-FPM 设置并将 Max Children 从 5(默认)增加到 50。目前,PHP-FPM“池”进程需要高 CPU 使用率(30-40%)。有什么技巧可以让这些“池”进程使用更少的 CPU?谢谢!

VPS 规格:
2 CPU
Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz
4GB RAM

WHM:Centos 7.8 v86.0.18
电子商务平台:OpenCart 3.0.2.0

标签: phpapachecentosvps

解决方案


  1. FPM 与 CPU 使用率无关,它是您的代码。
  2. 也就是说,不要在没有合理依据的情况下随意更改工作进程的数量,例如:实际资源统计信息。
    • 每天有 300-500 个用户,除非你在做一些奇怪的事情,否则你真的不太可能有 50 个并发请求。
    • 我目前工作的高峰期大约有 600 个并发用户和最多 15-20 个连接实际上同时做任何事情。[注:更大/更广泛的支持基础设施]
    • 您真的希望每个 CPU 内核能够同时处理 25 个请求吗?
    • 你能合理地将 50 个请求的 RAM 放入 4GB 中吗?
    • 你对那些每个消耗 10-15MB RAM 的 50 个空闲 PHP 进程感到满意吗?

话虽如此,我们无法告诉您代码中的哪些内容正在消耗资源,而且您不可能发布足够的信息让我们做出比模糊猜测更多的信息。您需要采取措施来衡量资源使用发生的位置,分析您的代码以找出原因,并调整您的基础架构配置以适应您的特定应用程序需求。

没有一种“神奇”的配置适用于所有人。


推荐阅读