IBM MQ 8 .0.0.0.14内存泄漏并吃掉所有内存?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IBM MQ 8 .0.0.0.14内存泄漏并吃掉所有内存?相关的知识,希望对你有一定的参考价值。

Pls help !"We use IBM MQ this is output 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管理器,因为它吃我们所有的RAM。顶部输出。

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,但它没有帮助。可能是我们有一些错误的配置,或其他一些事情,我不知道。Pls如果可以帮助这个问题。

我认为,重新启动管理器每2周其错误的解决方案,但我可以做什么呢?

答案

我愿意打赌,你有一个或多个应用程序保持运行,并不断连接到队列管理器而从未断开连接。

  • 应用程序启动
  • 连接到队列管理器 - 第一
  • 开队
  • 收发信息
  • 可能会或不会关闭队列
  • 连接到队列管理器 - 第二
  • 开队
  • 收发信息
  • 可能会或不会关闭队列
  • 连接到队列管理器 - 第三次
  • 开队
  • 收发信息
  • 可能会或不会关闭队列
  • 等。

使用你的MQ监控工具来查看队列管理器的通道状态,以找到流氓(坏)应用程序。 或者你可以使用MQ资源管理器或runmqsc即'DISPLAY CHSTATUS(*) CURSHCNV'。

一旦你找到了恶意程序,提醒程序员,如果一个程序连接到某个东西,那么它必须断开与它的连接。如果一个应用程序打开了某个东西,那么它必须关闭它。 我敢打赌,他们会说:"我以为它会自动断开(或关闭)它"。 你的回答会是:"不,它不会,它不会。"不,不会的,请修改更新你的代码。"

如果你没有MQ监控工具,有很多工具可以使用。 这里有一个商业化的列表。MQ工具.

另一答案
  • 你应该为每个mqconnected应用程序有一个amqzlaa0线程。
  • 你应该为每个活动的通道设置一个amqrmppa线程。

有3个通道使用了大量的内存,所以这看起来不只是一个应用程序的问题。

请看 这个 联系

以上是关于IBM MQ 8 .0.0.0.14内存泄漏并吃掉所有内存?的主要内容,如果未能解决你的问题,请参考以下文章

在 OpenCV 应用程序中,我如何识别内存泄漏的来源并修复它?

使用HeapAnalyzer分析内存泄漏

Informix 内存泄漏

IBM MQ术语简介

IBM WebSphere MQ安装集成

IBM WebSphere MQ安装集成