Heim  >  Artikel  >  System-Tutorial  >  Zeichnen Sie einmal auf und verwenden Sie Strace, um das Problem zu diagnostizieren, dass PHP zu viele Systemressourcen belegt.

Zeichnen Sie einmal auf und verwenden Sie Strace, um das Problem zu diagnostizieren, dass PHP zu viele Systemressourcen belegt.

WBOY
WBOYnach vorne
2024-05-03 16:31:14914Durchsuche

Lokale Umgebung: Redhat6.7-System. nginx1.12.1, php7.1.0, der Code verwendet das yii2-Framework

Frage: Die lokale Website muss den Elasticsearch-Dienst verwenden. Wenn PHP Elasticsearch verwendet, das auf einem lokalen Server erstellt wurde, ist die lokale Last normal. Wenn ich den Elasticsearch-Service von AWS nutze, ist die Auslastung des lokalen Servers oft zu hoch. Überprüfen Sie die Nginx- und PHP-Protokolle und finden Sie keine Ausnahmen. Auch die Anzahl gleichzeitiger Verbindungen im System ist nicht hoch. Zu diesem Zeitpunkt dachte ich an ein Strace-Diagnosetool, das mir unser Chef erzählt hatte.

Debugging-Prozess:

  • Finden Sie die ID eines untergeordneten PHP-Prozesses
  • strace -cp pid verfolgt Prozessaufrufe

Systemauslastung zu diesem Zeitpunkt:

Zeichnen Sie einmal auf und verwenden Sie Strace, um das Problem zu diagnostizieren, dass PHP zu viele Systemressourcen belegt.

Strace-Debugging-Prozess

Zeichnen Sie einmal auf und verwenden Sie Strace, um das Problem zu diagnostizieren, dass PHP zu viele Systemressourcen belegt.

Hier habe ich festgestellt, dass PHP beim Aufruf von Elasticsearch lokal nach einer Datei sucht und diese Datei nicht existiert. Dies führt zu einer hohen Serverlast. Durch Vergleich des Unterschieds zwischen AWS Elasticsearch und lokalem ES-Cluster. Ich habe festgestellt, dass nur die aufrufende Methode unterschiedlich war. Der Code wird mit der https-Methode aufgerufen und sucht daher lokal nach der Zertifikatsbibliotheksdatei. Ich kontaktierte sofort das Entwicklungsteam und änderte die Aufrufmethode auf http. Nach einiger Zeit normalisierte sich die Serverauslastung.

strace -T -e access -p 1379

Zeichnen Sie einmal auf und verwenden Sie Strace, um das Problem zu diagnostizieren, dass PHP zu viele Systemressourcen belegt.

Das obige ist der detaillierte Inhalt vonZeichnen Sie einmal auf und verwenden Sie Strace, um das Problem zu diagnostizieren, dass PHP zu viele Systemressourcen belegt.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:linuxprobe.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen