
Ich habe
- php-fpm 7.0.11 – mit ioncube
- nginx 1.10.x
- MariaDB 10.1
Ich verwende PHP-FPM statisch, ich hatte damit nie Probleme. Die hohe CPU-Auslastung trat zufällig auf und ist jetzt dauerhaft. Ich habe keine Änderungen vorgenommen.
Derzeit liegt die CPU-Auslastung bei 100 %, wobei sich die meisten PHP-FPM-Prozesse im R-Zustand befinden.
Hier ist eine Top-Ausgabe Meine CPU ist 16 Threads
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
Mein Webserver erhält mehr als 5000 Anfragen pro Sekunde, aber mit dieser Menge war vorher alles in Ordnung.
Ist sehr merkwürdig, weil:
Wenn ich ioncubed durch die ursprüngliche PHP-Quelldatei ersetze, verringert sich die Last auf 8 und die CPU-Auslastung auf nur 15-20 %.
Wenn ich den Ioncube BEHALTE, aber MySQL stoppe, verringern sich auch die durchschnittliche Auslastung und die CPU.
Manchmal, wenn ich die Sysctl-Konfiguration ändere, wird die CPU-Leistung für 10 Sekunden verringert, aber dann geht sie wieder auf 100%
Ich kann das nicht erklären, denn wenn es der Ioncube wäre, hätte ich das Problem mit 2), aber das ist nicht der Fall.
Ich habe beim Versuch, die wahre Ursache dafür herauszufinden, wirklich meine Haare verloren und es macht mich verrückt, weil das passiert ist, obwohl ich nichts geändert habe.
Meine Sysctl-Datei sieht wie folgt aus:
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