私が正しく理解していれば、freeによって生成される次の出力では、3535mがアプリケーションで使用可能な実際の空きメモリであり、413mのみが使用されます。これは正しいですか? Memと-/+buffers /cacherowの違いを明確にする必要があります。
free -m total used free shared buffers cached Mem: 3949 3854 95 0 9 3431 -/+ buffers/cache: 413 3535 Swap: 2047 1322 725
承認された回答:
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よりも多くのRAMが搭載されています。 free - buffers/cache
の場合 数値が低く、十分なRAMがないシステムを示します(広く信じられていることとは反対に、バッファとキャッシュに多くのメモリを割り当てることはシステムパフォーマンスにとって重要であり、アプリケーション用により多くのメモリを予約しようとすると99.99になりますシステムの%が遅い)。
swap
行は単純で、(アプリケーションまたはtmpfs
のいずれかで使用されているスワップの量を示しています。 ストレージ)、およびそうでない量。