Das Starten einer PHP-Sitzung dauert manchmal sehr lange

Das Starten einer PHP-Sitzung dauert manchmal sehr lange

Vor einiger Zeit sind wir auf ein interessantes Problem gestoßen. Manchmal (nicht immer, nehmen wir an, bei etwa jedem 100.-200. Treffer) dauert session_start() sehr lange. Bis zu 60 Sekunden. (Die längste dauerte 63, normalerweise etwa 50).

Auf dem Server läuft CentOS 6.5 (Linux-Kernel 2.6.32-431.17.1.el6.x86_64) nginx/1.4.7 (ja, ich weiß, es ist alt) + Apache/2.2.15 + PHP 5.3.3 (unter Verwendung von mod_php). Zwei Intel SSD 530 ergeben Raid 0. Es ist viel freier RAM vorhanden, 5+ GB. Ich habe versucht, den vm.swappiness-Wert anzupassen, vielleicht liegt es an einer Speicher-Festplatten-Transaktion. Hilft nicht.

Es erscheint, auch wenn der Server fast nicht ausgelastet ist.
Sitzungen in Dateien gespeichert. Legen Sie Sitzungen auf RAM-Laufwerk (tmpfs) ab. Hilft nichts. Es gibt ungefähr ein paar Hundert Sitzungsdateien im Verzeichnis. Es sollte also kein Suchproblem geben. Manchmal tritt das gleiche Problem bei include/require auf, PHP braucht Sekunden, um die Datei zu laden, bevor mit der Verarbeitung begonnen wird. Es handelt sich also um ein E/A-Problem. atop/top hat nichts Ungewöhnliches angezeigt, während der Sitzungsstartprozess hängt.

free -m-Ausgabe während des Hängens

             total       used       free     shared    buffers     cached
Mem:         32101      23485       8616          0       1532      15642
-/+ buffers/cache:       6310      25790
Swap:        16383       1222      15160

frei -m Ausgabe normal

             total       used       free     shared    buffers     cached
Mem:         32101      23438       8662          0       1532      15623
-/+ buffers/cache:       6281      25819
Swap:        16383       1222      15160

nginx schreibt dies in die Zeit der Verlangsamung

2015/09/29 15:40:36 [warn] 16854#0: *14779 eine Upstream-Antwort wird beim Lesen des Upstreams in eine temporäre Datei /var/cache/nginx/proxy_temp/1/02/0000000021 gepuffert

habe versucht, proxy_max_temp_file_size festzulegen, aber das hat nicht geholfen.

Vielleicht weiß jemand, was der Grund sein könnte, oder in diese Richtung zu graben

verwandte Informationen