我们有一个围绕 .NET 4.8 构建的应用程序。生产中的应用程序有 4 个服务器,并且大量使用 http 调用来获取数据。出站 http 调用是通过 httpclient 类从应用程序完成的。然而,httpclient 调用似乎正在排队,我们可以看到 defaultconnectionlimit 属性已设置为 20。一些出站 http 调用也非常慢,有些有时需要超过 10-20 秒。应用程序非常慢高峰负载时段,CPU、内存等服务器参数均低于20%。
增加以下提到的财产的价值对此有影响吗?如果是,理想的值是多少,以便我们可以进行相应配置并以最佳方式利用服务器中的资源。
仅供参考:在高峰负载时段,应用程序在 1 小时内从应用程序发出至少 100k 出站 http 调用。
ServicePointManager.DefaultConnectionLimit = 20; // 我们正在尝试确定这是否是问题的根本原因
我必须承认,我不太了解该地区,但我认为这很可能会给您带来问题,因为您在高峰时段有相当多的出站请求。
尝试逐渐增加它,例如 50 然后 100 作为您的下一步,并监控您的指标以查看更改的影响。 不要忘记,您还需要监控您的网络基础设施,以确保它能够应对增长。 您也不想让它超载。
问题在于试图找到正确的平衡点和延迟,以及应用程序和基础设施的限制。