PHPセッションの開始に非常に長い時間がかかることがある

PHPセッションの開始に非常に長い時間がかかることがある

しばらく前に、興味深い問題に遭遇しました。時々 (毎回ではありませんが、100 ~ 200 ヒットごとに想定します)、session_start() に非常に長い時間がかかります。最大 60 秒です。(最長は 63 秒で、通常は約 50 秒です)。

サーバーは CentOS 6.5 (Linux カーネル 2.6.32-431.17.1.el6.x86_64)、nginx/1.4.7 (古いのはわかっています)、Apache/2.2.15、PHP 5.3.3 (mod_php を使用) で実行されています。2 つの Intel SSD 530 で Raid 0 を構成しています。5 GB 以上の空き RAM がたくさんあります。vm.swappiness 値を調整しようとしましたが、これはメモリ ディスク トランザクションが原因の可能性があります。助けにはなりません。

サーバーにほとんど負荷がかかっていない場合でも表示されます。
セッションはファイルに保存されます。セッションを RAM ドライブ (tmpfs) に配置します。助けにはなりません。ディレクトリには数百のセッション ファイルがあります。したがって、ルックアップの問題はないはずです。同じ問題が include/require でも発生することがあります。php は、処理を開始する前にファイルを読み込むのに数秒かかります。したがって、これは何らかの IO の問題です。セッション開始プロセスがハングしている間、atop/top は何も異常を示していません。

ハング中のfree -m出力

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

free -m 出力正常

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

nginx はスローダウン時にこれをログインに書き込みます

2015/09/29 15:40:36 [警告] 16854#0: *14779 アップストリームの読み取り中にアップストリームの応答が一時ファイル /var/cache/nginx/proxy_temp/1/02/0000000021 にバッファリングされます

proxy_max_temp_file_size を設定しようとしましたが、役に立ちませんでした。

誰かが理由を知っているかもしれない、またはこの方向で掘る

関連情報