【PHP】 セッションファイルを階層分けして格納する
とあるシステムのセッションディレクトリを覗いてみたらミリオン単位のファイルが詰まっていることが解って、I/O重いの当たり前じゃねーか…!(普通は1ディレクトリ1000ファイルまでに抑えるべき)となったので改善を試みました。
具体的にはディレクトリを階層化します。
改善前
/path/to/session/sess_hogehogehoge
改善後
/path/to/session/0/1/2/sess_hogehogehoge
以下、手順。
- 階層化されたセッションディレクトリを作成する
- 作成したセッションディレクトリのパーミッションを変更する
- PHPの設定を変更する
- httpd再起動
- 古いセッションを削除するように設定する