WCF服务在高负载下可能会变慢

KB2538826 解释了WCF服务在突发的请求下会发生的问题:当您的 WCF 服务接收请求的突发时,默认.Net I/O 完成端口 (IOCP) 线程池可能不扩大需尽快和你 WCF 的响应时间会随之增加。这篇文章《WCF scales up slowly with bursts of work》解释了到底发生了什么。

解决方案是通过另一个线程池执行WCF服务,实施这一解决方案可能会产生少量的开销。 每个WCF服务的性能测试结果会有所不同。


77a071c42cf4522b38f7a62f4f5206fc6d15c9c9

注意:应用此解决方案,当使用WCF侦听器不会阻止传入的线程在等待WCF服务的代码来完成。

如果你按照上面的表在这篇文章中,无法应用的解决方案,使用在MSDN的文章一个专用线程池的例子:
Synchronization Contexts in WCF Juval Lowy将WCF中的同步环境 http://msdn.microsoft.com/zh-cn/magazine/cc163321.aspx

切换同步HTTP处理程序使用异步HTTP处理程序的步骤:

1.WCF调节阈值应高到足以处理预期的突发量在可接受的响应时间。

  1. 如果你使用一个.NET CLR默认的线程池,工作人员或IOCP您的WCF服务,你必须确保最低限度的一个数字,你预计并发执行的线程数(价值开始创建线程的限制)。
  2. 执行下面的代码在您的服务将执行你的WCF服务的。NET CLR工作线程池。

本文来自云栖社区合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值