устраняя сегодня проблему с нашими веб-сайтами, инженер Microsoft заметил, что у нас закончились доступные потоки ATQ. Я не уверен, что такое поток ATQ и как он влияет на то, как IIS обрабатывает ответы. Может ли кто-нибудь указать мне правильное направление, чтобы узнать больше.
большой ответ от Сквиллмана. Вероятно, вы смотрите на веб-сайт, на котором есть долго выполняющиеся запросы (либо загрузки, либо другие статические запросы), которые не освобождаются.
Это не ASP, который отделяет поток запроса от ATQ (Статья DevX). но может быть какой-то другой неправильно работающий фильтр ISAPI.
Что еще у вас запущено на веб-сервере?
ATQ = асинхронная очередь потоков. На высоком уровне это основной пул потоков для IIS. Вот хорошая аннотация от эта статья Windows IT Pro это хороший разговор о потоковой передаче IIS.
IIS, ASP и многопоточность IIS использует пул потоков (т. Е. Экземпляров выполнения кода) для обработки входящих запросов и работы с ними. Этот пул потоков называется асинхронной очередью потоков (ATQ). IIS использует пул потоков, потому что повторное использование существующего потока происходит быстрее, чем создание нового потока каждый раз, когда поступает новый запрос. ATQ изначально обрабатывает все входящие запросы. После начальной обработки IIS может отправить запрос в другую очередь или оставить запрос в ATQ. Вот список типов запросов и очереди, в которой они выполняются:
- .htm, .jpg, .gif и другие статические запросы всегда выполняются в ATQ.
- Запрос Common Gateway Interface (CGI) создает новый процесс для обработки запроса и запуска в этом процессе. Однако по умолчанию запрос по-прежнему содержит поток ATQ, в котором он запустил, для обработки информации, возвращаемой процессом CGI.
- Фильтры или расширения Internet Server API (ISAPI) по умолчанию запускаются в ATQ. Однако компонент ISAPI может создать свой собственный пул потоков и использовать этот пул для выполнения.
- Запросы Active Server Pages (ASP) передаются из ATQ в пул потоков, который использует ASP (пул потоков COM + в IIS 5.0 или пул MTX в IIS 4.0).
- Запросы ООП (т. Е. Приложения ООП) поступают в пул потоков, который использует ASP. Поток ASP выполняет соответствующий межпроцессный вызов приложения ООП.