SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【php】なぜかサーバーが重い、レスポンスが遅い

何もしていないはずなのに、なぜかサーバーが重い、レスポンスが悪い。なぜかロードアベレージが高い。

そんなときの原因のひとつ。

「phpが自動で行う、セッションファイルの削除」

アクセス数の多いサイト(=セッションファイルの多いサーバー)では、このセッションファイルの削除が大きな負荷になることがある。

セッションファイルの削除処理が発生する確率は、php.iniのsession.gc_probabilityとsession.gc_divisorで決定され、次のようになる。

session.gc_probability / session.gc_divisor

デフォルトでは gc_probability=1、gc_divisor=100 → 1%の確率で発生。つまり100回リクエストがあると、1回セッションファイル削除が行われる。アクセス数の多いサイトでは、結構な頻度で発生することになる。

そこで、下記のように1000回に1回発生するようにしたら、そのサーバーの謎の負荷は下がりました。

session.gc_probability = 1
session.gc_divisor = 1000

関連するメモ

コメント