Память, используемая неизвестными процессами на 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% точную, но я думаю, достаточно хорош для вашей "проблемы".

Есть много других способов на самом деле обнаружить проблему, но я предлагаю сначала проверить, действительно ли она используется чем-то, а не просто буферизована, что совершенно нормально.

Другие вопросы по тегам