Есть ли у нас приложение с утечкой памяти?
Я не уверен, как интерпретировать использование памяти нашими серверами, на которых работает WebSphere MQ (WMQ). Главный вопрос: использует ли WMQ все больше и больше памяти (утечка памяти) или все нормально, и Linux использует нашу оперативную память для кэширования диска?
У нас есть следующий график кактусов.
Данные для этого опрашиваются из /proc/meminfo. Который в настоящее время показывает следующий вывод.
[user@server ~]$ cat /proc/meminfo
MemTotal: 32956188 kB
MemFree: 3963664 kB
Buffers: 1225024 kB
Cached: 15611124 kB
SwapCached: 34016 kB
Active: 23880484 kB
Inactive: 3279676 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 32956188 kB
LowFree: 3963664 kB
SwapTotal: 8388600 kB
SwapFree: 8354584 kB
Dirty: 1648 kB
Writeback: 0 kB
AnonPages: 10290180 kB
Mapped: 457704 kB
Slab: 1375028 kB
PageTables: 136452 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 24866692 kB
Committed_AS: 19962412 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 382196 kB
VmallocChunk: 34359356007 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
Hugepagesize: 2048 kB
Команда free -m покажет следующее.
[user@server ~]$ free -m
total used free shared buffers cached
Mem: 32183 28312 3871 0 1196 15245
-/+ buffers/cache: 11870 20313
Swap: 8191 33 8158
По данным веб-сайта "linuxatemyram dot com" только строка "-/+ buffers/cache: 11870 20313" из "free -m" имеет отношение.
На графике Cacti вы можете ясно видеть, что "Используемая память" увеличивается с начала "Недели 03". С другой стороны, "Cache" и "Buffers" кажутся довольно постоянными. Какое значение имеет "Использованная память" в этом случае? WMQ подтекает из памяти?
2 ответа
Да, что-то потребляет все больше и больше памяти. Нет, это не VFS (буферы и кеш). Невозможно сделать какие-либо дальнейшие выводы из предоставленных вами данных.
Вам действительно нужно посмотреть, какие процессы / программы используют какую память - это лучший показатель, чем просто просмотр RSS / VSZ, но он все еще может быть введен в заблуждение на страницах COW. Попробуйте получить серию снимков и посмотреть, соответствует ли изменение изменению в вашем графике кактусов.
У вас есть ~20 ГБ оперативной памяти, доступной для процессов в этой системе. Операционная система будет использовать свободную оперативную память для кэширования операций чтения файловой системы, чтобы ускорить последующее чтение тех же файлов. Вполне нормально видеть, что "используемая" оперативная память медленно увеличивается с течением времени, когда к файловой системе обращаются все больше и больше; Вы не увидите никаких проблем с производительностью в результате этого, и если процессу потребуется выделить эту оперативную память позже, ОС с радостью откажется от нее.
редактировать
Как указывает @symcbean, что-то медленно потребляет больше памяти. Если сервер отдан только этому одному приложению, то это первое место, которое нужно начать искать, но я рекомендую скрипт python для более четкого представления о том, что происходит.