IBM MQ 8 .0.0.14 утечка памяти и съедает всю память? - PullRequest
0 голосов
/ 22 апреля 2020

Пожалуйста, помогите! Мы используем IBM MQ, это вывод dspmqver:

  Name:        WebSphere MQ
Version:     8.0.0.14
Level:       p800-014-200107.1
BuildType:   IKAP - (Production)
Platform:    WebSphere MQ for Linux (x86-64 platform)
Mode:        64-bit
O/S:         Linux 4.15.3-1-generic
InstName:    Installation1
InstDesc:
Primary:     Yes
InstPath:    /opt/mqm
DataPath:    /var/mqm
MaxCmdLevel: 802
LicenseType: Production

Примерно через 1 -2 недели нам нужно перезагрузить mq manager, потому что он съел всю нашу оперативную память. Вывод TOP:

top - 09:08:52 up 55 days, 22:13,  2 users,  load average: 1,02, 0,66, 0,43
Tasks: 164 total,   1 running, 101 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1,8 us,  1,0 sy,  0,0 ni, 96,3 id,  0,5 wa,  0,0 hi,  0,3 si,  0,0 st
KiB Mem : 12296712 total,   151156 free, 11192404 used,   953152 buff/cache
KiB Swap:  2095100 total,        0 free,  2095100 used.   173800 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 5946 mqm       20   0 5186568 1,619g 567820 S   1,0 13,8 267:47.39 amqzlaa0
19235 mqm       20   0 4663220 1,516g 394512 S   5,0 12,9 925:24.87 amqrmppa
 3180 mqm       20   0 5187452 1,400g 563312 S   1,0 11,9  37:46.55 amqzlaa0
20194 mqm       20   0 4644060 1,398g 393016 S   3,3 11,9 654:11.41 amqrmppa
19569 mqm       20   0 4644188 1,317g 397828 S   1,3 11,2 644:51.19 amqrmppa
24828 mqm       20   0 5186308 1,195g 562544 S   1,7 10,2  92:26.81 amqzlaa0
12922 mqm       20   0 5187712 1,160g 563500 S   1,0  9,9 300:29.25 amqzlaa0
  482 mqm       20   0 5187712 1,042g 552212 S   0,0  8,9 273:48.41 amqzlaa0
19367 mqm       20   0 5186308 773968 585808 S   0,7  6,3 143:51.83 amqzlaa0
19214 mqm       20   0 5187628 459176 454008 S   1,3  3,7 174:04.99 amqzlaa0
30683 mqm       20   0  634188 404700 380924 S   0,0  3,3   3:19.41 runmqchl
19204 mqm       20   0  547812 220656 219936 S   1,3  1,8  86:29.25 amqpcsea
11943 mq_expo+  20   0 1401016 203476 191800 S   0,0  1,7  17:18.51 mq_prometheus
19148 mqm       20   0 2511796 192916 192196 S   0,7  1,6 181:09.56 amqzmuc0
19135 mqm       20   0 1648540  86728  86500 S   0,0  0,7  29:16.12 amqzxma0
19176 mqm       20   0  873692  20104  19764 S   0,0  0,2   0:05.29 amqrrmfa

Как вы можете видеть, большинство случаев использования памяти - процесс amq *. Но почему ? Для решения этой проблемы мы установили последний патч - 14, но это не помогло. Может быть, у нас есть некоторые неправильные настройки, или что-то еще, я не знаю. Если возможно, поможет эта проблема.

Я думаю, что менеджер перезагрузки каждые 2 недели это неправильное решение, но что я могу сделать еще?

Ответы [ 2 ]

0 голосов
/ 26 апреля 2020
  • Вы должны иметь поток amqzlaa0 для каждого mqconnected приложения.
  • У вас должен быть поток amqrmppa для каждого активного канала.

Есть 3 канала, которые используют много памяти, так что, похоже, это не просто проблема приложения.

См. эту ссылку

0 голосов
/ 22 апреля 2020

Я хотел бы поспорить, что у вас есть одно или несколько приложений, которые продолжают работать и постоянно подключаются к администратору очередей, даже не отключаясь.

т.е.

  • Запуски приложений
  • подключиться к администратору очередей - 1-е
  • открыть очередь
  • получать или помещать сообщения
  • может или не может закрыть очередь
  • подключиться к очереди диспетчер - 2-й
  • открытая очередь
  • получение или отправка сообщений
  • может или не может закрыть очередь
  • подключение к администратору очередей - 3-й
  • открытая очередь
  • получение или размещение сообщений
  • может или не может закрыть очередь
  • et c.

Использовать свой MQ инструмент мониторинга для проверки состояния канала диспетчера очереди, чтобы найти мошенническое (плохое) приложение. Или вы можете использовать MQ Explorer или runmqs c, т. Е. 'DISPLAY CHSTATUS (*) CURSHCNV'.

Как только вы найдете мошенническое приложение, напомните программисту, что, если приложение подключается к чему-либо, оно должно отключиться от него. , И если приложение открывает что-то, оно должно закрыть его. Я готов поспорить, что они скажут: «Я думал, что это автоматически отключит (или закроет) это». Ваш ответ будет: «Нет, не исправьте / обновите свой код».

Если у вас нет инструмента мониторинга MQ, их доступно много. Вот список имеющихся в продаже MQ инструментов .

...