WCF服务限制

问题描述:

我在我的WCF服务中使用了TCP绑定,并且在很多人可能连接到此服务的时候,我的问题是我是否需要在我的wcf服务中进行服务限制,如果是,那么什么是理想的方式来做到这一点?WCF服务限制

WCF开箱即用的节流是通过ServiceThrottlingBehavior。它不知道你正在使用的特定绑定(即tcp/http无关紧要)。

+0

但这是部分回答我的问题,仍然我想知道使用节流的理想情况 – Deepesh 2011-05-16 15:57:43

+0

我是说实话,你的问题的一部分有点困惑。节流的方法是通过ServiceThrottlingBehavior ...在这个意义上没有“理想”。如果您问如何发现STB的各种配置属性的理想值,那么再次没有“理想”。这一切都取决于您的服务的具体情况。通过在附近的生产硬件上进行负载测试并找到峰值,唯一可以发现数字有意义的方法就是通过负载测试。请记住,在达到最终节流值之前,您可能需要使用更多的开关和旋钮。 – 2011-05-16 16:09:16

我认为这要看具体情况:其中/服务如何托管,它是如何访问等

有你的问题没有很好的一个单一的答案。

您的服务可能需要在预期负载下进行测试,并了解它如何处理。有了这些信息,你应该能够开始制定一个节流计划,如果测试显示它是需要的话。

+0

特里说例如应用程序可以有1500个用户,我认为在特定的日子300-400人可能会使用应用程序在parralel – Deepesh 2011-05-16 15:37:30

+0

我不知道这是足够的信息来作出决定的基础上。这取决于服务的工作量等等。我不认为在没有实验和负载测试的情况下对您的问题有一个确定的答案是没有办法的。如果我是你,我会先不加限制,然后在你看到它需要时添加它。 – 2011-05-16 15:54:41

+0

是对的,这取决于。 WCF提供默认服务调节,如[此处所述](http://msdn.microsoft.com/zh-cn/library/ms735114(v = vs.90).aspx)以WCF默认值开始并构建负载测试集这创造了一个现实的负载。观察主机资源利用率(主要是CPU和内存使用性能计数器)。增加负载,直到您始终使用超过80%的任何资源。这将接近真实世界的最大负载。接下来,调整默认值以查看是否可以在相同的最大负载或更低资源消耗下获得更多吞吐量。冲洗和重复... – 2011-05-16 16:05:27