Неприемлемый слушатель IOCP

Кто-нибудь знает, что означает `Non-yeilding IOCP Listener '?

На наших серверах SQL просто был сброс bugcheck:

================================================== ===================
       Ошибка сброса ошибок
================================================== ===================

Этот файл создается Microsoft SQL Server
версия 9.00.5292.00
при обнаружении фатальной неожиданной ошибки. Пожалуйста, верните этот файл,
запрос или программа, которая создала ошибку, базу данных и
журнал ошибок и любая другая соответствующая информация с запросом на обслуживание.


Тип компьютера - AT /AT COMPATIBLE.
Версия Bios - DELL - 1
Phoenix ROM BIOS PLUS Версия 1.10 1.5.2
Текущее время: 23:01:04 09/07/12.
48 Неизвестный процессор 9., 2 МГц процессор (ы).
Windows NT 6.1 Build 7601 CSD с пакетом обновления 1 (SP1).

Память
MemoryLoad = 81%
Всего физических = 524278 МБ
Доступно Физическое значение = 97549 МБ
Общий файл страницы = 524276 МБ
Доступный файл страницы = 94472 МБ
Всего виртуальных = 8388607 МБ
Доступен Виртуальный = 7846765 МБ
** Dump thread - spid = 0, PSS = 0x0000000000000000, EC = 0x0000000000000000
*** Дамп стека отправляется в C: \ Program Files \ Microsoft SQL Server \ MSSQL.1 \ MSSQL \ LOG \ SQLDump0008.txt
* ************************************************* ******************************
*
* НАЧАТЬ СТЕКЛОПРОВОДУЮ:
* 09/07/12 23:01:04 spid 0
*
* Невоспроизводимый слушатель IOCP
*
* ************************************************* ******************************

SQLDump0008.log содержит:

 От пользователя не потребуется никаких действий.
2012-09-07 18: 30: 11.28 spid782 Выполнено восстановление любых сомнительных распределенных транзакций с участием Microsoft Distributed Transaction Coordinator (MS DTC). Это информационное сообщение. От пользователя не потребуется никаких действий.
2012-09-07 20: 58: 54.53 spid196 Предупреждение о «средней задержке» было поднято. Текущее значение «509» превышает порог «100».
2012-09-07 20: 59: 24.74 spid477 Было поднято предупреждение о «средней задержке». Текущее значение «299» превосходит порог «100».
2012-09-07 21: 44: 06.53 spid23s Зеркалирование базы данных неактивно для базы данных «ToDoLists». Это информационное сообщение. От пользователя не потребуется никаких действий.
2012-09-07 21: 44: 06.59 spid456 Предупреждение о «средней задержке» было поднято. Текущее значение «518» превышает порог «100».
2012-09-07 21: 44: 57.98 spid425 Ошибка: 18056, серьезность: 20, состояние: 27.
2012-09-07 21: 44: 57.98 spid425 Клиент не смог повторно использовать сеанс с SPID 425, который был сброшен для объединения пулов. Возможно, эта ошибка вызвана ошибкой предыдущей операции. Проверяйте журналы ошибок для неудачных операций непосредственно перед этим сообщением об ошибке.
2012-09-07 21: 44: 57.98 spid808 Ошибка: 18056, серьезность: 20, состояние: 27.
2012-09-07 21: 44: 57.98 spid808 Клиент не смог повторно использовать сеанс с SPID 808, который был сброшен для объединения пулов. Возможно, эта ошибка вызвана ошибкой предыдущей операции. Проверяйте журналы ошибок для неудачных операций непосредственно перед этим сообщением об ошибке.
2012-09-07 21: 44: 58.01 spid155 Ошибка: 18056, уровень серьезности: 20, состояние: 27.
2012-09-07 21: 44: 58.01 spid155 Клиентне удалось повторно использовать сеанс с SPID 155, который был сброшен для объединения пулов. Возможно, эта ошибка вызвана ошибкой предыдущей операции. Проверяйте журналы ошибок для неудачных операций непосредственно перед этим сообщением об ошибке.
2012-09-07 21: 44: 58.03 Задача spid486 (рабочий 0x00000001B93B21C0) была вынуждена уступить 2 раза:
2012-09-07 21: 44: 58.04 spid65s Зеркалирование базы данных неактивно для базы данных «Отслеживание». Это информационное сообщение. От пользователя не потребуется никаких действий.
2012-09-07 21: 44: 58.06 Задача spid486 (рабочий 0x0000000CB9B341C0) была вынуждена уступить 8 раз:
2012-09-07 21: 44: 58.09 Задача spid486 (рабочий 0x0000000655A9E1C0) была вынуждена уступить 3 раза:
2012-09-07 21: 44: 58.10 Задача spid486 (рабочий 0x00000006C03BE1C0) была вынуждена уступить 8 раз:
2012-09-07 21: 44: 58.11 spid65s Ошибка: 1404, Уровень: 16, Состояние: 6.
2012-09-07 21: 44: 58.11 spid65s Ошибка команды, потому что зеркало базы данных занято. Переиздайте команду позже.
2012-09-07 21: 44: 58.11 Задача spid486 (рабочий 0x0000000C819D01C0) была вынуждена уступить 2 раза:
2012-09-07 21: 44: 58.49 spid140 Предупреждение о «средней задержке» было поднято. Текущее значение «191» превосходит порог «100».
2012-09-07 21: 45: 00.66 spid46s SQL Server столкнулся с 6 событиями cachestore flush для cachestore «Object Plans» (часть кеша плана) из-за некоторого обслуживания базы данных или перенастройки операций.
2012-09-07 21: 45: 17.25 spid83s SQL Server столкнулся с 6 случаями cachestore flush для cachestore SQL Plans (часть кеша плана) из-за некоторого обслуживания базы данных или перенастройки операций.
2012-09-07 21: 45: 17.25 spid54s SQL Server столкнулся с 6 событиями cachestore flush для cachestore «Связанные деревья» (часть кеша плана) из-за некоторого обслуживания базы данных или перенастройки операций.
2012-09-07 21: 45: 17.28 spid45s Зеркальная база данных «Отслеживание» меняет роли от «PRINCIPAL» до «MIRROR» из-за синхронности ролей.
2012-09-07 21: 45: 17.61 spid46s Обход восстановления для базы данных «Отслеживание», поскольку он помечен как зеркальная база данных, которая не может быть восстановлена. Это информационное сообщение. От пользователя не потребуется никаких действий.
2012-09-07 21: 45: 29.21 spid45s Зеркалирование базы данных активно с базой данных «Отслеживание» в качестве зеркальной копии. Это информационное сообщение. От пользователя не потребуется никаких действий.
2012-09-07 21: 50: 56.94 spid196s SQL Server столкнулся с 5 случаями cachestore flush для cachestore «Object Plans» (часть кеша плана) из-за некоторого обслуживания базы данных или перенастройки операций.
2012-09-07 21: 50: 57.14 spid196s SQL Server столкнулся с 5 событиями cachestore flush для cachestore SQL Plans (часть кеша плана) из-за некоторого обслуживания базы данных или перенастройки операций.
2012-09-07 21: 50: 57.14 spid196s SQL Server столкнулся с 5 случаями cachestore flush для cachestore «Связанные деревья» (часть кеша плана) из-за некоторого обслуживания базы данных или перенастройки операций.
2012-09-07 23: 00: 09.42 spid438 Ошибка: 18056, серьезность: 20, состояние: 27.
2012-09-07 23: 00: 09.42 spid438 Клиент не смог повторно использовать сеанс с SPID 438, который был сброшен для объединения пулов. Возможно, эта ошибка вызвана ошибкой предыдущей операции. Проверяйте журналы ошибок для неудачных операций непосредственно перед этим сообщением об ошибке.
2012-09-07 23: 01: 04.26 Сервер с использованием версии 'dbghelp.dll' 4.0.5 '
2012-09-07 23: 01: 04.29 Сервер ** Дамп-поток - spid = 0, PSS = 0x0000000000000000, EC = 0x0000000000000000
2012-09-07 23: 01: 04.29 Сервер *** Дамп стека отправляется в C: \ Program Files \ Microsoft SQL Server \ MSSQL.1 \ MSSQL \ LOG \ SQLDump0008.txt
2012-09-07 23: 01: 04.29 Сервер * ************************************** *****************************************
2012-09-07 23: 01: 04.29 Сервер *
2012-09-07 23: 01: 04.29 Сервер * BEGIN STACK DUMP:
2012-09-07 23: 01: 04.29 Сервер * 09/07/12 23:01:04 spid 0
2012-09-07 23: 01: 04.29 Сервер *
2012-09-07 23: 01: 04.29 Сервер * Неприемлемый слушатель IOCP
2012-09-07 23: 01: 04.29 Сервер *
2012-09-07 23: 01: 04.29 Сервер * ************************************** *****************************************
2012-09-07 23: 01: 04.29 Сервер * -------------------------------------- -----------------------------------------
2012-09-07 23: 01: 04.29 Сервер * Дамп коротких стоп
2012-09-07 23: 01: 04.33 spid73 Повышена тревога за «среднюю задержку». Текущее значение «304» превосходит порог «100».
2012-09-07 23: 01: 04.34 Подпись сервера для дампа 0x00000000000002E8

Что означает The alert for 'average delay' has been raised. The current value of '304' surpasses the threshold '100'.?

11 голосов | спросил Max Vernon 8 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 08 Sep 2012 09:04:53 +0400 2012, 09:04:53

1 ответ


8

IOCP - это порт завершения ввода-вывода. Слушатель IQP, не относящийся к ресурсам, означает, что поток, который обрабатывает процедуры завершения ввода-вывода, принял (относительно) время looooong, что-то делает, и SQLOS, хотя он может быть застрял /висел /независимо.

Сервер Sql делает много ASYNC IO. Как он работает, когда он отправляет запрос IO в ОС, он говорит: «Выполняйте это IO асинхронно. Вот указатель на функцию для вызова, когда это будет сделано».

Функция, которая вызывается, является слушателем завершения ввода-вывода.

Рассмотрим страницу, прочитанную с диска. Поток, выполняющий выбор, должен читать страницу, которая не находится в памяти. Он принимает PAGEIOLATCH, выдает асинхронный ввод-вывод в окна для чтения страницы и переходит в режим сна.

Когда ОС заканчивает IO, он вызывает функцию IOCP, которая помещает IO как «done». Вскоре после этого поток sql заканчивает свой квант 4ms и проверяет, обрабатываются ли IO. Он маркирует это как выполненное и сигнализирует, что поток выдачи просыпается. Поток SELECT получает запланированное, освобождает PAGEIOLATCH, и жизнь хороша.

Теперь объем работы, которую делает IOCP, варьируется в зависимости от типа используемого IOP. Я считаю, что при зеркалировании БД он работает больше, чем если бы он просто читал страницу в пуле буферов.

Если вы программист, работающий на сервере sql, и вы хотите оптимизировать код зеркального отображения БД, возможно, у вас возникнет соблазн поместить больше работы в путь кодов зеркалирования IOCP по сравнению с кодом кода системы потока SQLOS.

Или, возможно, IOCP необходимо скопировать данные в некоторый буфер зеркалирования, который является фиксированным размером, и он находится в цикле, пока это не будет выполнено.

Или, может быть, <> происходит, и функция IOCP кажется «застрявшей».

Я бы не стал беспокоиться об этом, если бы это произошло во время перехода на другой ресурс, и произошло много активности LOG. Если это происходит последовательно, то это может потребовать дальнейшего изучения.

ответил StrayCatDBA 26 Jpm1000000pmSat, 26 Jan 2013 22:24:30 +040013 2013, 22:24:30

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132