我有这个奇怪的问题。我在服务器上有3个WCF服务。经理服务是外部请求的主要入口点。另一项服务是应用程序的逻辑。第三项服务是数据库连接服务,这两项服务都涉及并且正在完成大部分工作(数据库都是这样)。服务请求在客户端在同一台服务器上进行服务时排队
当我运行请求管理器的负载测试和运行性能测试,我得到了90级不同的线程同时运行,第二个服务了约50和数据库连接只有约12
我觉得这是应用程序中的主要性能问题。当我分析这两种服务时,我发现他们确实在等待数据库服务的响应。
我试着直接对DB服务进行测试。我运行了80个线程,并在打开通道之后并在发送请求之前使用ManualEventHandler停止它们。那么当所有的准备工作完成时,我已经设置了处理程序,并在数据库连接服务中运行了大约25个线程
所以它能够处理多于12个线程。
有什么想法是怎么回事?
为什么请求排队?
一些额外的信息:
绑定是basicHttpBinding的,但我试着用同样的结果净管IPC。 我已经设置上下文模式和并发性为每次调用或每个会话倍数相同的结果。
此外,服务是自我托管。 这是体系结构的原因就是为了让多个其他服务或应用程序直接向这些服务发送请求。在这个特定的事件中,我按照描述测试它,在其他事件中,流程可能会有所不同。
您是否对'ConcurrencyMode'设置进行了任何设置?请参阅:http://msdn.microsoft.com/en-us/library/system.servicemodel.concurrencymode.aspx。它对服务间通话有影响。 –
为什么这个设计,如果你不介意我问?对我来说似乎是在寻求麻烦。 –
@thecoon为什么会这样麻烦?你能详细说明吗? – Mithir