【问题标题】:How to increase the number of processing HTTP requests?如何增加处理HTTP请求的数量?
【发布时间】:2016-08-11 21:10:26
【问题描述】:

我在 Azure 上发布了 ASP.NET Web API 应用程序(移动后端)。大多数请求都是轻量级的并且处理速度很快。但是每个客户都会提出很多请求,并且在每次与移动应用程序交互时都会快速完成。

问题是 Web 应用程序甚至无法处理少量(10/秒)的请求。 Http 队列增长但 CPU 没有。

我以 250 个请求/秒的速度运行负载测试,平均响应时间从约 200 毫秒增长到 5 秒。

也许我的代码有问题?还是硬件限制?我可以一次增加已处理请求的数量吗?

【问题讨论】:

    标签: c# asp.net azure asp.net-web-api


    【解决方案1】:

    首先,您使用什么实例非常重要(特别是如果您使用小型和超小型实例),您使用多少个实例 - 不要对服务器上的 1 核和 2Gb RAM 期望过高。

    使用缓存(WebApi.OutputCache.V2 减少服务器处理工作,Azure Redis 缓存作为快速缓存存储),数据库也可能成为瓶颈。

    如果在将更多实例添加到服务器和缓存后您会得到相同的结果 - 那么您应该查看您的代码并找到那里的瓶颈。

    这只是一般建议,问题中没有代码。

    【讨论】:

    • 对于即时类型,是否有每秒平均请求数?现在我们使用一个 S2 实例(2 个核心,3.5 GB 内存)
    • 关于每秒请求数 - 如果您使用 Visual Studio 在线负载测试 (.jmx),那么您将获得正确的结果,如果您尝试从本地计算机对服务器进行负载测试 - 那么时间可能不正确 - 您的互联网连接可能是瓶颈。
    • 尝试再添加一个实例并查看负载测试。但是从云端(如 Visual Studio Online Load Tesing)而不是在本地通过 Jmeter 测试您的服务器确实很重要。
    • 另外,如果您使用数据库 - 并且可能会使用 (MS SQL),则将数据库定价层设置为相应的 S2 定价层。否则数据库会降低服务器速度
    • 如果您还没有使用它,那么将 OutputCache 添加到项目strathweb.com/2012/05/output-caching-in-asp-net-web-api 是一个非常好的主意。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 2018-07-09
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    相关资源
    最近更新 更多