CPU 占用 50%,但 IIS/ASP.net 请求仍在排队

CPU 占用 50%,但 IIS/ASP.net 请求仍在排队

我们有一个 (VMWare) VM,在负载测试时,它似乎在 120 个用户时开始排队请求。

CPU 的使用率似乎没有超过 70%,所以我很难理解为什么它无法处理请求?

CPU 时间以红色显示左下方 CPU 图表

答案1

CPU 并不是处理请求的唯一瓶颈。一切都取决于您的应用程序在做什么。如果您正在执行大量 IO 密集型工作,那么这可能是比 CPU 更重要的因素。

ASP.net 的线程池中线程数量有限,因此如果所有线程都处于繁忙状态,它们就会开始排队。检查这件有关请求排队的一些提示。

您是否在每个请求中执行大量 SQL 插入/更新?使用 Glimpse 对这些操作进行计时。如果操作过多,它们会阻塞线程/请求以等待响应。

您是否调用了某些第三方 API?这些 API 会阻塞线程/请求,并且允许同时连接的数量有限制。

该应用程序为每个用户做什么?您是否检索了 1000 多条记录?

检查一下MS Connect 支持文章,如果您还没有调整过这些 IIS 配置选项的话,有很多 IIS 配置选项可能会对您有所帮助。

再次强调,这是在不知道您的应用程序做什么和如何做的情况下进行的。

相关内容