MQ进程amqrmppa不断增加

时间:2017-03-15 18:57:44

标签: ibm-mq

美好的一天。

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

MQ版本= 8.0

操作系统= AIX 7

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

当我运行命令时,

echo "dis chs(*)" | runmqsc MYMQ | grep channel | wc -l

出现的输出是268。

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

1 个答案:

答案 0 :(得分:6)

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

  1. 内存泄漏。问题没有提到完整的版本号。当包含修订包级别时,它将是点分四格式,例如8.0.0.1,其中8.0是主要版本,0.1是支持流和修订包。当修订包已知时,可以通过APARS查看它是否是已知问题。
  2. 应用程序错误。当应用程序不正确地终止客户端连接时,它会留下孤立的通道实例。这些最终超时但是池化过程发布线程的速度很慢,因为重用它比从头开始重建整个过程更快。因此,流程数量通常反映了最近启动渠道的高水位标记。
  3. 通常,糟糕的编程或外部因素(例如防火墙超时)比MQ代码错误更可能是根本原因,但每个Fix Pack中的APARS数量证明这些确实发生了。您可能希望调整MAXCHAN设置,以便没有一个应用程序可以旋转超过合理数量的并发通道实例。您可能还需要安装BlockIP2LogIP(来自Mr. MQ)并记录连接尝试次数。

    更多说明:

    • 通常,由于调度到线程的通道,进程数 less 比并发通道数少。这是可调的,本地QMgr可能将频道设置为PROCESS而不是THREAD。此外,如果频道由inetd启动,则结果是每个进程一个频道。 (在现代QMgr中执行此操作!)
    • 你为什么要使用maxuproc=1024?根据Infocenter for MQ v8.0,on AIX this value should be 64000。如果尚未执行推荐的内核调整,则明显的进程泄漏是您可能看到的最良性错误之一。运行mqconfig程序并按照其提供的建议操作。 (我相信mqconfig在AIX上运行,您还需要为它提供可执行文件的完整路径名。)