pm.max_children erreicht, viele Sockets zugewiesen, keine CPU-Auslastung

pm.max_children erreicht, viele Sockets zugewiesen, keine CPU-Auslastung

Das Thema

Ich habe einen Server, der pm.max_children (200) erreicht, ohne dass die CPU-Auslastung in die Höhe schießt. Kein Netzwerkverkehr (MB raus / MB rein), aber eine extrem hohe Anzahl zugewiesener Sockets, die nicht geschlossen werden.

CPU: 16 Kerne RAM: 64 GB

Bilder von meinem Prometheus-Monitorsystem.

Netzwerkverkehr, schau dir das Loch an

Bildbeschreibung hier eingeben

Keine Sockets gelangen zum TCP_tw-Punkt, sie bleiben bei TCP_alloc hängen

Bildbeschreibung hier eingeben

Starker Anstieg der Steckdosennutzung

Bildbeschreibung hier eingeben

Um dieses Problem zu beheben, muss ich php-fpm manuell neu starten. Andernfalls bleibt es bei neuen Verbindungen komplett hängen.

CPU-Auslastung, Sie sinkt stark

Bildbeschreibung hier eingeben

Aktualisieren

Ich vermute, dass dies daran liegt, dass Tabellen in der Datenbank für einen längeren Zeitraum gesperrt werden, was dazu führt, dass alle Verbindungen, die versuchen, auf diese Daten zuzugreifen, warten müssen und die Daten schließlich in einem großen Stapel von Verbindungen stecken bleiben.

Ich richte derzeit einen MySQL-Exporter ein, um zu sehen, ob ich mehr finden kann.

verwandte Informationen