Linux 메모리: /proc/meminfo와 free 사이의 버퍼+캐시 차이점은 무엇입니까?

Linux 메모리: /proc/meminfo와 free 사이의 버퍼+캐시 차이점은 무엇입니까?

free호스트 컴퓨터가 있고 명령의 출력과 .txt 파일의 내용을 비교할 때 메모리 사용률이 확실하지 않습니다 /proc/meminfo. 버퍼 + 캐시가 두 소스 간에 일치하지 않는 것 같습니다.

[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을 채워도 괜찮습니다. 우려되는 부분 중 하나는 복구할 수 없는 큰 금액일 수 있습니다( 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배포판에서 이식 가능한 사용 가능한 메모리 양을 얻는 방법은 무엇입니까?자세한 내용은.

관련 정보