MSSQL Error 17887: IO Completion Listener Worker appears to be non-yielding — Решение
- Запись в журнале SQL Server:
IO Completion Listener Worker appears to be non-yielding on Node X. Operating system error 0x00000000. - Полная заморозка дисковых операций ввода-вывода и сетевых ответов клиентам 1С.
- В логах Windows регистрируются предупреждения контроллеров дисков:
The IO operation at logical block address ... was retried (Event ID 153)илиReset to device, \Device\RaidPort0, was issued (Event ID 129).
1. Проверка времени отклика дисковой подсистемы (Stall Latency)
-- Анализ задержек чтения/записи по файлам баз данных (включая tempdb 1С)
SELECT
DB_NAME(vfs.database_id) AS database_name,
mf.name AS logical_name,
mf.physical_name,
vfs.io_stall_read_ms / NULLIF(vfs.num_of_reads, 0) AS avg_read_latency_ms,
vfs.io_stall_write_ms / NULLIF(vfs.num_of_writes, 0) AS avg_write_latency_ms,
vfs.io_stall / NULLIF(vfs.num_of_reads + vfs.num_of_writes, 0) AS avg_io_latency_ms
FROM sys.dm_io_virtual_file_stats(NULL, NULL) vfs
JOIN sys.master_files mf ON vfs.database_id = mf.database_id AND vfs.file_id = mf.file_id
ORDER BY avg_io_latency_ms DESC;2. Анализ состояния потоков завершения ввода-вывода (IOCP)
-- Проверка статуса портов завершения ввода-вывода SQLOS
SELECT
iocp_id,
work_queue_count,
completion_key_count,
is_idle
FROM sys.dm_os_iocp_stats;3. Обновление драйверов дисковых контроллеров и SAN Fabric Multipath
Убедитесь, что прошивки HBA-адаптеров, драйверы NVMe/SAS-контроллеров и MPIO (Multi-Path IO) находятся в актуальном состоянии. Замените сбойные оптические кабели SAN или модули SFP.
4. Проверка работы драйверов антивирусного сканирования
Удалите фильтр-драйверы антивируса из цепочки стека ввода-вывода для дисков с данными и логами 1С:
fltmc.exe instances Частые вопросы (FAQ)
За что отвечает воркер IO Completion Listener в SQL Server?
Этот специальный системный поток SQLOS отслеживает очереди портов завершения асинхронного ввода-вывода (IOCP) от операционной системы и уведомляет планировщики о выполнении операций чтения/записи с диска и из сети.
Почему IO Completion Listener перестает отвечать (non-yielding)?
Причиной является зависание системного вызова GetQueuedCompletionStatus в ядре Windows из-за дедлока в драйвере хранилища, сбоя SAN-сети или зависания антивирусного фильтра дисков.
Какая задержка дисков считается критической для баз данных 1С?
Для файлов данных mdf задержка свыше 15–20 мс считается критичной, а для файлов журнала транзакций ldf задержка записи должна быть строго ниже 2–5 мс.
Требуется ли перезапуск SQL Server при появлении ошибки 17887?
Если система не восстановила работу в течение 1–2 минут самостоятельно, процесс sqlservr.exe обычно падает или требует принудительного перезапуска службы.