首页 > 解决方案 > 巨大的 CPU 负载 - php-fpm + nginx

问题描述

我将 php-fpm 与 STATIC 池一起使用,问题是 20 个池中的 2-3 个池用于 80-100% CPU。其他 php 池保持未使用状态。

我的问题是:为什么其他 17 个进程未使用?

我们使用 AWS 实例 c4.large。我们的 docker 镜像使用 1024 个 CPU 单元和 2560 MB 内存。

实例中的 DOCKER 容器

容器中的所有进程

顶部截图

标签: phpdockernginx

解决方案


PHP-FPM pm 静态设置很大程度上取决于您的服务器有多少可用内存。基本上,如果您遭受服务器内存不足的困扰,那么 pm ondemand 或 dynamic 可能是更好的选择。另一方面,如果您有可用内存,则可以通过将 pm static 设置为服务器的最大容量来避免大部分 PHP 进程管理器 (PM) 开销。换句话说,当您进行数学运算时,应该将 pm.static 设置为可以运行的 PHP-FPM 进程的最大数量,而不会产生内存可用性或缓存压力问题。此外,不要太高以至于压倒 CPU 并有一堆未决的 PHP-FPM 操作。


推荐阅读