Память, используемая неизвестными процессами на OEL6 - без кеша и slabcache
Я искал "Где моя память Linux?" вопросы, но я не мог найти подобный сценарий для моего вида утечки:
- OEL 6.3 x86_64 Linux с 6 ГБ оперативной памяти
- без каких-либо моих основных компонентов (2 tomcat, MySQL, веб-контейнер на основе Grizzly) около 2,3 ГБ памяти израсходовано какой-то неизвестной частью системы
- вряд ли МБ filecache
- вряд ли мегабайтный кеш
- даже после перезагрузки
- система является виртуальным хостом на VMWare
Вот верхний вывод, упорядоченный RES desc:
top - 15:57:26 up 3:26, 1 user, load average: 0.27, 0.26, 0.76
Tasks: 192 total, 1 running, 191 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 5993276k total, 2257256k used, 3736020k free, 23772k buffers
Swap: 4063224k total, 89644k used, 3973580k free, 98960k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3236 root 20 0 123m 8384 1520 S 0.0 0.1 0:01.05 Xorg
3373 gdm 20 0 369m 3840 2464 S 0.0 0.1 0:00.69 gdm-simple-gree
3358 gdm 20 0 337m 2916 1940 S 0.0 0.0 0:05.30 gnome-settings-
16380 root 20 0 157m 2708 2192 S 0.0 0.0 0:00.01 su
20174 root 20 0 157m 2704 2192 S 0.0 0.0 0:00.01 su
бесплатно -m:
-/+ buffers/cache: 2083 3769
/ proc / meminfo для плиты:
MemTotal: 5993276 kB
MemFree: 3722140 kB
Slab: 50724 kB
Любой намек на выяснение того, что ест, что 2 концерта здесь приветствуется!
2 ответа
Одна вещь, которую многие люди упускают, особенно при запуске Tomcat и других Java-приложений на VMware, - это влияние этого программного обеспечения на распределение памяти VMware.
Итак, сначала:
- У вас есть доступ к vSphere или vCenter Management для хоста / кластера?
- У вас установлены инструменты VMware?
Я часто вижу необъяснимые проблемы с памятью внутри виртуальных машин Linux при следующих условиях:
- Чрезвычайная чрезмерная загрузка ОЗУ на уровне хоста.
- Большой объем памяти на хосте / кластере.
- Если есть ограничения ОЗУ на ВМ. (например, 6 ГБ выделено для виртуальной машины, но с ограничением хоста 4 ГБ)
- Плохой дизайн пула ресурсов / акций.
По сути, вам нужно искать конфликты на уровне хоста / кластера.
Супер-ужасный пример этого:
Образование vSphere - Каковы недостатки настройки виртуальных машин с * слишком * большим объемом оперативной памяти?
Пытаться
grep VmPea /proc/*/status|sort -n -k+2 |tail
как написано полиномом по ссылке ниже
на сервере почти нет свободной памяти
Вы читали Serverfault Canonical вопрос об использовании памяти в Linux, верно?
Кроме того, вы можете добавить темы в top
через нажатие H (по крайней мере, для меня на Ubuntu 12.04)
Для дополнительной отладки:
ищи ps_mem.py
один скрипт памяти Python
При этом вы можете увидеть, какой процесс на самом деле использует оперативную память (частную / общую), не на 100% точную, но я думаю, достаточно хорош для вашей "проблемы".
Есть много других способов на самом деле обнаружить проблему, но я предлагаю сначала проверить, действительно ли она используется чем-то, а не просто буферизована, что совершенно нормально.