ほとんどのメモリが「キャッシュ」されていても、スワップ領域はまだ使用されますか? [コピー]

ほとんどのメモリが「キャッシュ」されていても、スワップ領域はまだ使用されますか? [コピー]

私はこの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を確認)。

関連情報