/proc/sys/vm/drop_caches"を使用するLinux drop_cacheが期待どおりに機能しません。">

"echo 3> /proc/sys/vm/drop_caches"を使用するLinux drop_cacheが期待どおりに機能しません。

/proc/sys/vm/drop_caches"を使用するLinux drop_cacheが期待どおりに機能しません。">

本番環境では、dropキャッシュコマンドを実行してecho 3 > /proc/sys/vm/drop_cachesRAMを解放します。しかし、キャッシュを削除するのは良い習慣ではなく、プロセスにもっと多くのメモリが必要で、そのメモリが利用できない場合、OSはキャッシュを消去してそれに応じてメモリを割り当てるのであまり役に立ちません。

技術的価値もある書くことができるコマンドを実行する前後のメモリはdrop_caches同じでなければなりません。

しかし、いくつかのテストを実行したときにキャッシュを削除すると、空きRAMを確保するのに役立つことがわかりました。

free -h-キャッシュを削除する前に

              total        used        free      shared  buff/cache   available
Mem:           7.6G        4.2G        524M        306M        2.9G        2.8G
Swap:          4.0G        439M        3.6G

free-h-キャッシュ削除後

              total        used        free      shared  buff/cache   available
Mem:           7.6G        3.3G        3.8G        306M        452M        3.8G
Swap:          4.0G        439M        3.6G

私たちが見ることができるように書くことができるメモリが1GB増えてもっと興味深いのは使用されるメモリがほぼ1GBほど減ります。これが私がとても混乱している部分です。drop_cacheコマンドを消去してはいけませんかcached memory?いくつかの実行中のプロセス(例:使用されるメモリ)

誰かがこれを説明できますか?

  1. コマンドはどのようにecho 3 > /proc/sys/vm/drop_caches機能しますか?
  2. freeコマンドで利用可能なメモリを計算する方法(利用可能なメモリ分析)


編集後

私の質問の1つはまだ答えられていません。

技術的には、drop_cachesコマンドの実行前と実行後に使用可能なメモリ値は同じでなければなりません。

私たちが議論したように、書くことができるメモリには、回収可能なスラブオブジェクトが含まれます。

はい、リサイクル可能なスラブオブジェクトは、フリー、バッファ、またはキャッシュに含まれていないため、最終的に使用されることを意味します。 「使用可能」の定義には明示的に含まれているため、そこにも含まれます。

ただし、実行すると、echo 2 > /proc/sys/vm/drop_caches回収可能なスラブオブジェクト(ディレクトリとinodeを含む)は解放されます。

キャッシュを削除する前に

              total        used        free      shared  buff/cache   available
Mem:           7.6G        4.2G        397M        331M        3.0G        2.7G
Swap:          4.0G        429M        3.6G

キャッシュ削除後

              total        used        free      shared  buff/cache   available
Mem:           7.6G        3.3G        3.8G        331M        483M        3.8G
Swap:          4.0G        429M        3.6G

ここで見るように書くことができるキャッシュ削除後にメモリが増えたのに、すでに使っているので、echo 2ただ無料ですねreclaimable slab objects。 〜のように書くことができるメモリには、常にreclaimable slab objects実行時にecho 2 > /proc/sys/vm/drop_caches変更してはいけない値が含まれています。書くことができるメモリ。

しかし、私の場合はそうではありません。

ベストアンサー1

おすすめ記事