Heim > System-Tutorial > LINUX > Hauptteil

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

WBOY
Freigeben: 2024-05-03 16:31:14
nach vorne
942 Leute haben es durchsucht

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
Nach dem Login kopieren

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!

Quelle:linuxprobe.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!