我有
- php-fpm 7.0.11-带有 ioncube
- nginx 1.10.x
- mariadb 10.1
我正在使用 PHP-FPM 进行静态配置,我从来没有遇到过任何问题。高 CPU 使用率是随机发生的,现在它是永久性的。我没有做任何更改。
我们正在讨论时,CPU 使用率为 100%,并且大多数 PHP-FPM 进程处于 R 状态。
以下是顶部输出 我的 CPU 有 16 个线程
top - 08:21:15 up 31 min, 2 users, load average: 799.18, 782.54, 620.78
Tasks: 1082 total, 799 running, 283 sleeping, 0 stopped, 0 zombie
%Cpu(s): 98.5 us, 1.3 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0
我的网络服务器每秒收到超过 5000 个请求,但是在这个数量下以前一切都很好。
很奇怪,因为:
如果我用 PHP 文件的原始源替换 ioncubed ,则负载将减少到 8 ,并且 CPU 使用率仅为 15-20%
如果我保留 ioncube,但停止 mysql,平均负载和 CPU 也会减少。
有时当我更改 sysctl 配置时,CPU 会下降 10 秒,但随后又会达到 100%
我无法解释这一点,因为如果是 ioncube,我就会遇到 2) 的问题,但我没有。
我确实失去了头发,并试图找到其真正的原因,这让我发疯,因为那是在我没有改变任何事情的情况下发生的。
我的 sysctl 文件如下:
net.core.wmem_max= 1677721600
net.core.rmem_max= 1677721600
net.ipv4.tcp_rmem= 1024000 8738000 1677721600
net.ipv4.tcp_wmem= 1024000 8738000 1677721600
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_no_metrics_save = 1
net.core.netdev_max_backlog = 8000
net.ipv4.route.flush=1
fs.file-max=265536
net.core.somaxconn = 65535
vm.max_map_count=655300