0

今天我在我们的网站上发现了一些非常奇怪的东西。我们遇到了性能问题。IIS 7.5 (Windows 2008) 上的 Asp.NET Mvc web 每隔 X 时间就会被冻结。它是一个普通的电子商务系统,它连接到同一基础结构上的 MSSQL 服务器。但是,当您进入产品的详细页面时,我们在页面加载后通过 AJAX 询问库存,我们有 2 个仓库,我们必须询问库存。

今天,另一个仓库出现了服务器问题,并且从我们的电子商务网站到该服务器的连接(外部和简单的连接,通过 1 个查询来询问库存)每次连接到该服务器时都超时。但正如我所说,这个外部服务器不涉及 ajax 调用中的查询。

奇怪的是,在建立与该外部服务器的连接时,所有用户(整个 IIS 池)都被冻结。连接超时后,所有请求都会得到处理,但直到那时。

正常吗?我认为所有请求都是在自己的“线程”中完成的。PD 它不是链接服务器或其他东西。它直接连接到那里和 1 个查询,仅此而已。

一些建议?

4

1 回答 1

1

鉴于架构的非常笼统的描述和提供的有限诊断信息,这可能发生的原因有很多。

但是,我想到了一件值得检查的事情。只有这么多的 IIS 工作线程和完成端口可用。如果所有(或非常多)工作线程最终都在等待失败的连接,则将没有(或很少)工作线程可用于处理其他请求。

如果您可以在开发或 QA 中重现该问题(例如故意错误配置连接),您可以尝试诊断 IIS 的状态。查看此指南:

http://www.orcsweb.com/blog/terri/troubleshoot-iis-application-hangs-unresponsiveness/

于 2013-10-03T20:34:09.773 回答