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内存泄漏并吃掉所有内存?的主要内容,如果未能解决你的问题,请参考以下文章