【发布时间】:2024-05-20 14:15:01
【问题描述】:
我正在对 Azure 中托管的应用程序执行负载测试。它是一个云服务,在内部负载均衡器后面有 3 个实例(基于哈希的负载均衡模式)。
当我执行负载测试时,即使请求/秒和对 IIS 的总当前请求非常低,它也会对请求进行排队。我不确定可能是什么问题。
有什么建议吗?
添加一些性能计数器的屏幕截图,这可能有助于您做出决定。
点击图片查看原图。
Edit-1:根据 Rohit Rajan 的请求,
云服务有 2 个实例(即 2 个虚拟机),每个实例都有 14 GB 的 RAM 和 8 个内核。 我正在执行从 100 开始的分步加载模式,每 5 分钟添加 100,150 个用户,直到 4-5 小时,直到负载达到 10,000 VU。
对外部系统的任何调用都是异步写入的。数据库调用是同步的。
【问题讨论】:
-
您的 azure VM 中有多少个内核。我看到 CPU 是 100%。负载测试是什么样的,你发送了多少并发请求?您能否在有关如何进行负载测试的问题中添加更多详细信息,您正在测试的负载是什么?您有多少个内核和内存用于 VM 等。你的应用程序是异步编写的吗
-
@hiren desai,你使用的是什么框架? ,我假设您正在使用会话并为并发请求重用会话 ID,ASP.NET 将对请求进行排队,因为它需要对每个请求的会话进行独占锁定。尝试更改 web-config 中的默认并发请求
-
@Webruster,不,我们没有使用会话。整个应用程序中只有 1 页使用了未在此测试中测试的会话。 “尝试更改 web-config 中的默认并发请求”你的意思是什么?
-
@HirenDesai 我的意思是说您不需要使用会话,但 asp.net 应用程序将在会话上运行,所以我正在解释这种行为,对于您的第二个问题,请参考以下@ 987654325@
标签: asp.net azure iis iis-7 performance-testing