请教个问题,WCF在使用MSMQ的时候,每次WCF程序处理MSMQ中的数据量,每秒只有几百条。 以下是测试数据
处理消息数: 180000
开始时间: [2013-11-01 15:35:27] Start To Save Log To DB.
结束时间: [2013-11-01 15:51:12] Finish To Save Log To DB.
耗时: 00:15:45
基本上算下来也就每秒190多条,以前好的时候可以达到200多条,其中程序花费了些时间,如果把程序处理的代码注释掉的话,最好也只能到280条左右。
MSMQ在处理消息的效率跟网络传输的速度、读写硬盘的速度有关, 根据自己测试发现,客户端的消息传送到服务端的效率相对来说很快,时间90%以上都耗费在MSMQ向WCF输出数据上了。
想问问,有木有什么办法能够提升MSMQ向WCF服务的传出效率啊!~~急啊~!~~
相关工具: vs2010sp1 sqlserver2008r2 iis7
附机器部分信息:
OS 名称: Microsoft Windows 7 旗舰版
OS 版本: 6.1.7601 Service Pack 1 Build 7601
OS 制造商: Microsoft Corporation
OS 配置: 独立工作站
OS 构件类型: Multiprocessor Free
注册的所有人: *************
注册的组织:
产品 ID: 00426-OEM-8992662-00400
初始安装日期: 2005/1/1, 2:46:59
系统启动时间: 2013/10/31, 14:03:53
系统制造商: Dell Inc.
系统型号: Vostro 260s
系统类型: x64-based PC
处理器: 安装了 1 个处理器。
[01]: Intel64 Family 6 Model 42 Stepping 7 GenuineIntel ~3101
Mhz
BIOS 版本: Dell Inc. A06, 2012/5/18
物理内存总量: 6,127 MB
可用的物理内存: 1,555 MB
虚拟内存: 最大值: 12,251 MB
虚拟内存: 可用: 7,715 MB
虚拟内存: 使用中: 4,536 MB
msmq是持久化了消息,所以自然会慢一点,因为它毕竟要读写磁盘,所以性能很大程度上和你的磁盘性能有关。
http://www.cnblogs.com/smark/archive/2013/06/13/3133995.html
有个奇葩的想法是利用内存盘来提高msmq的吞吐。