![Fehlverhalten des NGINX-Cache führt dazu, dass das System außer Kontrolle gerät](https://rvso.com/image/632779/Fehlverhalten%20des%20NGINX-Cache%20f%C3%BChrt%20dazu%2C%20dass%20das%20System%20au%C3%9Fer%20Kontrolle%20ger%C3%A4t.png)
Wir verwenden CentOS/nginx fastcgi_cache, um Anfragen an PHP-Dateien auf unserem Server zwischenzuspeichern. Auf diese Datei wird sehr häufig zugegriffen und sie wird auch sehr oft aktualisiert, daher verfügt sie über einen 1-Sekunden-Cache.
Normalerweise sehen wir beim Durchsehen des Zugriffsprotokolls etwas wie das hier:
00:01 REQUEST 1 "EXPIRE"
00:01 REQUEST 2 "HIT"
00:01 REQUEST 3 "HIT"
00:02 REQUEST 4 "EXPIRE"
00:02 REQUEST 5 "HIT"
00:02 REQUEST 6 "HIT"
Wenn das Problem auftritt, passiert etwas mit Nginx und das Protokoll sieht plötzlich folgendermaßen aus (alle laufen ab, obwohl in derselben Sekunde):
00:01 REQUEST 1 "EXPIRE"
00:01 REQUEST 2 "EXPIRE"
00:01 REQUEST 3 "EXPIRE"
00:02 REQUEST 4 "EXPIRE"
00:02 REQUEST 5 "EXPIRE"
00:02 REQUEST 6 "EXPIRE"
Wichtiger Hinweis: Kurz bevor dies geschieht, meldet php-fpm: WARNUNG: [pool www] Server hat max_children-Einstellung (35) erreicht, erwägen Sie eine Erhöhung. HINWEIS: Wird beendet ... HINWEIS: wird beendet, tschüss! HINWEIS: fpm läuft, pid 27544 HINWEIS: bereit zur Verarbeitung von Verbindungen
(Dies ist kein normales Verhalten und kommt sehr selten vor)
Ich habe versucht, php-fpm mitten in der Arbeit neu zu starten, um zu sehen, ob sich das auf den Cache auswirkt – ging nicht. Ich habe auch versucht, die spezifischen Dateien, die häufig aufgerufen werden, einem Stresstest zu unterziehen, und ich kann das System nicht verrückt machen. Außerdem habe ich überprüft, ob der Cache-Schlüssel richtig konfiguriert ist.
Hat jemand eine Idee, welche anderen Möglichkeiten es hier gibt? Gibt es sonst noch etwas, das ich prüfen kann?
PS: Um das Problem zu beheben, wenn es passiert, stoppen wir die Anfragen für die Datei und starten den Dienst neu, und dann funktioniert es wieder.
Danke für die Hilfe, Alon