小编Niv*_*Niv的帖子

使用NServiceBus处理消息时,MSMQ消耗大量内存

我有两个使用NserviceBus的Windows服务.一个将消息写入队列,另一个从中读取消息并进行一些处理.所有队列都是事务性的,NserviceBus端点配置如下.

.IsTransactional(true)
.IsolationLevel(IsolationLevel.ReadCommitted)
.MsmqTransport()
.RunTimeoutManager()
.UseInMemoryTimeoutPersister()
.MsmqSubscriptionStorage()
.DisableRavenInstall()
.JsonSerializer()
Run Code Online (Sandbox Code Playgroud)

问题是当大量消息(170,000+)排队时,MSMQ服务(mqsvc.exe)会占用相当多的内存(1.5 - 2.0 GB)并且内存不会被释放至少5 - 6小时.平均邮件大小约为5 - 10 KB.似乎排队的消息越多,它使用的内存越多.基于NServiceBus的Windows服务内存消耗在完全可接受的限制范围内(50 - 100 MB),无论处理多少消息都不会增加.

关于为什么MSMQ会使用这么多内存并且需要很长时间来发布它的任何想法?谢谢堆.

msmq nservicebus3

4
推荐指数
1
解决办法
2494
查看次数

标签 统计

msmq ×1

nservicebus3 ×1