freeの出力におけるバッファ/キャッシュラインの意味


168

サーバーが表示されるのはなぜですか

            total      used      free   shared buffers    cached
    Mem: 12286456  11715372    571084        0   81912   6545228
-/+ buffers/cache:  5088232   7198224
   Swap: 24571408     54528  24516880

Linuxでメモリを計算する方法がわかりません。7198224が無料であるため、実際には5GBのRAMを消費しているところで5088232が使用されていると思いますか?



回答:


232

値の意味

最初の行は次を意味します:

  • total:合計(物理)RAM(起動時にカーネルが永続的に確保する小さなビットを除く); それがcaを示している理由です。11.7 GiBであり、おそらく12 GiBではありません。
  • used:OSが使用中のメモリ。
  • free:メモリが使用されていません。

total= used+free

  • shared/ buffers/ cached:これは特定の目的のメモリ使用量を示し、これらの値はの値に含まれますused

2行目は、調整された最初の行の値を示します。それはのために元の値与えused マイナスの和buffers+cachedとの元の値free を加えた合計buffers+cachedしたがって、そのタイトルを。これらの新しい値は、多くの場合、最初の行の値よりも意味があります。

最後の行(Swap:)は、スワップ領域の使用状況(つまり、一時的にディスクに移動されたメモリの内容)に関する情報を提供します。

バックグラウンド

数字の意味を実際に理解するには、Linuxの仮想メモリ(VM)サブシステムに関する背景知識が少し必要です。短いバージョン:Linux(最新のOSのほとんどと同様)は常にキャッシュ用に空きRAMを使用しようとするため、Mem: freeほとんどの場合非常に低くなります。したがって、-/+ buffers/cache:キャッシュを無視するときに空きメモリの量を示すため、この行が表示されます。キャッシュはメモリが不足すると自動的に解放されるため、実際には問題になりません。

行のfree-/+ buffers/cache:が低くなると、Linuxシステムのメモリは本当に少なくなります。

数字の意味の詳細については、質問などを参照してください。

procps 3.3.10の変更

の出力がfreeprocps 3.3.10(2014年にリリース)で変更されたことに注意してください。報告される列は、「合計」、「使用済み」、「無料」、「共有」、「バフ/キャッシュ」、「使用可能」になり、主にLinuxカーネルのスラブをより適切に説明するために、一部の値の意味が変更されましたキャッシュ。

動機についてはDebianバグレポート#565518を参照してください。14.04 から16.04への出力の変更はfreeどういう意味ですか?詳細については。


Linuxがキャッシュしている可能性のあるものを拡張できますか?アクセスされたファイルか、ネットワークのものでしょうか?
CMCDragonkai

@CMCDragonkai:答serverfault.com/questions/23433/...「キャッシュ」と「バッファ」constitues何を詳細にアドレスを。
sleske

5
私は正しい文は「合計=は+自由使用」とは思わない、私のマシン上で次の出力を参照してください$ free -h total used free shared buff/cache available Mem: 3.4G 585M 152M 11M 2.6G 2.5G Swap: 4.0G 84M 3.9G
セバスチャン

@セバスチャン:ああ、面白い。無料の出力が変更されたようです(3.3.10)。これに言及するために回答を編集しました。この変更に興味がある場合は、新しい質問をすることを検討してください:-)。
sleske

3
total = used + free + buff/cache
danger89


2

バッファ/キャッシュ行は、プログラムが使用するメモリの量(これらの列の最初)を示し、プログラムが使用するために無料です(2番目の列)。これはかなり難解な数字であり、実際に実際に多くを見るものではありません。


そして、最初の行(MEMライン)は何を意味しない
Muahmmad Zeeshan

8
システムに12GBのRAMがインストールされており、そのうち11.5GBが使用され、0.5GB程度が現在使用されていないこと。約82MBの使用済みメモリがバッファ(ネットワーク接続など)に使用され、約6.5GBがデータのコピーをディスクに保存するために使用されているため、データが再度必要になった場合にデータを再読み込みする必要がありません。
ウォンブル

3
@Muhammad:「82MBは無料です。」-いいえ、57MiBは無料です(ただし、それは実際には問題ではありません。私の答えを参照してください)。「今ではすべて、システムが限界に達したことを意味しています」-いいえ、まったくありません。システムにはキャッシングに6.9GiBが使用されており、アプリケーションにすぐに使用できるため、十分なスペースがあります。また、スワップの使用率は非常に低くなります(匿名で約50MiB)。メモリが不足し始めると、スワップの使用量が増加します。現在、使用しているRAMの半分をほとんど使用していません。
sleske 2009年

4
ある時点で新しい質問をすることを検討しましたか?
ウォンブル

3
私は同意しません、バッファ/キャッシュラインはシステムの実際の空きメモリであるため、システムにプログラム用のスペースがあるかどうかを知りたい場合に最も関連があります。
15
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.