PHPSESSIONのガーベッジコレクション
PHPのセッションタイムアウトはphp.iniで設定されているsession.gc_maxlifetimeで秒設定できますが、そもそもガーベッジコレクションの起動タイミングがよく分からなかったので調べてみました。
ガーベッジコレクションのメソッドがCallされるのは、session_start()時みたいですが、毎回ではなく(毎回起動するのはナンセンスなので)以下の2つの設定値から起動確率をもって起動するみたいです。
session.gc_probability/session.gc_divisor
デフォルトでは
session.gc_probability=1
session.gc_divisor=100
になってます。
基本session_start()がCallされる≒リクエスト受付になると思うので、1秒間に100回リクエストが発生するするサイトだと少なくとも1秒毎にガーベッジコレクションが起動するようになってます。
小規模サイトだけど内容がシビアなサイトはデフォルト値を見直す方がいいんやろね。