私が正しく理解した場合、freeで生成された次の出力では、3535mはアプリケーションで利用可能な実際の使用可能なメモリであり、413mのみが使用されます。これは正しいですか? Memと-/+バッファ/キャッシュラインの違いを明確にする必要があります。
自由-m 使用されたキャッシュされた空き共有バッファの総数 メモリ:3949 3854 95 0 9 3431 -/+ バッファ/キャッシュ: 413 3535 交換:2047 1322 725
答え1
これMem: total
はアプリケーションが使用できる総RAM容量です。これは、システムにインストールされている合計RAMから次の値を引いたものです。
- ハードウェアデバイスによって予約されたメモリ(グラフィックカードに独自のRAMがない場合は通常ビデオメモリ)
- カーネル自体が使用するメモリです。
この合計には以下が含まれます。
free
:現在どの目的にも使用されているメモリです。shared
:この概念はもう存在しません。これは以前のバージョンとの互換性のために出力に保持されます(スクリプトが解析できるいくつかの出力がありますfree
)。 (現在のシステムでは、通常ゼロ以外の値が表示されます。shared
用途が変更されました記憶を表示する共有メモリメカニズムによる明示的な共有。以前のシステムでは、複数のプロセスによってマッピングされたファイルとそれに共有される共有可能メモリが含まれていましたfork()
。 )buffers
:必要に応じてディスクに書き込むことができるファイルとしてサポートされているメモリ。cache
:いつでも回収できるファイルでサポートされているメモリ(違いは、buffers
バッファを再利用する前にディスクに保存する必要がありますが、キャッシュはディスクから再ロードできるコンテンツで構成されていることです)used -buffers/cache
:アプリケーションで使用されるメモリ(交換しない)。
危機的な状況では、システムはバッファやキャッシュなしで実行され、アプリケーション用のRAMを予約し、キャッシュなしでディスクの読み取りと書き込みを体系的に実行できます。この-/+ buffers/cache
数字は、アプリケーションによって直接使用されるRAMの量(used
列)と、アプリケーションで使用されていないRAMの量(free
列)を表します。
非常に多様ですが、通常のシステムは通常、RAMの約半分をアプリケーション専用として使用し、残りの半分はバッファおよびキャッシュ専用として使用します。専用ファイルサーバーを実行しない限り、システムには現在実行中の操作に必要なものよりも多くのRAMがあります。数値が低いと、free - buffers/cache
システムに十分なRAMがないことを意味します(通常の信念とは異なり、多くのバッファとキャッシュ専用メモリを確保することはシステムのパフォーマンスにとって非常に重要であり、アプリケーション用のより多くのメモリを予約しようとすると結果が悪い)。システムのパフォーマンスを低下させる)は、システムの99.99%の速度を遅くします)。
このswap
行は簡単です。これは、使用中のスワップ量(アプリケーションまたはtmpfs
ストレージによって)と未使用量を示します。
答え2
あなたは正しいです。バッファとキャッシュはオペレーティングシステムで使用されますが、アプリケーションではすぐに使用できます。オペレーティングシステムは、次のメモリ要求を満たすために一部のキャッシュを無効にして破棄します。
答え3
他の答えは無料の素晴らしい解釈です。しかし、なぜ無料で視聴したいのですか?おそらく、システムにメモリが不足して心配になるでしょう。
これに対するアップデートとして、Linuxカーネル4.20が追加されました/proc/pressure/
(「ストレス遅延情報」)。これには、ボトルネック(CPU、I / O、またはメモリ)によってシステムが遅くなるタイミングを知らせるインジケータが含まれています。
/proc/Pressure/Memoryの内容を見ると、プロセスがメモリ割り当てを待っているサンプルの割合がわかります。この数字がすべてゼロの場合(全部を除く)、システムにメモリが足りず、メモリを待たないことです。