MQ进程amqrmppa不断增加

MrA*_*rAZ 3 ibm-mq

美好的一天.

我遇到的问题是MQ进程amqrmppa不断增加,目前存在635个进程.在过去的2天里,它只有2个++进程但是一直缓慢增加直到当前值.

MQ版本= 8.0

操作系统= AIX 7

预计这个过程会增加,直到我们的maxuproc限制为1024.

当我运行命令时,

echo "dis chs(*)" | runmqsc MYMQ | grep channel | wc -l
Run Code Online (Sandbox Code Playgroud)

出现的输出是268.

这是否意味着amqrmppa使用的实际过程是268?

T.R*_*Rob 6

amqrmppa过程是MQ的通道池过程,默认情况下将使用线程和新流程实例进行扩展.当它像这样增加时,有两种可能性.

  1. 内存泄漏.问题没有提到完整的版本号.当包含修订包级别时,它将是点分四格式,例如主要版本8.0.0.1在哪里8.0,0.1是支持流和修订包.当Fix Pack已知时,可以通过APARS查看它是否是已知问题.
  2. 应用程序错误.当应用程序不正确地终止客户端连接时,它会留下孤立的通道实例.这些最终超时但是池化过程发布线程的速度很慢,因为重用它比从头开始重建整个过程更快.因此,进程数量通常反映了最近开始频道的高水位线.

通常,糟糕的编程或外部因素(例如防火墙超时)比MQ代码错误更可能是根本原因,但每个Fix Pack中的APARS数量证明这些确实发生了.您可能希望调整MAXCHAN设置,以便没有一个应用程序可以旋转超过合理数量的并发通道实例.您可能还想安装BlockIP2LogIP(从MQ先生)和日志连接尝试.

还有一些说明:

  • 通常,由于向线程分派信道,进程数小于并发信道数.这是可调的,并且本地QMgr可能将通道设置为PROCESS而不是THREAD.此外,如果通道由inetd结果启动,则每个进程一个通道.(千万不能做,在一个现代QMGR!)
  • 你为什么一起跑步maxuproc=1024?根据Infocenter for MQ v8.0,在AIX上,此值应为64000.如果尚未执行推荐的内核调整,则明显的进程泄漏是您可能看到的最良性错误之一.运行mqconfig程序并按照它给出的建议.(我相信mqconfig在AIX上运行,你还需要为它提供可执行文件的完整路径名.)