web-dev-qa-db-ja.com

キャッシュメモリとして使用されているRAMメモリをクリーンアップする方法は?

私のプロセッサは、RAMメモリの大部分をキャッシュとして使用しており、そのためにそれをクリーンアップしたいのですが、何かを害するのでしょうか?

6
Zignd

これを行う必要はなく、カーネルはRAMを効率的に管理します。プロセスが必要としない場合は、これをキャッシュとバッファに使用します。プロセスがさらに要求する場合RAM =要求を満たすために必要な場合、カーネルはキャッシュとバッファの割り当てを解除します。

このServerFaultの回答 は、freeによって報告されたメモリ使用量を解釈する方法を説明しています。

26
mgorven

あなたはそうする必要はありません。

キャッシュに何かがある場合、2つの可能性があります。

  • 再び必要です
  • それは再び必要ではありません

最初のケースでは、できる限り長くRAM=に留まるようにしてください。つまり、別のプロセスがRAMを必要とします。その後、ユーザーの介入なしに自動的に破棄されます。

2番目のケースでは、邪魔になりません。キャッシュをクリーンアップすることは不必要な作業であり、マイナスの影響しかありません。

8
user unknown
sync
echo 3 > /proc/sys/vm/drop_caches

詳細はこちらをご覧ください。

別の問題は、なぜあなたがこれをしたいのですか?

7
matcheek

私のプロセッサは、RAMメモリの大部分をキャッシュとして使用しており、そのためにそれをクリーンアップしたいのですが、何かを害するのでしょうか?

はい、現在キャッシュにあるものの多くは、ディスクからフェッチする必要があります。ディスクからのアクセスは、以前はメモリアクセスの100倍の速度でした。メモリの速度が向上し、ディスクの速度よりもはるかに速いため、数万倍も遅くなる可能性があります。その結果、現在キャッシュにあるものを必要とするものは、フラッシュされたデータに初めてアクセスするときに遅くなります。人間が認識できるかどうかは、取得する必要のある量によって異なります。

RAMはディスクに比べて比較的高価な商品ですが、それでもかなり安価です。キャッシュは永続的ではなく、プログラムを実行したり、最近使用したものをキャッシュしたりするために必要な場合は、キャッシュ内の最も古いものが解放されます。

3
BillThor