繁体   English   中英

ASP.NET性能不一致

[英]ASP.NET inconsistent performance

解析度

我决定尝试使用另一种负载测试工具Apache Bench,结果明显不同。 AB没有显示任何速度下降,并且save.ashx处理程序上的吞吐量现在每秒处理约1200个请求。 因此,经过几天的测试,负载测试工具出现了故障。 ASP.NET和IIS都很好。

原始问题

我正在构建一个ASP.NET网站,该网站旨在在很短的时间内从HTTP帖子中收集大量数据。 考虑一下Superbowl广告的表单注册。 没有实际的页面浏览涉及,所有这些都在单独的系统上处理。

为了使事情尽可能简单,我使用了通用处理程序(ashx)来捕获表单注册数据。 处理程序仅读取一些表单值,然后将数据写入静态ConcurrentQueue。 代码本质上是这样的:

public void ProcessRequest(HttpContext context)
{
    var formSubmission = new FormSubmission();
    var form = context.Request.Form;
    formSubmission.EmailAddress = form["EmailAddress"];
    formSubmission.PostalCode = form["PostalCode"];

    FormSubmissionQueue.Queue.Enqueue(formSubmission);
    context.Response.End();
}

当我尝试使用大量并发连接进行负载测试时会发生什么情况(500),前100-200个帖子被快速处理,然后所有内容暂停片刻,然后又进行另一个快速批处理,然后稍作暂停,依此类推。

我曾尝试对网站进行概要分析,但没有获得很大的成功,而且我开始认为速度下降与垃圾回收或线程化有关,但不知道确切的位置。 我在IIS Express(8.1)和Azure网站上看到相同的行为。

谁能建议一个可以看的地方或可以调整的设置? 我只是在限制IIS可以做什么? 在我的本地计算机(Surface Pro i5)上,我大约需要4-5秒(现在是1.5秒)来浏览所有500个帖子。

问题最终成为我正在使用的负载测试工具。 请参阅上面问题中的注释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM