Jeff Asked: 2009-09-26 10:00:44 +0800 CST2009-09-26 10:00:44 +0800 CST 2009-09-26 10:00:44 +0800 CST 什么是 ATQ 线程以及 IIS 6 如何耗尽它们? 772 今天在解决我们网站的问题时,Microsoft 工程师注意到我们已经用完了可用的 ATQ 线程。我不确定 ATQ 线程是什么,也不知道它如何影响 IIS 处理响应的方式。有人可以指出我正确的方向以了解更多信息。 windows 2 个回答 Voted Best Answer squillman 2009-09-26T10:12:03+08:002009-09-26T10:12:03+08:00 ATQ = 异步线程队列。概括地说,它是 IIS 的主线程池。这是这篇 Windows IT Pro 文章中的一个很好的介绍,这是一篇关于 IIS 线程的精彩演讲。 IIS、ASP 和线程 IIS 使用线程池(即代码执行实例)来处理传入请求并处理这些请求。这个线程池称为异步线程队列 (ATQ)。IIS 使用线程池,因为每次有新请求进入时重用现有线程比创建新线程要快。ATQ 最初处理所有传入请求。在初始处理之后,IIS 可能会将请求发送到另一个队列或将请求留在 ATQ 中。以下是请求类型列表和它们运行的队列: .htm、.jpg、.gif 和其他静态请求始终在 ATQ 中运行。 通用网关接口 (CGI) 请求会创建一个新进程来处理请求并在该进程中运行。但是,默认情况下,请求仍保留它启动的 ATQ 线程,以处理来自 CGI 进程的返回信息。 Internet Server API (ISAPI) 过滤器或扩展默认在 ATQ 中运行。但是,ISAPI 组件可以创建自己的线程池并使用该池来执行。 Active Server Pages (ASP) 请求从 ATQ 传递到 ASP 使用的线程池(IIS 5.0 中的 COM+ 线程池或 IIS 4.0 中的 MTX 池)。 OOP 请求(即,OOP 应用程序)进入 ASP 使用的线程池。ASP 线程对 OOP 应用程序进行适当的进程间调用。 Christopher_G_Lewis 2009-09-26T11:38:09+08:002009-09-26T11:38:09+08:00 squillman 给出了很好的回答。您可能正在查看的是一个长期运行的请求(下载或其他静态请求)无法释放的网站。 它不是 ASP,它将请求线程与 ATQ 分离(DevX 文章)。但可能是其他一些行为不端的 ISAPI 过滤器。 您还在 Web 服务器上运行什么?
ATQ = 异步线程队列。概括地说,它是 IIS 的主线程池。这是这篇 Windows IT Pro 文章中的一个很好的介绍,这是一篇关于 IIS 线程的精彩演讲。
squillman 给出了很好的回答。您可能正在查看的是一个长期运行的请求(下载或其他静态请求)无法释放的网站。
它不是 ASP,它将请求线程与 ATQ 分离(DevX 文章)。但可能是其他一些行为不端的 ISAPI 过滤器。
您还在 Web 服务器上运行什么?