26511


top を起動すると、２行目ぐらいに、メモリの使用状況として、次のような行が表示されます。

[code]

     KiB Mem:   1017844 total,   742208 used,   275636 free,    20612 buffers
    
[/code]

ここでいう、 `buffers` は何を表していますか？


CC BY-SA 3.0
2016-06-06T12:56:18.130
26508
2016-06-07T03:23:43.697
2016-06-07T03:23:43.697
5008
754
question
linux ubuntu
top 画面で表示される buffers とは？


表示形式からLinuxと想像して。

buffersとその下のcached
Memの数値はディスクキャッシュの使用量です。同じ領域がusedの値にも含まれますが、必要に応じて破棄されます。Windowsのタスクマネージャーでいうと「キャッシュ済み」の値に相当します。

ちなみにbuffersとcachedは、昔はそれぞれブロックデバイスレイヤーとファイルレイヤーのキャッシュだったそうですが、データ本体がcachedのほうに統一されたため、いまのbuffersはそれ以外のメタデータなどの量のようです。


CC BY-SA 3.0
2016-06-06T14:57:46.563
26511
2016-06-06T14:57:46.563
4010
26508
answer


参考までに、Ubuntu Linux 16.04(Linux kernel 4.4.0)の場合、top コマンドのバージョンは `procps-ng
version 3.3.10` で、当該部分の表示は以下の様になっています。

[code]

    KiB Mem :  2045332 total,   344444 free,   825764 used,   875124 buff/cache
    
[/code]

top コマンドは procps パッケージに含まれていますが、同パッケージに free コマンドがあります。

[code]

    $ free
                  total        used        free      shared  buff/cache   available
    Mem:        2045332      825608      344600       87680      875124     1093132
    
[/code]

free コマンドの出力の `buff/cache` カラムが top コマンドの `buff/cache`
に対応しています(ソースコード上では同じ計算式を利用しています)。

**free(1)**

[code]

    buffers
      Memory used by kernel buffers (Buffers in /proc/meminfo)
    cache
      Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo)
    buff/cache
      Sum of buffers and cache
    
[/code]

**proc(5)**

[code]

    /proc/meminfo
    
      Buffers %lu
        Relatively temporary storage for raw disk blocks that shouldn't get tremendously large (20MB or so).
      Cached %lu
        In-memory cache for files read from the disk (the page cache). Doesn't include SwapCached.
      Slab %lu
        In-kernel data structures cache.
    
[/code]


CC BY-SA 3.0
2016-06-06T17:18:59.543
26515
2016-06-06T17:18:59.543
26508
answer