메모리를 소비하는 프로세스 찾기

메모리를 소비하는 프로세스 찾기

상자에는 96GB RAM이 있으며 스왑은 없습니다.

# free -m
             total       used       free     shared    buffers     cached
Mem:         96714      85762      10952          0         94       2185
-/+ buffers/cache:      83482      13232
Swap:            0          0          0

85GB 메모리를 사용하고 있는 것 같은데 최상위 명령어에서 sort by를 하면%MEM

메모리는 32GB만 사용하고 나머지는 어디로 가나요?

여기에 이미지 설명을 입력하세요.

어떤 아이디어가 있나요?

편집하다

# cat /proc/meminfo
MemTotal:         99036140     kB
MemFree:          10901516     kB
Buffers:          126816       kB
Cached:           2355968      kB
SwapCached:       0            kB
Active:           35103352     kB
Inactive:         2973732      kB
Active(anon):     34352040     kB
Inactive(anon):   1793248      kB
Active(file):     751312       kB
Inactive(file):   1180484      kB
Unevictable:      1892         kB
Mlocked:          0            kB
SwapTotal:        0            kB
SwapFree:         0            kB
Dirty:            8864         kB
Readahead:        0            kB
Writeback:        0            kB
AnonPages:        35596308     kB
Mapped:           693268       kB
Shmem:            549000       kB
Slab:             48846688     kB
SReclaimable:     48771520     kB
SUnreclaim:       75168        kB
KernelStack:      9864         kB
PageTables:       108668       kB
NFS_Unstable:     0            kB
Bounce:           0            kB
WritebackTmp:     0            kB
CommitLimit:      49518068     kB
Committed_AS:     41937368     kB
VmallocTotal:     34359738367  kB
VmallocUsed:      500436       kB
VmallocChunk:     34290219936  kB
HugePages_Total:  0
HugePages_Free:   0
HugePages_Rsvd:   0
HugePages_Surp:   0
Hugepagesize:     2048         kB
DirectMap4k:      7252         kB
DirectMap2M:      100620288    kB

답변1

총 메모리 = 사용 가능한 메모리 + 캐시/버퍼 + 활동 + 비활성

         = 10901516 + 126816 + 2355968 + 35103352 + 2973732
         = 51461384 KB
         = 49 GB 

누락된 메모리 = 96GB - 49GB = 47GB 누락된 메모리는 태블릿 메모리(48846688kB)와 거의 같습니다. 일부 커널 모듈에서 메모리가 누출되는 것으로 추측됩니다.

추가 조사를 위해 /proc/slabinfo 및 labtop 명령 출력을 인쇄하고, vmware에서 실행 중인 경우 vmware-toolbox-cmd stat bubble 및 vmware-toolbox-cmd stat memlimit의 출력도 인쇄하십시오.

편집하다

인터넷에서 검색해보니 48646536kB를 소비하는 dentry 커널 모듈이 있는 것 같습니다.https://serverfault.com/questions/561350/unusually-high-dentry-cache-usage이는 Libcurl과 함께 번들로 제공되는 NSS(Network Security Services) 라이브러리에서 문제가 발생함을 나타냅니다.

최소한 nss-softokn(nss-utils에 대한 필수 종속성이 있음)만 업그레이드하면 됩니다. 이점을 얻으려면 libcurl을 사용하는 프로세스에 대해 환경 변수 NSS_SDB_USE_CACHE를 설정해야 합니다. 이 환경 변수가 있으면 존재하지 않는 파일에 대한 비용이 많이 드는 검사를 건너뛸 수 있습니다. "

시도해 보고 알려주세요.

관련 정보