しばらく前に、興味深い問題に遭遇しました。時々 (毎回ではありませんが、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 を設定しようとしましたが、役に立ちませんでした。
誰かが理由を知っているかもしれない、またはこの方向で掘る