SessionHandler::gcとは?
状態:-
閲覧数:1,288
投稿日:2017-02-10
更新日:2017-02-10
有効期限を過ぎたセッション(ファイル)を削除する、SessionHandlerクラスのクラスメソッド
PHP がセッションを開始したとき、あるいは session_start() を実行したとき、にコールされる
→ ユーザがアクセスしてきたタイミング
session.gc_divisor 及び session.gc_probability の設定に基づいて決定
・session.gc_divisorと session.gc_probabilityの組み合わせで gc(ガーベッジコネクション)プロセス が始動する確率を制御
・確率は gc_probability/gc_divisor で計算される
session.gc_divisor
・デフォルト100
session.gc_probability
・デフォルト1
gc_probability/gc_divisor
・1/100
→ 各リクエスト毎に1%の確率でGCプロセスが 始動
⇒100アクセス中1回くらいの割合でGCが起動されてセッションファイルが削除される
デフォルトでは
・100回中99回のアクセスではGCが起動されず、有効期限の切れたセッションでも削除されない
→ アクセスが少ないサイトであれば、セッションデータはそれなりに長い間残り続ける
・SessionHandler::gc
・PHPのガベージコレクションの発生確率について
呼び出されるタイミングは?
PHP がセッションを開始したとき、あるいは session_start() を実行したとき、にコールされる
→ ユーザがアクセスしてきたタイミング
呼び出される頻度は?
session.gc_divisor 及び session.gc_probability の設定に基づいて決定
・session.gc_divisorと session.gc_probabilityの組み合わせで gc(ガーベッジコネクション)プロセス が始動する確率を制御
・確率は gc_probability/gc_divisor で計算される
session.gc_divisor
・デフォルト100
session.gc_probability
・デフォルト1
gc_probability/gc_divisor
・1/100
→ 各リクエスト毎に1%の確率でGCプロセスが 始動
⇒100アクセス中1回くらいの割合でGCが起動されてセッションファイルが削除される
呼び出されない頻度は?
デフォルトでは
・100回中99回のアクセスではGCが起動されず、有効期限の切れたセッションでも削除されない
→ アクセスが少ないサイトであれば、セッションデータはそれなりに長い間残り続ける
・SessionHandler::gc
・PHPのガベージコレクションの発生確率について