Event ID 7009: таймаут запуска службы Windows — увеличение PipeTimeout
Симптомы таймаута службы (Event ID 7009)
При загрузке операционной системы или ручном запуске тяжелой службы в журнале System фиксируется критическая ошибка: Event ID 7009: A timeout was reached (30000 milliseconds) while waiting for the [Имя_службы] service to connect.
| Симптом | Причина |
|---|---|
| Служба не стартует при включении ПК | Приложению (MS SQL, 1С, Exchange, .NET) не хватило стандартных 30 секунд для запуска |
| Ошибка 1053 при ручном запуске | «Служба не ответила на запрос своевременно» (Error 1053) |
| Высокая нагрузка на диск при старте | Медленный HDD / перегруженный SSD не успевает прочитать бинарные файлы службы |
Пошаговое решение проблемы с таймаутом запуска (Event ID 7009)
По умолчанию диспетчер управления службами (SCM) отводит ровно 30 000 миллисекунд (30 секунд) на то, чтобы служба инициализировалась и отправила статус SERVICE_RUNNING. На нагруженных серверах этого времени часто не хватает.
- Увеличьте глобальный таймаут служб до 120 секунд (ServicesPipeTimeout):
# Увеличение таймаута ожидания служб до 120 секунд (120000 мс) через реестр:
$regPath = "HKLM:\SYSTEM\CurrentControlSet\Control"
New-ItemProperty -Path $regPath -Name "ServicesPipeTimeout" -Value 120000 -PropertyType DWord -Force- Переведите службу в режим «Автоматически (отложенный запуск)» — Delayed Auto-Start: это позволит службе запуститься чуть позже, когда спадет пиковая нагрузка на диск и процессор после старта ядра:
# Перевод службы в режим отложенного автозапуска:
Set-Service -Name "ИмяСлужбы" -StartupType Automatic
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\ИмяСлужбы" -Name "DelayedAutostart" -Value 1 -Type DWord -Force- Отключите проверку отзыва сертификатов для .NET приложений: если служба написана на .NET/C#, она может зависать на 30 секунд при попытке проверить свои цифровые подписи в интернете через CRL:
# Отключение сетевой проверки списков отзыва CRL для служб .NET в файле machine.config
# Добавьте в :
# - Перезагрузите сервер, чтобы параметр
ServicesPipeTimeoutбыл принят ядром SCM.
Важно: Увеличение ServicesPipeTimeout безопасно для системы и решает проблему одновременного запуска десятков тяжелых служб на контроллерах домена и серверах баз данных.
Частые вопросы (FAQ)
Почему служба запускается вручную со второго раза, но падает при автозагрузке?
При старте Windows одновременно запускаются сотни процессов, вызывая 100% нагрузку на диск. Служба не успевает ответить за 30 секунд. При ручном запуске диск уже свободен, и служба стартует быстро.
Что означает параметр DelayedAutostart?
Отложенный автозапуск запускает службу примерно через 2 минуты после полной загрузки всех основных компонентов операционной системы.
Какой максимальный размер ServicesPipeTimeout можно установить?
Рекомендуемое стабильное значение — от 60000 (1 минута) до 180000 (3 минуты). Ставить слишком большие значения не рекомендуется, чтобы не маскировать реальное зависание процессов.
Связан ли Event 7009 с ошибкой 7000?
Да, диспетчер SCM сначала регистрирует таймаут 7009, а затем сразу ошибку 7000, фиксирующую факт неудачного старта службы.