
私は持っている
- php-fpm 7.0.11 - ioncube 付き
- nginx 1.10.x
- マリアDB 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
私の Web サーバーは 1 秒あたり 5000 件を超えるリクエストを受信していますが、この量であれば以前はすべて問題ありませんでした。
非常に奇妙な理由:
ioncubed を PHP ファイルの元のソースに置き換えると、負荷は 8 に減少し、CPU 使用率は 15 ~ 20% に減少します。
ioncube を維持しながら、mysql を停止すると、負荷平均と CPU も減少します。
時々、sysctl 設定を変更すると、CPU が 10 秒間減少しますが、その後再び 100% になります。
これについては説明できません。もしこれがイオンキューブだったら、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