php 速度慢 (php-fpm) (Apache php 长时间等待)

php 速度慢 (php-fpm) (Apache php 长时间等待)

我有一个带有 PHP-FPM 模块的 Apache,有 8 个 CPU 核心。平均 CPU 总负载约为 75%,主要是因为 MySQL,请看屏幕。

现在的负载实际上比平时要小一点。

在此处输入图片描述

但问题是,当我打开主页时,加载时间随机为 1 秒左右(我猜是第一个字节的时间)。

我认为它可能正在等待 mysql 连接等,但似乎等待的额外时间是 PHP 从 Apache 获取声音之前的时间。

我做了两个有趣的测试:

  • 简单的 html 文件(带有一些文字的空文件)需要 100 毫秒才能加载。
  • 简单的 php 文件(没有连接到 mysql 等,只有带有简单 echo 的空 php 文件)大约需要 1 秒才能加载。

所以问题显然出在 php 或 apache+php 组合上。

为什么以及如何解决它。

我尝试增加一些 PHP fpm 设置,例如

pm = dynamic
pm.max_children = 5
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.max_requests = 200

将值从默认位上移。是的,CPU 负载立即上升到几乎 99% 所有 CPU,但速度没有固定 + 服务器完全加载。

该怎么办?

顺便说一句,我从 Apache mod-status 看到,目前每秒处理 25 个请求(虽然通常是两倍)。而且我认为我不应该等待 1 秒来加载具有 8 个 CPU 核心的空 php 脚本。

Server version: Apache/2.4.29
PHP7.2-fpm
MPM-Event
8vCPU, 16 GB RAM

顺便说一下,空的 php 文件也需要大约 3-4 秒,所以不仅仅是 1 秒。

相关内容