MQ进程amqrmppa不断增加
MQ process amqrmppa keep increasing
美好的一天。
我遇到一个问题,MQ 进程 amqrmppa 不断增加,目前有 635 个进程存在。前 2 天它只有 2++ 个进程,但一直在缓慢增加直到当前值。
MQ 版本 = 8.0
操作系统 = AIX 7
此进程预计会增加,直到我们的 maxuproc 限制为 1024。
当我运行命令时,
echo "dis chs(*)" | runmqsc MYMQ | grep channel | wc -l
出现的输出是268。
这是否意味着 amqrmppa 使用的实际进程是 268?
amqrmppa
进程是 MQ 的通道池进程,默认情况下将使用线程和新进程实例进行扩展。当它像这样增加时,有两种可能。
- 内存泄漏。这个问题没有提到完整的版本号。当包含修复包级别时,它将是点分四边形格式,例如
8.0.0.1
,其中 8.0
是主要版本,0.1
是支持流和修复包。当修复包已知时,可以通过 APARS 查看它是否是已知问题。
- 应用程序错误。当应用程序不正确地终止客户端连接时,它会留下一个孤立的通道实例。这些最终会超时,但是池化过程释放线程的速度很慢,因为重用一个线程比从头开始重建整个过程要快。因此,进程数通常反映了最近启动通道的高水位线。
通常糟糕的编程或外部因素(例如防火墙超时)比 MQ 代码错误更可能是根本原因,但是每个 Fix Pack 中的 APARS 数量证明这些确实会发生。您可能想要调整 MAXCHAN
设置,以便没有一个应用程序可以启动超过合理数量的并发通道实例。您可能还想安装 BlockIP2
或 LogIP
(来自 Mr. MQ)并记录连接尝试。
更多注意事项:
- 通常,进程数少于,因为将通道分派给线程。不过这是可调的,本地 QMgr 可能会将通道设置为
PROCESS
而不是 THREAD
。此外,如果通道由 inetd
启动,则结果是每个进程一个通道。 (在现代 QMgr 中不要这样做!)
- 你为什么运行
maxuproc=1024
?根据 MQ v8.0 的信息中心,on AIX this value should be 64000。如果未执行推荐的内核调整,明显的进程泄漏是您可能会看到的最良性错误之一。 运行 mqconfig
程序并遵循它给出的建议。 (我相信 mqconfig
在 AIX 上运行,您还需要为它提供可执行文件的完整路径名。)
美好的一天。
我遇到一个问题,MQ 进程 amqrmppa 不断增加,目前有 635 个进程存在。前 2 天它只有 2++ 个进程,但一直在缓慢增加直到当前值。
MQ 版本 = 8.0
操作系统 = AIX 7
此进程预计会增加,直到我们的 maxuproc 限制为 1024。
当我运行命令时,
echo "dis chs(*)" | runmqsc MYMQ | grep channel | wc -l
出现的输出是268。
这是否意味着 amqrmppa 使用的实际进程是 268?
amqrmppa
进程是 MQ 的通道池进程,默认情况下将使用线程和新进程实例进行扩展。当它像这样增加时,有两种可能。
- 内存泄漏。这个问题没有提到完整的版本号。当包含修复包级别时,它将是点分四边形格式,例如
8.0.0.1
,其中8.0
是主要版本,0.1
是支持流和修复包。当修复包已知时,可以通过 APARS 查看它是否是已知问题。 - 应用程序错误。当应用程序不正确地终止客户端连接时,它会留下一个孤立的通道实例。这些最终会超时,但是池化过程释放线程的速度很慢,因为重用一个线程比从头开始重建整个过程要快。因此,进程数通常反映了最近启动通道的高水位线。
通常糟糕的编程或外部因素(例如防火墙超时)比 MQ 代码错误更可能是根本原因,但是每个 Fix Pack 中的 APARS 数量证明这些确实会发生。您可能想要调整 MAXCHAN
设置,以便没有一个应用程序可以启动超过合理数量的并发通道实例。您可能还想安装 BlockIP2
或 LogIP
(来自 Mr. MQ)并记录连接尝试。
更多注意事项:
- 通常,进程数少于,因为将通道分派给线程。不过这是可调的,本地 QMgr 可能会将通道设置为
PROCESS
而不是THREAD
。此外,如果通道由inetd
启动,则结果是每个进程一个通道。 (在现代 QMgr 中不要这样做!) - 你为什么运行
maxuproc=1024
?根据 MQ v8.0 的信息中心,on AIX this value should be 64000。如果未执行推荐的内核调整,明显的进程泄漏是您可能会看到的最良性错误之一。 运行mqconfig
程序并遵循它给出的建议。 (我相信mqconfig
在 AIX 上运行,您还需要为它提供可执行文件的完整路径名。)