我们有一个相当大的MSMQ环境设置,今天它决定停止。
(一切都是vSphere 4.0 Update 1下的VM)
有8个Web服务器从网络上的客户端接收数据。这些机器都安装了MSMQ,只需将MSMQ消息发送到主MSMQ服务器。当前,邮件堆积在出站队列中。这些计算机是Windows 2008 Web Edition,具有2 Gig的RAM和2个vCPU。
我们有一个群集MSMQ服务器(Windows群集服务器),它从8个Web服务器获取消息。队列中的数据量没有限制。硬盘驱动器为50 Gig,有46 Gig的可用空间。这些计算机是Windows 2008 Enterprise Edition,具有8 Gig的RAM和4个vCPU。该群集曾经有2个vCPU,但是CPU负载达到了100%,所以我将Windows群集的两个节点都增加到4个vCPU。
有4个应用服务器从队列中读取消息并进行处理。
通常,这一切都可以很好地工作,但不是今天。
今天早晨,一切进展都很缓慢。8个Web服务器当前在出站队列中显示多达30万条消息。群集服务器当前在队列中显示超过一百万条消息(有些消息低至200k)。
如果我在8个Web服务器上查看perfmon,则表明我平均每秒发送2条消息。如果我查看集群上的perfmon,则表明每秒大约有7条消息进入集群。
每个正在读取的机器都不会收到太多消息。最快的服务每秒接收10-12条消息,最慢的服务显示0或1。
最近唯一的变化是我们将前端Web服务器的数量从4个更改为8个。我们大约在2周前完成了此操作,没有出现问题。在星期二,我们关闭了它们的电源,以查看其余4个如何处理负载。在星期三,我们重新打开了四台新机器。
群集上的磁盘显示非常低的IO并且没有排队。
为了安全起见,我已经将PowerPath更新为最新版本,但这没有任何帮助。
8个Web服务器位于一个vLAN上,群集服务器和应用程序服务器位于另一个vLAN上。vLAN之间没有防火墙。
在任何计算机上的应用程序或系统日志中,没有任何用处。