Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

MSSQL_17887 1С:Предприятие и СУБД

MSSQL Error 17887: IO Completion Listener Worker appears to be non-yielding — Решение

Обновлено: 25.08.2026 · Официальная документация ↗
  • Запись в журнале 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
💡 Практика специалистов: При использовании виртуализации (VMware ESXi, Hyper-V) ошибка 17887 чаще всего вызвана конкуренцией на уровне СХД (Storage Queue Depth saturation) или включенным снапшотом виртуальной машины во время бэкапа.

Частые вопросы (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 обычно падает или требует принудительного перезапуска службы.

Полезные материалы
Рекомендуем