Найдите программу, вызывающую высокую загрузку диска в Windows: эффективные способы устранения

Определение процессов с высоким дисковым вводом-выводом (I/O) в Windows

В Windows некоторые запущенные процессы могут создавать сильную нагрузку на диск, что в свою очередь негативно сказывается на производительности других приложений. В этой статье мы рассмотрим базовые инструменты Windows, с помощью которых можно выявить процессы, сильно нагружающие подсистему дисков.

Просмотр текущей нагрузки на диск через Диспетчер задач (Task Manager)

Самый простой способ посмотреть текущую загрузку диска — воспользоваться Диспетчером задач. Нажмите Ctrl + Shift + Esc, перейдите на вкладку Performance (Производительность) и выберите один из физических дисков. На скриншоте показан пример, когда диск загружен на 100%.

Высокая (100%) загрузка диска в Windows

На вкладке Processes (Процессы) вы можете узнать, какой процесс вызывает высокую загрузку диска. В новых версиях Диспетчера задач в Windows 10 и 11 есть столбец Disk, который показывает активность процессов по работе с диском (помимо привычных столбцов для памяти и ЦП). Отсортируйте процессы по столбцу Disk, чтобы увидеть, какие программы потребляют больше всего ресурсов диска.

Диспетчер задач — использование диска

Для получения более детальной информации щёлкните правой кнопкой мыши по процессу и выберите Go to Details (Перейти к деталям).

Добавление дополнительных столбцов для анализа I/O

Для удобства можно добавить в Диспетчер задач дополнительные столбцы. Кликните правой кнопкой по заголовку таблицы процессов, выберите «Select Columns», и добавьте следующие параметры:

  • I/O read bytes
  • I/O write bytes
  • Command line

Это позволит понять, с какими операциями на диске (чтение или запись) связан процесс, а также увидеть команду запуска программы. На примере видно, что высоким дисковым нагрузкам способствует запущенный PowerShell скрипт (*.PS1).

Отображение чтения и записи I/O в Диспетчере задач

Использование Монитора ресурсов (Resource Monitor) для определения файлов с высокой активностью

После того, как мы определили процесс с высокой загрузкой диска, возникает вопрос — какие файлы он активно читает или записывает. Встроенный Resource Monitor (Монитор ресурсов) позволяет найти эти файлы. Откройте его из вкладки Производительность или запустите командой resmon.exe.

Открытие Монитора ресурсов

Перейдите на вкладку Disk (Диск). Отсортируйте процессы по активности ввода-вывода и отметьте галочкой процесс, вызывающий высокую нагрузку.

В разделе Disk Activity (Активность диска) появится фильтрованный список файлов, используемых этим процессом. Найдите файл с наибольшим количеством операций записи и/или чтения — именно он является источником повышенной нагрузки.

Просмотр процессов, вызывающих высокую загрузку диска в Resource Monitor

В данном примере для проверки производительности диска в Windows я использую инструмент DiskSpd.

Использование Process Explorer для детального анализа дисковой активности

Инструмент Microsoft Process Explorer также помогает определить процессы и потоки с высокой загрузкой диска. Process Explorer предоставляет подробную информацию о работе с диском, позволяя выявить конкретные процессы и потоки, ответственные за интенсивную работу с диском, а также просмотреть файлы и ресурсы, которые они используют.

По умолчанию Process Explorer не показывает данные о чтении и записи. Чтобы добавить столбцы I/O Read Bytes и I/O Write Bytes, перейдите на вкладку Process IO и выберите View -> Select columns.

Отображение чтения и записи I/O в Process Explorer

Отсортируйте процессы по показателям ввода-вывода, чтобы найти наиболее нагружающие диски. На вкладке Threads (Потоки) можно найти конкретные потоки процесса, вызывающие интенсивный ввод-вывод.

Process Explorer — просмотр дискового I/O

Особенности поиска процессов с системными (SYSTEM) правами

Иногда определить процесс с высокой дисковой нагрузкой через Task Manager или Resource Monitor сложно, если процесс работает с правами SYSTEM. Такие процессы могут быть невидимы в Диспетчере задач.

На скриншоте ниже показан пример системного процесса, использующего файл VMDK. Из контекста понятно, что это файл виртуальной машины VMware Workstation, но из имени процесса понять это сложно.

Resource Monitor – просмотр часто используемых файлов

В этом примере речь о системном процессе с PID 4 — это стандартный системный процесс в режиме ядра (в том числе в нем работают драйверы устройств). Утилита Process Monitor (ProcMon) — лучший вариант для изучения дисковой активности системных процессов, так как отображает I/O операции, включая работу в уровне ядра.

Procmon может показывать активность по использованию файлов. Перейдите в меню Tools (Инструменты) -> File Summary (Сводка по файлам). Выберите наиболее используемый файл и дважды щёлкните по нему — путь к файлу автоматически добавится в фильтры Procmon. В моём случае причина высокой нагрузки — процесс vmware-vmx.exe (основной процесс VMware Workstation, запускающий виртуальные машины).

Просмотр используемых файлов системным процессом в Process Monitor

Получение информации о дисковой активности через счётчики производительности

Информацию о дисковой активности процессов можно получить и через счётчики производительности. Следующая PowerShell команда в реальном времени выводит 10 процессов с наибольшей дисковой активностью:

Get-Counter '\Process(*)\IO Data Bytes/sec' | Select-Object -ExpandProperty CounterSamples | Sort-Object -Property CookedValue -Descending | Select-Object InstanceName, CookedValue -First 10

PowerShell: запрос счётчиков производительности по использованию диска

Отобразятся 10 процессов с высокой дисковой активностью. Чтобы узнать, какие файлы использует конкретный процесс, воспользуйтесь консольным инструментом Handle из Sysinternals:

handle.exe -p <ProcessNameOrPID>

Команда покажет все открытые дескрипторы файлов указанного процесса (по имени или PID).

handle.exe — просмотр открытых файлов по PID

Пример использования утилиты Handle для освобождения заблокированных файлов в Windows.

Выводы

Мы рассмотрели основные системные инструменты и утилиты, позволяющие определить, какие процессы в Windows вызывают высокую нагрузку на диск. Это Диспетчер задач, Монитор ресурсов, Process Explorer, Process Monitor, счётчики производительности и консольные инструменты из набора Sysinternals.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *