私はこのfree -m
出力を理解しようとしています。
total used free shared buffers cached
Mem: 7971 7608 363 1 17 4703
-/+ buffers/cache: 2887 5084
Swap: 975 967 8
それでは、プロセスが実際に8GBのRAMのうち3GBを使用しているにもかかわらず、スワップが使用されますか?なぜこれが起こるのですか? OSはスワップを使用する代わりにfsキャッシュに少ないメモリを使用しないでください。
オペレーティングシステムはUbuntu 14.04.3 LTS
デフォルト設定を使用します。
答え1
OSはスワップを使用する代わりにfsキャッシュに少ないメモリを使用しないでください。
過去にOSにメモリが足りず、一部のメモリを交換したようです。
不足しているため、スワップの残りのページは使用されなくなり、OSはこれらの未使用のページではなくfsキャッシュを含む「ホット」データ用にRAMを予約する方が良いでしょう。
答え2
Linuxはページをディスクに交換するのに非常に積極的です。
これは、もはやRAMにページのコピーがないという意味ではありませんが、それでもスワップキャッシュ(ディスクに書き込まれたページをキャッシュするRAMの一部)にコピーできることを意味します。これの利点は、一部のプロセスにメモリが必要なときにRAMのページをすぐに解放できることです。以下で金額を確認できます。
grep SwapCached /proc/meminfo
また、プロセスのページが置き換えられている場合は、そのプロセスがそのページを必要とするわけではありませんが、その機能/データセグメントをまったく使用しないいくつかのリンクライブラリからのものかもしれません。
見るhttps://serverfault.com/questions/550793/how-to-find-what-is-using-linux-swap-or-what-is-in-the-swapトピックの紹介のために置き換えられた内容を確認できるスクリプトリンクもあります。
経験的に、仮想メモリ管理は時々混乱する可能性があります。
通常、スワップのサイズは重要ではありませんが、通常の活動中にスワップイン/アウトされる量はどのくらいですか(vmstatを確認)。