Linuxメモリ:/ proc / meminfoとfreeのバッファ+キャッシュの違いは何ですか?

Linuxメモリ:/ proc / meminfoとfreeのバッファ+キャッシュの違いは何ですか?

freeホストコンピュータがあり、コマンドの出力を.txtファイルの内容と比較しても、メモリ使用率は不明です/proc/meminfo。バッファ+キャッシュが2つのソース間で一致しないようです。

[kbrandt@ny-chsearch01]~% free -k
              total        used        free      shared  buff/cache   available
Mem:       24506972    18074768      572836         124     5859368     5996392
Swap:       4194300      130044     4064256
[kbrandt@ny-chsearch01]~% cat /proc/meminfo 
MemTotal:       24506972 kB
MemFree:          575808 kB
MemAvailable:    5996136 kB
Buffers:            3140 kB
Cached:           380032 kB
SwapCached:        61344 kB
Active:         16305144 kB
Inactive:        1860568 kB
Active(anon):   15990712 kB
Inactive(anon):  1791952 kB
Active(file):     314432 kB
Inactive(file):    68616 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       4194300 kB
SwapFree:        4064256 kB
Dirty:                24 kB
Writeback:             0 kB
AnonPages:      17721372 kB
Mapped:            91608 kB
Shmem:               124 kB
Slab:            5472968 kB
SReclaimable:    5407820 kB
SUnreclaim:        65148 kB
KernelStack:        5568 kB
PageTables:        39784 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    16447784 kB
Committed_AS:   18211456 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      231460 kB
VmallocChunk:   34359310332 kB
HardwareCorrupted:     0 kB
AnonHugePages:  17414144 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       91968 kB
DirectMap2M:    25073664 kB

man free説明する:

バッファとキャッシュのバッファ/キャッシュの合計

しかし、上記の出力からわかるように「はい」とfree答えますbuff/cacheが、5859368出力と出力は少なくなります。BuffersCached/proc/meminfo

ホストシステムにはCentOS Linux release 7.4.1708 (Core)カーネルが付属しています3.10.0-693.21.1.el7.x86_64。ホストシステムでは、メモリの主な消費者はelasticsearch(java)です。

誰でもこの違いを説明できますか?

ベストアンサー1

マニュアルページを詳しく見ると、メモリは「Slab」セクションですman free

cache  Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo)

タブレットについて詳しくは、次をご覧ください。SlabInfo管理ページ:

要約:cat /proc/slabinfo

説明:Linuxカーネルでよく使用されるオブジェクト(バッファヘッダー、インデックスノード、ディレクトリエントリなど)には独自のキャッシュがあります。 /proc/slabinfo ファイルは、これらのキャッシュに関する統計を提供します。

だから一般的にキャッシュなので、Slabを埋めても大丈夫です。懸念される部分の1つは、回復不能な大きな金額かもしれません(SUnreclaim)。これは次のようになります/proc/meminfo

[root@ny-chsearch01 ~]# grep -i S.*recl /proc/meminfo 
SReclaimable:    5320344 kB
SUnreclaim:        64756 kB

使用可能なメモリを推定するには、最新の3.14カーネルが以前のTotal-Buffer-Cacheよりも正確な推定値を持ちますMemAvailable/proc/meminfoディストリビューションで移植可能な使用可能なメモリ量を取得するには?詳細については。

おすすめ記事