У меня есть небольшой домашний сервер, который я использую для размещения минимального веб-приложения. В качестве основного диска используется SSD, а в качестве накопителей - три HDD.
Жесткие диски настроены на переход в спящий режим после 1 минуты бездействия. Проблема в том, что каждые десять минут или около того они просыпаются и вращаются в течение короткого промежутка времени.
Я обеспокоен таким поведением, поскольку вращение диска вверх и вниз приводит к его быстрому износу, по крайней мере, из того, что я слышал. Шум, который они создают, также является проблемой, и поэтому я бы хотел, чтобы они спали как можно дольше.
Я попробовал следующие шаги:
- отключить очень мало установленных программ
- отключить все службы, которые могут быть связаны
- отслеживать выполнение запланированных задач, чтобы найти что-то связанное
- отключить все запланированные задачи, которые могут быть связаны
- установить диски в автономном режиме в диспетчере дисков
Ни одна из этих попыток не увенчалась успехом, но это уменьшило частоту проблемы (это происходило каждый раз, когда я входил в систему через RDP, даже если диски помечены как автономные).
Я использовал Process Monitor, и единственное действие, которое происходило на жестких дисках, когда диск начал вращаться, было какое-то DeviceIoControl (ioctl). Система регулярно отправляет SMART ioctl на все диски. Вот список команд:
- SMART_GET_VERSION
- SMART_SEND_DRIVE_COMMAND
- SMART_RCV_DRIVE_DATA
Я думаю, что эти команды являются причиной, по которой диск просыпается. Они отправляются через "WMI Provider Host", также известный как wmiprvse.exe
Мне бы очень хотелось узнать имя сотрудника, задачи службы, которая отправляет эти запросы.
Вероятно, в ближайшие дни я постараюсь создать драйвер фильтрующего устройства, чтобы перехватывать запросы SMART и позволять им проходить в приемлемом темпе, но даже если это сработает, это будет лишь обходной путь.