【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
コメント