Назад | Перейти на главную страницу

У нас есть приложение с утечкой памяти?

Я не уверен, как интерпретировать использование памяти нашими серверами, на которых работает 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». С другой стороны, «Кэш» и «Буферы» кажутся довольно постоянными. Какое значение имеет «Используемая память» в этом случае? У WMQ утечка памяти?

Да, что-то потребляет все больше и больше памяти. Нет, это не VFS (буферы и кеш). На основании предоставленных вами данных невозможно сделать никаких дальнейших выводов.

Вам действительно нужно посмотреть, какие процессы / программы используют какую память - это дает лучший индикатор чем просто просмотр RSS / VSZ, но страницы COW могут ввести его в заблуждение. Попробуйте сделать серию снимков и посмотрите, совпадает ли изменение с изменением на вашем графике кактусов.

У вас есть ~ 20 ГБ оперативной памяти, доступной процессам в этой системе. ОС будет использовать свободную оперативную память для кэширования операций чтения файловой системы, чтобы ускорить последующее чтение тех же файлов. Вполне нормально видеть, что "Используемая" RAM медленно увеличивается с течением времени по мере доступа к все большей и большей части файловой системы; вы не увидите никаких проблем с производительностью в результате этого, и если процессу потребуется выделить эту оперативную память позже, то ОС с радостью откажется от нее.

редактировать

Как указывает @symcbean, что-то медленно потребляет больше памяти. Если сервер передан только этому одному приложению, то это первое место, с которого нужно начать поиск, но я вторю этой рекомендацией скрипта python для получения более четкой картины того, что происходит.