繁体   English   中英

改善.NET应用程序的可伸缩性

[英]Improving scalability of .NET application

我有一个.net应用程序,它使用了多种技术和组件,例如WCF,C#,Web API。 应用程序可以很好地扩展到一定水平,但是此后它开始崩溃的速度非常快。

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

有人可以提出一些建议来总体上改善我在上述技术或IIS中需要遵循的可扩展性的指针。

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

您可以在不使用PerfMonXPerf的情况下开始分析系统,并检查崩溃的原因。 可能是RAM使用情况。 具有多个活动会话可能会导致内存不足。

同样,也许CPU无法满足如此大量的同时请求,或者您只是没有网络带宽。

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

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

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

然后看看

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

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

首先使用性能工具检查您的代码,然后再找硬件,如果它不能更快​​地运行。 但是250个用户应该不是一个太大的问题,因此我认为您的代码可以提高性能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM