web-dev-qa-db-ja.com

freeの出力におけるbuffers / cache行の意味

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

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

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

172

値の意味

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

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

total = used + free

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

2行目は、調整された最初の行の値を示します。 usedminusの元の値の合計buffers+cachedfreeplusの元の値の合計buffers+cached、したがってそのタイトル。これらの新しい値は多くの場合、最初の行の値よりも意味があります。

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

バックグラウンド

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

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

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

Procps 3.3.10の変更

freeの出力は、procps 3.3.10(2014年にリリース)で変更されたことに注意してください。レポートされる列は "total"、 "used"、 "free"、 "shared"、 "buff/cache"、 "available"、およびLinuxカーネルのスラブキャッシュをより適切に説明するために、一部の値の意味が変更されました。

動機については Debian Bug report#565518 を、詳細については free出力の14.04から16.04への変更の意味を教えてください を参照してください。

233
sleske

さらに簡単で段階的な説明が必要な場合は、 http://thoughtsbyclayg.blogspot.com/2008/09/display-free-memory-on-linux-ubuntu.html を確認してください。 、彼の説明は私を大いに助けました。

7
volni

Buffers/cache行は、プログラムが使用するメモリ量(最初の列)を示し、プログラムが使用できるメモリ(2列目)を示しています。これはかなり難解な数字であり、実際に実際に確認するものではありません。

2
womble