Am o VM Xen care rulează Debian Linux cu o cantitate ciudat de mare de RAM folosită. Care ar putea fi vinovatul? Cred că am exclus suspecții obișnuiți de stocarea în cache a discului, utilizarea nucleului slab și balonarea memoriei.
liber -h
spectacole:
total folosit gratuit partajat buff/cache disponibil
Mem: 3.8Gi 3.6Gi 87Mi 0.0Ki 55Mi 33Mi
Schimbare: 1.0Gi 275Mi 748Mi
Așadar, aproape toți cei 3,8 GiB de RAM ale VM-ului sunt utilizați și doar o mică parte din această utilizare provine din memoria cache a discului kernelului.
smem -kt
nu atribuie memoria niciunui proces:
Schimb comandă utilizator PID USS PSS RSS
â®
--------------------------------------------- ------------------------------
52 1 214,4M 128,4M 133,2M 146,6M
smem -w -kt
spune că memoria aparține nucleului:
Zona folosită Cache Noncache
firmware/hardware 0 0 0
imaginea nucleului 0 0 0
memorie dinamică kernel 3.6G -20205568.0 3.6G
memorie spațiu utilizator 133,6M 77,6M 56,0M
memorie liberă 87,8M 87,8M 0
--------------------------------------------- --------
3.8G 146.1M 3.6G
(De asemenea, acel număr negativ pare ciudat.)
/proc/meminfo
spune, printre altele, că alocatorul de nucleu este responsabil doar pentru aproximativ 95 MiB din utilizarea RAM (și, de asemenea, nu oferă cu adevărat o indicație despre ce este folosind memoria RAM):
MemTotal: 3973392 kB
MemFree: 89144 kB
MemDisponibil: 41860 kB
Buffere: 5084 kB
Memorate în cache: 37972 kB
Schimbat în cache: 30000 kB
Activ: 52356 kB
Inactiv: 77832 kB
Activ(anon): 30756 kB
Inactiv(anon): 56396 kB
Activ(fișier): 21600 kB
Inactiv(fișier): 21436 kB
Inevitabil: 80 kB
Mlocked: 80 kB
Schimb total: 1048572 kB
Schimb gratuit: 775576 kB
Murdar: 104 kB
Scriere inversă: 0 kB
AnonPagini: 78660 kB
Cartografiat: 91004 kB
Shmem: 20 kB
KRecuperabil: 28348 kB
Placă: 96740 kB
SRecuperabil: 28348 kB
Sunreclaim: 68392 kB
KernelStack: 4288 kB
PageTabele: 6768 kB
NFS_Instabil: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 3035268 kB
Committed_AS: 1697316 kB
VmallocTotal: 34359738367 kB
VmallocUtilizat: 10028 kB
VmallocChunk: 0 kB
Percpu: 2352 kB
Hardware corupt: 0 kB
AnonHugePagini: 0 kB
ShmemHugePagini: 0 kB
ShmemPmdMapped: 0 kB
FileHugePagini: 0 kB
FilePmdMapped: 0 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Dimensiune mare a paginii: 2048 kB
Hugetlb: 0 kB
DirectMap4k: 428032 kB
DirectMap2M: 3799040 kB
DirectMap1G: 0 kB
Dacă înțeleg corect chestiile de memorie Xen, sistemul nu a pierdut multă memorie RAM din cauza balonării memoriei. /sys/devices/system/xen_memory/xen_memory0/info/current_kb
conţine 4079228
, care se potrivește suficient de bine cu memoria RAM raportată a sistemului. În același director, high_kb
și low_kb
conține 0
și 16384
, respectiv. Cred că asta înseamnă că driverul de balon Xen a revendicat doar 16 MiB de RAM.
Ce îmi lipsește? Ce altceva ar putea folosi atât de mult din memoria sistemului?