ホームページ > php教程 > php手册 > 多数の PHP セッションのハッシュと期限切れのリカバリ

多数の PHP セッションのハッシュと期限切れのリカバリ

WBOY
リリース: 2016-06-21 08:56:40
オリジナル
923 人が閲覧しました

プログラムの必要性により、サーバーのトラフィックが比較的多く、セッションの有効期限が 3 時間に設定されているため、/tmp の下に約 200,000 のセッション ファイルが蓄積されます。これにより、カーネルによる CPU 使用率が急激に増加します。セッションの読み書きでは、多数の小さなファイルがランダムに読み書きされ、それらが 1 つのディレクトリに集中するため、iowait も急激に増加します。

まずセッションをメモリに入れることを検討してください

最も簡単な方法は、メモリ内にある tmpfs ファイル システムとして /tmp をマウントすることです

2 番目のステップは、セッションを別のディレクトリに保存することです

php 自体はセッションのマルチレベルのハッシュをサポートしています

php.ini で、

を変更します

;session.save_path = /tmp

に変更されました

session.save_path = "2;/tmp/session"

は、セッションをフォルダー /tmp/session に保存し、2 とハッシュを使用することを意味します。

保存して終了し、3 番目のステップが完了するまで待って php を再起動します

3 番目のステップは、セッション ストレージ フォルダー

を作成することです。

php はこれらのフォルダーを自動的に作成しませんが、フォルダーを作成するためのスクリプトがソース ファイルで提供されています。次のスクリプトも便利です


I="0 1 2 3 4 5 6 7 8 9 a b c d e f"
for acm in $I;
do
for x in $I;
do
mkdir -p /tmp/session/$acm/$x;
done;
done
chown -R nobody:nobody /tmp/session
chmod -R 1777 /tmp/session

/tmp はメモリに使用されるため、サーバーの再起動後にその中のファイルはすべて失われます。そのため、上記のスクリプトを /etc/rc.local に追加して、php を起動する前に配置する必要があります。

4 番目のステップ、セッションのリサイクル

セッションは session.gc_maxlifetime の後に期限切れになりますが、すぐには削除されません。時間が経過すると、/tmp スペースが占有されます。具体的な削除アルゴリズムを勉強するのが面倒です。次のコマンドは、期限切れのセッションを削除できます。ここで定義する有効期限は 3 時間です。

find /tmp/session -amin +180 -exec rm -rf {} ;

これを cron に入れて 10 分ごとに実行すれば完了です。



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート