提高.NET应用程序的可伸缩性

时间:2014-11-01 11:50:58

标签: c# .net wcf asp.net-web-api scalability

我有一个.net应用程序,它使用了多种技术和组件,即WCF,C#,Web API。应用程序可以很好地扩展到一定程度,但之后它会开始快速而严重地破坏。

快速示例:在250个用户连接到系统后,它崩溃了,无法处理任何其他连接/用户。

根据上述技术或IIS,我们可以提出一些建议来提高可扩展性的指示。

非常感谢这方面的任何帮助。

2 个答案:

答案 0 :(得分:0)

您可以开始配置您的系统,无需 PerfMon XPerf ,并检查崩溃的原因。它可能是RAM的使用。多个活动会话可能会导致内存不足。

也许CPU可能无法提供如此大量的同步请求,或者您只是没有网络带宽。

一旦找到崩溃原因,您就可以开始优化代码(例如减少内存占用,优化长时间功能等)。

答案 1 :(得分:0)

这里有两种方法,您可能需要同时查看两种方法。

首先是处理WebAPI和WCF上的请求所花费的时间。使用RedGate Performance Profiler或其他类似工具来确定每个请求花费最多时间。

然后看看

  • 重构代码
  • 尽可能使用缓存

接下来是查看你的硬件。例如,如果以Azure为例,选择更大的实例及更多实例,Azure将提供负载平衡。如果您不使用Azure,那么设置负载平衡可能会有点困难,但这是唯一的其他扩展方式。

首先使用性能工具检查代码,然后查看硬件是否不能更快。但是250个用户不应该是一个问题,因此我认为你的代码可以在性能方面得到提升。