通常、実行時にLinuxシステムは、一時データの保存に物理メモリの未使用部分を使用します。キャッシュとバッファは、システムがプログラムまたはアプリケーションのパフォーマンスを向上させるために使用するプログラムの一時データを参照します。物理メモリがプログラムによってキャッシュに使用されているのではないかと心配していて、それらをクリアしたい場合。 Linuxでこれを行うことができます。これについては、この記事で説明します。 Linuxシステムでは、キャッシュをクリアするための3つのオプションが用意されています。調べてみましょう。
キャッシュページをクリアするため
# sync; echo 1 > /proc/sys/vm/drop_caches
デントとiノードのクリア用
# sync; echo 2 > /proc/sys/vm/drop_caches
PageCache、dentries、inodeをクリアする場合
# sync; echo 3 > /proc/sys/vm/drop_caches
上記のコマンドでは、syncコマンドがすべてのキャッシュデータをフラッシュしてディスクに書き込みます。同期後のセミコロン(;)は、2つのコマンドを分離し、最初のコマンドが完全に実行された2番目のコマンドユニットを保持します。ページキャッシュは、ファイルの読み取り後にシステムによって保持されるキャッシュデータです。
同様に、dentryとinode_cacheは、ファイル属性/ディレクトリを読み取った後にメモリに保存されるキャッシュデータです。 Linuxカーネルによると、drop_cachesに書き込むと、実行中のプログラムに影響を与えることなくキャッシュがクリアされます。
上記の例では、キャッシュデータが249Mbから138Mbに減少していることがわかります。
注:メモリキャッシュはスワップスペースとは関係がないため、スワップスペースを増やしても効果はありません。キャッシュデータの保存にスワップスペースを使用しません。
スワップメモリをクリアする
基本的に、RAMのメモリが不足するたびに、セカンダリ物理メモリとして使用されるディスク上のスペースを交換して、システムのパフォーマンスを向上させます。スワップのデータも一時的なものであるため、システムのスワップスペースをクリアするには、次のコマンドを実行します。
# swapoff -a && swapon -a
swapoffコマンドはスワップを無効にし、swaponはスワップを有効にします。必要に応じて、演算子を使用せずに両方のコマンドを個別に実行できます。
結論
この記事では、物理メモリのキャッシュとバッファメモリをクリアする方法と、必要に応じてスワップスペースをクリアする方法について説明します。この記事を気に入っていただければ幸いです。