【发布时间】:2013-04-15 23:37:10
【问题描述】:
Microsoft 告诫不要在其documentation 中更改此值,但文档本身似乎不正确——它指出默认值为 50 毫秒,而我们的测试显示它实际上是 10 毫秒。如果我们可以安全地将值提高到 50 毫秒,我们可能会很高兴,所以问题是——我们能做到这一点,并且不会失去 MSMQ 提供的事务保证吗?
附言。关于“我们为什么要搞乱这个值”的快速背景——我们有一个位于几个事务性 MSMQ 队列之上的应用程序。应用程序定期轮询其中一个队列,如果找到消息,它将开始处理。应用程序本身运行良好。但是我们看到的是,一旦我们从队列中读取,MSMQ 就会开始以每秒超过 50 次写入的速率写入磁盘,并且在每次读取完成后将继续这样做大约 10 秒应用程序(它似乎是事务日志刷新)。如果我们将 LogMgrFlushInterval 值增加到 50 毫秒,写入速率将下降到每秒 12 次左右。我们关心这一点的原因是每秒 50 次写入,乘以正在运行的应用程序实例的数量,由此产生的负载基本上压倒了我们 NAS 上的 CPU。我们正在研究其他选项(减少运行实例的数量,将应用程序轮询间隔增加到 10 秒以上,获得更大的 NAS),但与更改刷新间隔相比,这些都花费更多的时间/金钱。
【问题讨论】:
标签: msmq