Ibm mq mq慢速持久消息读取

Ibm mq mq慢速持久消息读取,ibm-mq,Ibm Mq,我正试图找出一个问题,即客户无法以应有的速度阅读邮件。持久消息被写入队列。有时,GET速率比PUT速率慢,我们会看到消息正在备份 使用tcpdump,我可以看到以下内容: MQGET: Convert, Fail_If_Quiescing, Accept_Truncated_Msg, Syncpoint, Wait Message is sent Notification MQCMIT MQCMIT_REPLY 在分析转储时,有时我看到MQCMIT和MQCMIT_应答之间的增量在0.001秒的

我正试图找出一个问题,即客户无法以应有的速度阅读邮件。持久消息被写入队列。有时,GET速率比PUT速率慢,我们会看到消息正在备份

使用tcpdump,我可以看到以下内容:

MQGET: Convert, Fail_If_Quiescing, Accept_Truncated_Msg, Syncpoint, Wait
Message is sent
Notification
MQCMIT
MQCMIT_REPLY
在分析转储时,有时我看到MQCMIT和MQCMIT_应答之间的增量在0.001秒的时间范围内,我也看到它在0.1秒的时间范围内。似乎0.1秒的延迟正在减慢消息传输速度。我可以做些什么来减少MQCMIT和MQCMIT_回复之间的增量吗?在发送MQCMIT之前,客户端是否应该读取多条消息


这是AIX 7.1上的MQ 8.0.0.3。

在接收端增加消息吞吐量的最直接的方法是批处理MQGET操作。也就是说,不要为每个MQGET发出MQCMIT,而是在多次MQGET操作之后发出。MQCMIT是持久性消息的最昂贵的操作,因为它涉及在队列管理器上强制日志写入,因此会导致磁盘I/O延迟。实验批量大小——我经常使用100,但有些应用程序甚至可以更大。太多未完成的MQGET操作可能会有问题,因为它们会使事务运行更长的时间,并阻止日志切换

当然,您可以检查您的系统整体调优是否令人满意。您的客户端和队列管理器之间的延迟可能太长,或者您的日志可能驻留在速度较慢的设备上,或者日志可能与队列文件或其他繁忙的文件系统共享该设备