Linux システムのキャッシュ メカニズムは非常に高度であり、dentry (VFS の場合、ファイル パス名の i ノードへの変換を高速化する)、バッファ キャッシュ (ディスク ブロックの読み取りおよび書き込み用)、およびページ キャッシュ (ファイルの i ノードの読み取りおよび書き込み用) を対象としています。 ).) キャッシュ操作を実行します。ただし、多数のファイル操作が実行されると、基本的にキャッシュはメモリ リソースを使い果たします。しかし実際には、ファイル操作は完了しており、キャッシュのこの部分は使用されなくなりました。現時点では、キャッシュがメモリ空間を占有するのをただ観察するだけでよいでしょうか?
そのため、Linux ではメモリを手動で解放する必要があります。これは実際にはキャッシュを解放する操作です。
キャッシュを解放するという目的を達成するには、まず主要な構成ファイル /proc/sys/vm/drop_caches を理解する必要があります。このファイルにはキャッシュ解放のパラメータが記録されます。デフォルト値は 0 で、キャッシュが解放されないことを意味します。その値は 0 から 3 までの任意の数値で、さまざまな意味を表します:
0 – 未リリース
1 – ページキャッシュを解放します
2 – dentry と inode を解放する
3 – すべてのキャッシュを解放します
パラメータを理解した後、次の手順を使用してニーズに応じて操作できます。
まず、sync コマンドを使用して、変更された i ノード、遅延ブロック I/O、読み取り/書き込みマッピング ファイルを含む、未書き込みのシステム バッファーをすべてディスクに書き込む必要があります。そうしないと、キャッシュ解放プロセス中に保存されていないファイルが失われる可能性があります。
#同期
次に、必要なパラメータを /proc/sys/vm/drop_caches ファイルに書き込む必要があります。たとえば、すべてのキャッシュを解放する必要がある場合は、次のコマンドを入力します。 リーリー
このコマンドは入力するとすぐに有効になり、明らかに空きメモリが増えていることが確認できます。現在のキャッシュによって解放されたパラメータをクエリするには、次のコマンドを入力できます:
リーリー
上記は、Linux がコマンドを使用してキャッシュを解放する方法の紹介です。コンピューターがますますスタックしていると感じる場合は、コンピューターのゴミをクリーンアップしたほうがよいでしょう。以上がLinux は命令を使用してキャッシュ メソッドを解放しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。