即使#threads,requests / sec很低,asp.net也会排队

时间:2011-11-28 20:43:03

标签: asp.net performance

我们有一个asp.net 4.0(集成模式)Web应用程序,它运行在iis 7.5 x64(w2k8)上,内存为12 GB,16个核心存在排队请求峰值问题。通常情况下,队列为零,但偶尔(可能在10分钟内分配15次)队列中的队列最多可达20-100个。

有时,此队列也会与更高数量的请求/秒相关联。但情况并非总是如此。 请求当前似乎总是在15-30之间。

当前逻辑和物理线程的nbr低至60-100

CPU负载平均为6%

请求/秒大约是150-200

连接活跃似乎正在缓慢增加。大概是7000。 建立的联系在130-140左右似乎很快。

由于我们在集成模式下运行.net 4.0,我认为我们应该能够处理多达5000个同时请求,或者至少1000个(http.sys内核)

http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx

即使剩下线程且请求/秒很低,也可能导致.net对请求进行排队?

1 个答案:

答案 0 :(得分:1)

只是一个猜测:垃圾收集暂停所有线程,因此垃圾收集之后的时间段可能看起来像请求峰值,因为IIS会在GC期间堆积请求。你能把尖峰与垃圾收集联系起来吗?如果您的应用程序受I / O限制,则可能无法将CPU负载驱动得非常高,因为线程将花费大部分时间来阻止它们。

如果真的不断增加,活动连接的明显泄漏是令人不安的。