プログラムの必要性により、サーバーのトラフィックが比較的多く、セッションの有効期限が 3 時間に設定されているため、/tmp の下に約 200,000 のセッション ファイルが蓄積されます。これにより、カーネルによる CPU 使用率が急激に増加します。セッションの読み書きでは、多数の小さなファイルがランダムに読み書きされ、それらが 1 つのディレクトリに集中するため、iowait も急激に増加します。
まず、セッションをメモリに置くことを検討してください。最も簡単な方法は、/tmp を tmpfs ファイル システムとして、つまりメモリ内にマウントすることです。
詳細については、「Linux での一時フォルダーとしてのメモリの使用」を参照してください
PHP 自体はセッションのマルチレベルのハッシュをサポートしています
php.ini で、;session.save_path = /tmp を
に変更します。
session.save_path = "2;/tmp/session"
は、セッションをフォルダー /tmp/session に保存し、2 とハッシュを使用することを意味します。
保存して終了し、3 番目のステップが完了するまで待って、php を再起動します
PHP はこれらのフォルダーを自動的に作成しませんが、フォルダーを作成するためのスクリプトがソース ファイルで提供されています。以下のスクリプトも使いやすいです
I="0 1 2 3 4 5 6 7 8 9 a b c d e f"
$I の acm の場合;
する
$I の x について;
する
mkdir -p /tmp/session/$acm/$x;
完了しました;
完了しました
chown -R 誰もいない:誰もいない /tmp/session
chmod -R 1777 /tmp/セッション
4番目のステップ、セッションのリサイクル
セッションは session.gc_maxlifetime 後に期限切れになりますが、時間が経つと、/tmp スペースが占有されてしまい、すぐには削除されません。具体的な削除アルゴリズムを勉強するのが面倒です。次のコマンドは、期限切れのセッションを削除できます。ここで定義した有効期限は 3 時間です。
/tmp/session -amin +180 -exec rm -rf {} を見つけます ;
それを cron に入れて 10 分ごとに実行すれば完了です。
http://www.bkjia.com/PHPjc/486449.html