-
что почитать, что бы понять структуру памяти Linux?
-
подскажите, что использует ОЗУ в конкретном случае. Система либо ловит OOM’ы (если включить overcommit), либо приложение «не работает» (подробности надо уточнять). Приложение — набор скриптов (python + что-то на go) для выкачивания видеоархива на подключенный по cifs ресурс. VM — моя, приложение запускает сторонний пользователь.
Итак, у нас тут есть 11055 Мб available и 4619 Мб free. Как понять, где закопаны 11055-4619=6436 Мб ОЗУ?
# free -m
total used free shared buff/cache available
Mem: 11990 934 4619 1 2024 11055
Swap: 7405 88 7316
Вот meminfo:
# LC_NUMERIC=ru_RU.UTF_8 cat /proc/meminfo | egrep -v ':\s+0 kB' | awk '{for(i=1;i<=NF;i++) if ($i ~ /^[0-9]+$/) $i=sprintf("%'\''d",$i/1024); print}' | sed 's/ kB$/ MB/' | column -t
MemTotal: 11 990 MB
MemFree: 4 626 MB
MemAvailable: 11 068 MB
Buffers: 53 MB
Cached: 1 630 MB
SwapCached: 0 MB
Active: 3 111 MB
Inactive: 3 483 MB
Active(anon): 158 MB
Inactive(anon): 27 MB
Active(file): 2 952 MB
Inactive(file): 3 456 MB
Unevictable: 24 MB
Mlocked: 24 MB
SwapTotal: 7 405 MB
SwapFree: 7 316 MB
Dirty: 0 MB
AnonPages: 201 MB
Mapped: 64 MB
Shmem: 1 MB
KReclaimable: 346 MB
Slab: 456 MB
SReclaimable: 346 MB
SUnreclaim: 110 MB
KernelStack: 8 MB
PageTables: 5 MB
CommitLimit: 19 395 MB
Committed_AS: 1 340 MB
VmallocTotal: 33 554 431 MB
VmallocUsed: 51 MB
Percpu: 80 MB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2 MB
DirectMap4k: 251 MB
DirectMap2M: 12 036 MB
Вот RSS:
# ps -eo rss,exe --sort -rss | egrep -v '^\s+0' | awk '{ sum += $1 } END { print sum/1024 " MB" }'
479.848 MB
Вот VSZ:
# ps -eo vsz,exe --sort -vsz | egrep -v '^\s+0' | awk '{ sum += $1 } END { print sum/1024 " MB" }'
3336.46 MB
PS: команды выполнялись с интервалом до 2 минут, поэтому цифры могут чуть-чуть различаться.
Что ещё показать/посмотреть?