GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Finden Sie heraus, was der Apache-Prozess mit hoher CPU-Auslastung tatsächlich tut?

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

verwenden
  • 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

Linux
  1. So begrenzen Sie die CPU-Auslastung eines Prozesses in Linux

  2. 4 Möglichkeiten, einen CPU-Kern herauszufinden, der einen bestimmten Prozess in Linux ausführt

  3. Welcher Prozess hat dieses X11-Fenster erstellt?

  4. Linux – Wie finde ich den Namensraum eines bestimmten Prozesses heraus?

  5. Wie finde ich heraus, welcher Prozess eine Datei in Linux gesperrt hat?

So erhalten Sie die CPU-Auslastung eines einzelnen Prozesses in Linux

Finden Sie heraus, welcher Prozess sich am anderen Ende einer Pipe befindet

Was ist ein Befehl, um die Priorität des Prozesses in Linux zu finden?

So finden Sie heraus, welcher Prozess eine hohe CPU-Auslastung verursacht

Wie finde ich den Namensraum eines bestimmten Prozesses heraus?

Wie protokolliere ich die CPU-Nutzung pro Prozess?