【问题标题】:Improving scalability of .NET application提高 .NET 应用程序的可扩展性
【发布时间】:2014-12-28 14:54:16
【问题描述】:

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

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

有人可以就我在上述技术或 IIS 中需要遵循的一般术语提出改进可扩展性的建议。

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

【问题讨论】:

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


    【解决方案1】:

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

    也可能 CPU 无法处理如此大量的同时请求,或者您只是没有网络带宽。

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

    【讨论】:

      【解决方案2】:

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

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

      然后看看

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

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

      首先使用性能工具检查您的代码,然后查看硬件是否无法更快。但是 250 个用户应该不是什么大问题,因此我认为您的代码可以提高性能。

      【讨论】:

        猜你喜欢
        • 2011-06-12
        • 2011-11-28
        • 2016-03-18
        • 1970-01-01
        • 1970-01-01
        • 2011-05-29
        • 2021-04-12
        • 1970-01-01
        • 2015-05-25
        相关资源
        最近更新 更多