ホームページ  >  記事  >  バックエンド開発  >  PHP テクノロジー セッションのハッシュと期限切れのリサイクル_PHP チュートリアル

PHP テクノロジー セッションのハッシュと期限切れのリサイクル_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 10:57:021066ブラウズ

セッションは、コンピューター、特にネットワークアプリケーションでは「セッション」と呼ばれます。

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

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

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

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

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

php.iniで、

<ol class="dp-c"><li class="alt"><span><span>session.save_path = /tmp;  </span></span></li></ol>

<ol class="dp-c"><li class="alt"><span><span>session.save_path = </span><span class="string">"2;/tmp/session"</span><span>  </span></span></li></ol>

に変更することは、セッションを/tmp/sessionフォルダーに保存することを意味し、それはUse 2とhashです。

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

3番目のステップ、セッションストレージフォルダーを作成します

phpはこれらのフォルダーを自動的に作成しませんが、いくつかの作成フォルダーはソースファイルスクリプトで提供されます。次のスクリプトも使いやすいです

<ol class="dp-c">
<li class="alt"><span><span>I=</span><span class="string">"0 1 2 3 4 5 6 7 8 9 a b c d e f"</span><span>   </span></span></li>
<li>
<span class="keyword">for</span><span> acm in </span><span class="vars">$I</span><span>;   </span>
</li>
<li class="alt">
<span class="keyword">do</span><span>   </span>
</li>
<li>
<span class="keyword">for</span><span> x in </span><span class="vars">$I</span><span>;   </span>
</li>
<li class="alt">
<span class="keyword">do</span><span>   </span>
</li>
<li>
<span class="func">mkdir</span><span> -p /tmp/session/</span><span class="vars">$acm</span><span>/</span><span class="vars">$x</span><span>;   </span>
</li>
<li class="alt"><span>done;   </span></li>
<li><span>done   </span></li>
<li class="alt">
<span class="func">chown</span><span> -R nobody:nobody /tmp/session   </span>
</li>
<li>
<span class="func">chmod</span><span> -R 1777 /tmp/session </span>
</li>
</ol>

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

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

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

<ol class="dp-c"><li class="alt"><span><span>find /tmp/session -amin +180 -</span><span class="func">exec</span><span> rm -rf {} ;  </span></span></li></ol>

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

この記事では、セッションのハッシュ化と期限切れのリサイクルを 4 つのステップで紹介します。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445794.html技術記事コンピュータ、特にネットワーク アプリケーションでは、セッションはセッションと呼ばれます。 サーバーのトラフィックが比較的大きいため、プログラムの必要性により、セッションの有効期限は 3 時間に設定されており、結果は...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。