Lösung 1:
Nun, falls Sie sich mutig fühlen:
gdb -p 20788
Geben Sie dann bt
aus um den Stapelrahmen zu sehen, z. B.
Und übrigens, es gibt auch ltrace
zu erwähnen – probieren Sie es auch aus.
UPD. :gut, ok, da wir jetzt eine Idee haben, dass Apache wirklich etwas ausführt, warum würdest du dir nicht mod_status
ansehen Ausgabe — Erweiterte?
Lösung 2:
Ein sehr einfacher Ansatz ist die Verwendung von htop
. Sie können nach Prozessen mit hoher CPU-Leistung sortieren und dann
- s für
strace
ein Prozess - l für
lsof
um die geöffneten Dateien eines Prozesses zu sehen - L bis
ltrace
.
Ich habe festgestellt, dass mindestens eine dieser Optionen das Skript findet, das die Last generiert, und Sie können dies natürlich auf einem Produktionswebserver zum Debuggen verwenden.
Lösung 3:
Sie könnten Folgendes versuchen:
- iotop (zeigt I/O auf dem System)
- netstat -t (Verbindungen anzeigen)
- Schauen Sie sich die Apache-Protokolldateien an und finden Sie heraus, was der Server zuletzt getan hat
- setzen Sie einige RLimits für den Apache-Prozess. Wenn diese Grenzen erreicht sind, wird der Prozess beendet, wodurch Sie weitere Informationen erhalten