Как посмотреть загруженность жесткого диска
abstract: разница между текущей производительностью и производительностью теоретической; latency и IOPS, понятие независимости дисковой нагрузки; подготовка тестирования; типовые параметры тестирования; практическое copypaste howto.
Предупреждение: много букв, долго читать.
- научная публикация, в которой скорость кластерной FS оценивали с помощью dd (и включенным файловым кешем, то есть без опции direct)
- использование bonnie++
- использование iozone
- использование пачки cp с измерениема времени выполнения
- использование iometer с dynamo на 64-битных системах
Это всё совершенно ошибочные методы. Дальше я разберу более тонкие ошибки измерения, но в отношении этих тестов могу сказать только одно — выкиньте и не используйте.
bonnie++ и iozone меряют скорость файловой системы. Которая зависит от кеша, задумчивости ядра, удачности расположения FS на диске и т.д. Косвенно можно сказать, что если в iozone получились хорошие результаты, то это либо хороший кеш, либо дурацкий набор параметров, либо действительно быстрый диск (угадайте, какой из вариантов достался вам). bonnie++ вообще сфокусирована на операциях открытия/закрытия файлов. т.е. производительность диска она особо не тестирует.
dd без опции direct показывает лишь скорость кеша — не более. В некоторых конфигурациях вы можете получать линейную скорость без кеша выше, чем с кешем. В некоторых вы будете получать сотни мегабайт в секунду, при линейной производительности в единицы мегабайт.
С опцией же direct (iflag=direct для чтения, oflag=direct для записи) dd проверяет лишь линейную скорость. Которая совершенно не равна ни максимальной скорости (если мы про рейд на много дисков, то рейд в несколько потоков может отдавать большую скорость, чем в один), ни реальной производительности.
IOmeter — лучше всего перечисленного, но у него есть проблемы при работе в linux. 64-битная версия неправильно рассчитывает тип нагрузки и показывает заниженные результаты (для тех, кто не верит — запустите его на ramdisk).
Спойлер: правильная утилита для linux — fio. Но она требует очень вдумчивого составления теста и ещё более вдумчивого анализа результатов. Всё, что ниже — как раз подготовка теории и практические замечания по работе с fio.
(текущая VS максимальная производительность)
Сейчас будет ещё больше скучных букв. Если кого-то интересует количество попугаев на его любимой SSD'шке, ноутбучном винте и т.д. — см рецепты в конце статьи.
Все современные носители, кроме ramdisk'ов, крайне негативно относятся к случайным операциям записи. Для HDD нет разницы запись или чтение, важно, что головки гонять по диску. Для SSD же случайная операция чтения ерунда, а вот запись малым блоком приводит к copy-on-write. Минимальный размер записи — 1-2 Мб, пишут 4кб. Нужно прочитать 2Мб, заменить в них 4кб и записать обратно. В результате в SSD'шку уходит, например, 400 запросов в секундну на запись 4кб которые превращаются в чтение 800 Мб/с (. ) и записи их обратно. (Для ramdisk'а такая проблема могла бы быть тоже, но интрига в том, что размер «минимального блока» для DDR составляет около 128 байт, а блоки в тестах обычно 4кб, так что гранулярность DDR в тестах дисковой производительности оперативной памяти не важна).
Этот пост не про специфику разных носителей, так что возвращаемся к общей проблеме.
Мы не можем мерять запись в Мб/с. Важным является сколько перемещений головки было, и сколько случайных блоков мы потревожили на SSD. Т.е. счёт идёт на количество IO operation, а величина IO/s называется IOPS. Таким образом, когда мы меряем случайную нагрузку, мы говорим про IOPS (иногда wIOPS, rIOPS, на запись и чтение соотв.). В крупных системах используют величину kIOPS, (внимание, всегда и везде, никаких 1024) 1kIOPS = 1000 IOPS.
И вот тут многие попадают в ловушку первого рода. Они хотят знать, «сколько IOPS'ов» выдаёт диск. Или полка дисков. Или 200 серверных шкафов, набитые дисками под самые крышки.
Тут важно различать число выполненных операций (зафиксировано, что с 12:00:15 до 12:00:16 было выполнено 245790 дисковых операций — т.е. нагрузка составила 245kIOPS) и то, сколько система может выполнить операций максимум.
Число выполненых операций всегда известно и легко измерить. Но когда мы говорим про дисковую операцию, мы говорим про неё в будущем времени. «сколько операций может выполнить система?» — «каких операций?». Разные операции дают разную нагрузку на СХД. Например, если кто-то пишет случайными блоками по 1Мб, то он получит много меньше iops, чем если он будет читать последовательно блоками по 4кб.
И если в случае пришедшей нагрузки мы говорим о том, сколько было обслужено запросов «какие пришли, такие и обслужили», то в случае планирования, мы хотим знать, какие именно iops'ы будут.
Драма состоит в том, что никто не знает, какие именно запросы придут. Маленькие? Большие? Подряд? В разнобой? Будут они прочитаны из кеша или придётся идти на самое медленное место и выковыривать байтики с разных половинок диска?
- Тест диска (СХД/массива) на best case (попадание в кеш, последовательные операции)
- Тест диска на worst case. Чаще всего такие тесты планируются с знанием устройства диска. «У него кеш 64Мб? А если я сделаю размер области тестирования в 2Гб?». Жёсткий диск быстрее читает с внешней стороны диска? А если я размещу тестовую область на внутренней (ближшей к шпинделю) области, да так, чтобы проходимый головками путь был поболе? У него есть read ahead предсказание? А если я буду читать в обратном порядке? И т.д.
В результате мы получаем цифры, каждая из которых неправильная. Например: 15kIOPS и 150 IOPS.
Какая будет реальная производительность системы? Это определяется только тем, как близко будет нагрузка к хорошему и плохому концу. (Т.е. банальное «жизнь покажет»).
- Что best case всё-таки best. Потому что можно дооптимизироваться до такого, что best case от worst будет отличаться едва-едва. Это плохо (ну или у нас такой офигенный worst).
- На worst. Имея его мы можем сказать, что СХД будет работать быстрее, чем полученный показатель. Т.е. если мы получили 3000 IOPS, то мы можем смело использовать систему/диск в нагрузке «до 2000».
Ну и про размер блока. Традиционно тест идёт с размером блока в 4к. Почему? Потому что это стандартный размер блока, которым оперируют ОС при сохранении файла. Это размер страницы памяти и вообще, Очень Круглое Компьютерное Число.
Нужно понимать, что если система обрабатывает 100 IOPS с 4к блоком (worst), то она будет обрабатывать меньше при 8к блоке (не менее 50 IOPS, вероятнее всего, в районе 70-80). Ну и на 1Мб блоке мы увидим совсем другие цифры.
Всё? Нет, это было только вступление. Всё, что написано выше, более-менее общеизвестно. Нетривиальные вещи начинаются ниже.
- прочитать запись
- поменять запись
- записать запись обратно
Для удобства будем полагать, что время обработки нулевое. Если каждый запрос на чтение и запись будет обслуживаться 1мс, сколько записей в секунду сможет обработать приложение? Правильно, 500. А если мы запустим рядом вторую копию приложения? На любой приличной системе мы получим 1000. Если мы получим значительно меньше 1000, значит мы достигли предела производительности системы. Если нет — значит, что производительность приложения с зависимыми IOPS'ами ограничивается не производительностью СХД, а двумя параметрами: latency и уровнем зависимости IOPS'ов.
Начнём с latency. Latency — время выполнения запроса, задержка перед ответом. Обычно используют величину, «средняя задержка». Более продвинутые используют медиану среди всех операций за некоторый интервал (чаще всего за 1с). Latency очень сложная для измерения величина. Связано это с тем, что на любой СХД часть запросов выполняется быстро, часть медленно, а часть может попасть в крайне неприятную ситуацию и обслуживаться в десятки раз дольше остальных.
Интригу усиливает наличие очереди запросов, в рамках которой может осуществляться переупорядочивание запросов и параллельное их исполнение. У обычного SATA'шного диска глубина очереди (NCQ) — 31, у мощных систем хранения данных может достигать нескольких тысяч. (заметим, что реальная длина очереди (число ожидающих выполнения запросов) — это параметр скорее негативный, если в очереди много запросов, то они дольше ждут, т.е. тормозят. Любой человек, стоявший в час пик в супермаркете согласится, что чем длиннее очередь, тем фиговее обслуживание.
Latency напрямую влияет на производительность последовательного приложения, пример которого приведён выше. Выше latency — ниже производительность. При 5мс максимальное число запросов — 200 шт/с, при 20мс — 50. При этом если у нас 100 запросов будут обработаны за 1мс, а 9 запросов — за 100мс, то за секунду мы получим всего 109 IOPS, при медиане в 1мс и avg (среднем) в 10мс.
Отсюда довольно трудный для понимания вывод: тип нагрузки на производительность влияет не только тем, «последовательный» он или «случайный», но и тем, как устроены приложения, использующие диск.
Пример: запуск приложения (типовая десктопная задача) практически на 100% последовательный. Прочитали приложение, прочитали список нужных библиотек, по-очереди прочитали каждую библиотеку… Именно потому на десктопах так пламенно любят SSD — у них микроскопическая задержка (микросекундная) на чтение — разумеется, любимый фотошоп или блендер запускается в десятые доли секунды.
Трешинг. Я думаю, с этим явлением пользователи десктопов знакомы даже больше, чем сисадмины. Жуткий хруст жёсткого диска, невыразимые тормоза, «ничего не работает и всё тормозит».
По мере того, как мы начинаем забивать очередь диска (или хранилища, повторю, в контексте статьи между ними нет никакой разницы), у нас начинает резко вырастать latency. Диск работает на пределе возможностей, но входящих обращений больше, чем скорость их обслуживания. Latency начинает стремительно расти, достигая ужасающих цифр в единицы секунд (и это при том, что приложению, например, для завершения работы нужно сделать 100 операций, которые при latency в 5 мс означали полусекундную задержку. ). Это состояние называется thrashing.
Вы будете удивлены, но любой диск или хранилище способны показывать БОЛЬШЕ IOPS'ов в состоянии thrashing, чем в нормальной загрузке. Причина проста: если в нормальном режиме очередь чаще всего пустая и кассир скучает, ожидая клиентов, то в условии трешинга идёт постоянное обслуживание. (Кстати, вот вам и объяснение, почему в супермаркетах любят устраивать очереди — в этом случае производительность кассиров максимальная). Правда, это сильно не нравится клиентам. И в хороших супермаркетах хранилищах такого режима стараются избегать. Если дальше начинать поднимать глубину очереди, то производительность начнёт падать из-за того, что переполняется очередь и запросы стоят в очереди чтобы встать в очередь (да-да, и порядковый номер шариковой ручкой на на руке).
И тут нас ждёт следующая частая (и очень трудно опровергаемая) ошибка тех, кто меряет производительность диска.
Они говорят «у меня диск выдаёт 180 IOPS, так что если взять 10 дисков, то это будет аж 1800 IOPS». (Именно так думают плохие супермаркеты, сажая меньше кассиров, чем нужно). При этом latency оказывается запредельной — и «так жить нельзя».
Реальный тест производительности требует контроля latency, то есть подбора таких параметров тестирования, чтобы latency оставалась ниже оговоренного лимита.
И вот тут вот мы сталкиваемся со второй проблемой: а какого лимита? Ответить на этот вопрос теория не может — этот показатель является показателем качества обслуживания. Другими словами, каждый выбирает для себя сам.
Лично я для себя провожу тесты так, чтобы latency оставалась не более 10мс. Этот показатель я для себя считаю потолком производительности хранилища. (при этом в уме я для себя считаю, что предельный показатель, после которого начинают ощущаться лаги — это 20мс, но помните, про пример выше с 900 по 1мс и 10 по 100мс, у которого avg стала 10мс? Вот для этого я и резервирую себе +10мс на случайные всплески).
Выше мы уже рассмотрели вопрос с зависимыми и независимыми IOPS'ами. Производительность зависимых Iops'ов точно контролируется latency, и этот вопрос мы уже обсудили. А вот производительность в независимых iops'ах (т.е. при параллельной нагрузке), от чего она зависит?
Отдельно нужно говорить про ситуацию, когда хранилище подключено к хосту через сеть с использованием TCP. О TCP нужно писать, писать, писать и ещё раз писать. Достаточно сказать, что в линуксе существует 12 разных алгоритмов контроля заторов в сети (congestion), которые предназначены для разных ситуаций. И есть около 20 параметров ядра, каждый из которых может радикальным образом повлиять на попугаи на выходе (пардон, результаты теста).
С точки зрения оценки производительности мы должны просто принять такое правило: для сетевых хранилищ тест должен осуществляться с нескольких хостов (серверов) параллельно. Тесты с одного сервера не будут тестом хранилища, а будут интегрированным тестом сети, хранилища и правильности настройки самого сервера.
Последний вопрос — это вопрос затенения шины. О чём речь? Если у нас ssd способна выдать 400 МБ/с, а мы её подключаем по SATA/300, то очевидно, что мы не увидим всю производительность. Причём с точки зрения latency проблема начнёт проявляться задолго до приближения к 300МБ/с, ведь каждому запросу (и ответу на него) придётся ждать своей очереди, чтобы проскочить через бутылочное горлышко SATA-кабеля.
Но бывают ситуации более забавные. Например, если у вас есть полка дисков, подключенных по SAS/300x4 (т.е. 4 линии SAS по 300МБ каждая). Вроде бы много. А если в полке 24 диска? 24*100=2400 МБ/с, а у нас есть всего 1200 (300х4).
Более того, тесты на некоторых (серверных!) материнских платах показали, что встроенные SATA-контроллеры часто бывают подключены через PCIx4, что не даёт максимально возможной скорости всех 6 SATA-разъёмов.
Повторю, главной проблемой в bus saturation является не выедание «под потолок» полосы, а увеличение latency по мере загрузки шины.
Ну и перед практическими советами, скажу про известные трюки, которые можно встретить в индустриальных хранилищах. Во-первых, если вы будете читать пустой диск, вы будете читать его из «ниоткуда». Системы достаточно умны, чтобы кормить вас нулями из тех областей диска, куда вы никогда не писали.
Во-вторых, во многих системах первая запись хуже последующих из-за всяких механизмов снапшотов, thin provision'а, дедупликации, компрессии, late allocation, sparse placement и т.д. Другими словами, тестировать следует после первичной записи.
В третьих — кеш. Если мы тестируем worst case, то нам нужно знать, как будет вести себя система когда кеш не помогает. Для этого нужно брать такой размер теста, чтобы мы гарантированно читали/писали «мимо кеша», то есть выбивались за объёмы кеша.
Кеш на запись — особая история. Он может копить все запросы на запись (последовательные и случайные) и писать их в комфортном режиме. Единственным методом worst case является «трешинг кеша», то есть посыл запросов на запись в таком объёме и так долго, чтобы write cache перестал стправляться и был вынужден писать данные не в комфортном режиме (объединяя смежные области), а скидывать случайные данные, осуществляя random writing. Добиться этого можно только с помощью многократного превышения области теста над размером кеша.
Вердикт — минимум x10 кеш (откровенно, число взято с потолка, механизма точного расчёта у меня нет).
Разумеется, тест должен быть без участия локального кеша ОС, то есть нам надо запускать тест в режиме, который бы не использовал кеширование. В линуксе это опция O_DIRECT при открытии файла (или диска).
Итого:
1) Мы тестируем worst case — 100% размера диска, который в несколько раз больше предположительного размера кеша на хранилище. Для десктопа это всего лишь «весь диск», для индустриальных хранилищ — LUN или диск виртуальной машины размером от 1Тб и больше. (Хехе, если вы думаете, что 64Гб RAM-кеша это много. ).
2) Мы ведём тест блоком в 4кб размером.
3) Мы подбираем такую глубину параллельности операций, чтобы latency оставалось в разумных пределах.
На выходе нас интересуют параметры: число IOPS, latency, глубина очереди. Если тест запускался на нескольких хостах, то показатели суммируются (iops и глубина очереди), а для latency берётся либо avg, либо max от показателей по всем хостам.
Тут мы переходим к практической части. Есть утилита fio которая позволяет добиться нужного нам результата.
Нормальный режим fio подразумевает использование т.н. job-файла, т.е. конфига, который описывает как именно выглядит тест. Примеры job-файлов приведены ниже, а пока что обсудим принцип работы fio.
fio выполняет операции над указанным файлом/файлами. Вместо файла может быть указано устройство, т.е. мы можем исключить файловую систему из рассмотрения. Существует несколько режимов тестирования. Нас интересует randwrite, randread и randrw. К сожалению, randrw даёт нам зависимые iops'ы (чтение идёт после записи), так что для получения полностью независимого теста нам придётся делать две параллельные задачи — одна на чтение, вторая на запись (randread, randwrite).
И нам придётся сказать fio делать «preallocation». (см выше про трюки производителей). Дальше мы фиксируем размер блока (4к).
Ещё один параметр — метод доступа к диску. Наиболее быстрым является libaio, именно его мы и будем использовать.
При тесте диска запускать её надо от root'а.
Отключаем Дефрагментацию (Оптимизацию).
Это уже почти пальцем в небо, но попробовать стоит. Дефрагментацию (Оптимизацию в Windows 10) дисков по идее отключать не стоит, оставив расписание по умолчанию. Напрягать эта функция не должна, но если процесс System нагружает диск, скажем, раз в неделю, то можно попробовать отложить её на неопределённый срок с целью проверить не в ней ли причина. Диски сейчас больших размеров, процесс может затягиваться на часы… И порой System реагирует на это неадекватно. Чтобы отключить дефрагментацию или оптимизацию диска немедленно, введите в консоли от имени администратора команду
Как отследить работу процесса с локальными дисками и узнать, какой конкретно процесс нагружает жёсткий диск?
Лично я не раз время от времени задавался вопросом, обозначенным в заголовке статьи: как узнать на какой процесс, запущенный в системе, сейчас откликается мой жёсткий диск? Причин на то обычно было несколько.
- Подключая внешний жёсткий диск хотелось бы быть уверенным, что ни один из процессов Windows не перегружает дополнительный локальный диск, сохраняя быстрый обмен данными с системой;
- иногда возникает необходимость быть уверенным в том, что определённые процессы не являются «виновниками» чрезмерной активности диска, что также является весомым фактором замедления системы.
Для этого мы можем использовать возможности двух утилит. Подойдут Диспетчер задач Windows и необходимый для скачивания Process Explorer. Разница между ними в решении задачи, однако, есть: первый из них отобразит нужную информацию по текущей сессии, второй — с момента запуска программы.
Если не удается найти официальные драйвер AHCI или он не устанавливается
Способ срабатывает в тех случаях, когда отображаемая нагрузка на диск вызвана тем, что оборудование не поддерживает технологию MSI (Message Signaled Interrupt), которая по умолчанию включена в стандартном драйвере. Это достаточно распространенный случай.
Если это так, то выполните следующие шаги:
- В свойствах контроллера SATA откройте вкладку «Сведения», выберите свойство «Путь к экземпляру устройства». Не закрывайте это окно.
- Запустите редактор реестра (нажать клавиши Win+R, ввести regedit и нажать Enter).
- В редакторе реестра перейдите к разделу (папки слева) HKEY_LOCAL_MACHINE System CurrentControlSet Enum Путь_к_контроллеру_SATA_из_окна_в_пункте_1 Подраздел_со_случайным_номером Device Parameters Interrupt Management MessageSignaledInterruptProperties
- Дважды кликните по значению MSISupported в правой части редактора реестра и задайте для него значение 0.
По завершению закройте редактор реестра и перезагрузите компьютер, после чего проверьте, была ли исправлена проблема.
- Зайдите в Параметры — Система — Уведомления и действия и отключите пункт «Получать советы, подсказки и рекомендации при использовании Windows».
- Запустите командную строку от имени администратора и введите команду wpr -cancel
- Отключите службы Windows Search и О том, как это сделать, см. Какие службы можно отключить в Windows 10.
- В проводнике в свойствах диска на вкладке «Общие» снимите отметку «Разрешить индексировать содержимое файлов на этом диске в дополнение к свойствам файла».
На данный момент времени — это все решения, которые я могу предложить на ситуацию, когда диск загружен на 100 процентов. Если ничто из перечисленного не помогает, и, при этом, раньше в этой же системе подобное не наблюдалось, возможно, стоит попробовать сброс Windows 10.
Какой процесс нагружает жёсткий диск? Узнаем через Диспетчер задач.
Диспетчер задач Windows по умолчанию не богат на функционал и не отображает дисковую активность. Однако кое-что из него выудить можно: активируем опцию отображения списка активных процессов списком (покажу на примере Windows 7).
- Откроем Диспетчер сочетанием Ctrl + Shift + Esc
- В панели инструментов выберу Вид — Выбрать столбцы (в Windows 8 и позднее для отображения дополнительного набора функций воспользуйтесь пунктом Подробнее)
- В появившейся вкладке прокручиваем колёсиком мыши до пунктов:
и согласимся с добавлением. После этого в окне Диспетчера появятся два дополнительных столбца, с помощью которых можно будет отследить активность процессов. Отсортируйте их по степени нагрузки на диск, нажимая по заголовку каждого из столбцов. Так, с помощью колонки Записано байт я с лёгкостью вычисляю, какой конкретно процесс нагружает жёсткий диск. Помните, что на экране информация в байтах.
Монитор ресурсов
«Монитор ресурсов» — инструмент для определения нагрузки ПК. Способен помочь оценить показатели устройства.
Инструкция по использованию:
- Запустить «Диспетчер задач».
- Во вкладке «Производительность» нажать по гиперссылке «Открыть монитор ресурсов». Утилиту можно запустить и посредством команды perfmon /res, выполненной в консоли.
- Перейти в раздел «Диск».
- Отсортировать все позиции по столбику «Всего (байт/c)».
Будут перечислены все читаемые в настоящее время файлы. В правой части, в режиме реального времени, строится график скоростей обмена данными с дисками и указана длина очереди, которая не должна быть выше 2 — это свидетельствует о перегруженности дисковой системы. Следствием становится замедление работы накопителя — все поступающие запросы не успевают обрабатываться.
Почему процесс System грузит процессор, диск или потребляет много оперативной памяти
Причин, по которым процесс System может проявлять активность с нагрузкой на процессор, жесткий диск или оперативную память, много. Среди них, в частности, такие как: слабый или перегретый процессор, медленный или работающий с ошибками жесткий диск, сильная фрагментация последнего или наличие в нем битых секторов, работа отдельных антивирусов и файерволов, проблемы с обновлениями Windows, проникновение вредоносного ПО и пр. Причиной использования процессом System больших объемов оперативной памяти в Windows 8.1 и 10 является улучшение производительности этих систем за счет сжатия данных и помещения их в оперативную память вместо выгрузки в файл подкачки.
Перед тем, как приступать к изложенным ниже радикальным способам борьбы с активностью процесса System, необходимо проверить жесткий диск на ошибки и битые сектора. Также не будет лишним измерить температуру процессора, особенно, если чистка компьютера от пыли проводилась давно. При повышенной температуре процессор может блокировать новые процессы, чтобы обезопасить себя от сгорания. Если на маломощном компьютере установлены ресурсоемкие антивирусные продукты, например, от Eset, Dr.Web, Лаборатории Касперского, необходимо протестировать поведение процесса System без них. Если предположение подтвердится, придется прибегнуть к защите более легковесных альтернатив. Кстати, антивирус Касперского предусматривает настройку приоритета использования аппаратных ресурсов.
Если активность процесса System, нагружающая системные ресурсы, наблюдается сразу после установки Windows, следует подождать, пока проиндексируются диски и установятся обновления. Переустановка Windows из-за проблемной активности процесса System в большей части случаев положительных результатов не даст, и этот процесс через время снова будет нагружать системные ресурсы. Но, возможно, проблема решится, если она возникла в 64-битной Windows на компьютере с оперативной памятью меньше 4 Гб, а для переустановки выбрана 32-битная Windows.
Приведенные ниже способы решения проблемы с активностью процесса System затронут важные системные настройки. Перед применением этих способов желательно создать точку восстановления или резервную копию Windows. Не все эти способы будут эффективны в каждом конкретном случае, тестировать их необходимо по отдельности. Для применения способов необходимы права администратора.
Большая часть способов борьбы с активностью System будет связана с отключением системных служб Windows. Попасть в оснастку «Службы» можно либо в диспетчере задач Windows 8.1 и 10,
либо введя в поле внутрисистемного поиска или службы «Выполнить»:
Неправильная работа драйверов AHCI
Мало кто из пользователей, устанавливающих Windows 10, выполняет какие-либо действия с драйверами дисков SATA AHCI — у большинства в диспетчере устройств в разделе «Контроллеры IDE ATA/ATAPI» будет значится «Стандартный контроллер SATA AHCI». И обычно это не вызывает проблем.
Однако, если без видимых причин вы наблюдаете постоянную нагрузку на диск, следует обновить этот драйвер на тот, что предусмотрен производителем вашей материнской платы (если у вас ПК) или ноутбука и доступен на официальном сайте производителя (даже если там он в наличии только для предыдущих версий Windows).
Как произвести обновление:
По завершении установки, перезагрузите компьютер и проверьте, остается ли проблема с нагрузкой на HDD или SSD.
Системный монитор
Опытные пользователи дополнительно могут применять штатный инструмент «Системный монитор». Утилита открывается при помощи команды perfmon в окне «Выполнить». Чтобы получать информацию о диске, нужно добавить необходимый счетчик посредством встроенных опций на панели.
Почему диск загружен на 100% в Windows 10
Причины, почему диск загружен на 100% в Windows 10:
- Обновление системы.
- Резервное копирование.
- Службы системы Windows Search и Superfetch.
- Процессы системы svchost и system.
- Фрагментация дисков.
- Наличие битых секторов.
- Нагрузки процессами сторонних приложений.
Первым делом, обратите внимание, какие процессы грузят диск на 100%. Исходя из этого, проще выявить неисправность:
- Чтобы определить процессы, что дают нагрузку на диск, нажмите Ctrl+Shift+Esc и отсортируйте процессы по колонке «Диск».
- Также, процессы, которые нагружают диск, можно посмотреть, открыв вкладку «Производительность» — «Открыть мониторинг ресурсов» — вкладка «Диск».
- Если во время нагрузки жесткого диска возникают просадки, что и «Диспетчер задач» не откроешь, воспользуйтесь KernRate чтобы выяснить, какой конкретно драйвер дает нагрузку. Запускайте утилиту от имени администратора, для копирования информации нажмите Ctrl+C и сохраните лог в текстовом документе.
В конце, в строке «Module», будет указан процесс (имя файла процесса), который нагружает систему.
Отключение индексации диска С
В угоду производительности компьютера можно отключить службу индексации файлов. При поиске файлов на эту операцию будет уходить больше времени, но система избавится от постоянно активного процесса, который регулярно задействует ресурсы процессора и оперативной памяти. В оснастке «Службы» выбираем «Windows Search».
Службу останавливаем, отключаем, применяем изменения.
Далее выбираем «Свойства» в контекстном меню диска С и убираем галочку с опции разрешения его индексации. Жмем «Применить».
В появившемся окошке указываем второй пункт – «К диску С: и ко всем вложенным папкам и файлам». Жмем «Ок». Далее подтверждаем операцию кнопкой «Продолжить». А при появлении окошка, оповещающего об ошибках изменения атрибутов, жмем кнопку «Пропустить все».
Сбросьте настройки виртуальной памяти.
В этом пункте есть разночтения. Лично я считаю, что пусть Windows сама решит какой размер файла pagefile ей необходим. В той же консоли команд от имени администратора наберите
Закройте все окна и немедленно перезагрузите компьютер прямо из консоли
Однако есть пользователи, которые утверждают, что им помогла именно обратная процедура: они установили минимальную и максимальную границы файла подкачки. Что впоследствии спасло от нагрузки на диск со стороны System. В общем, пробуйте по принципу «обратного»: проблема с нагрузкой на диск при автоматическом размере? Установите свои. System нагружает диск при настроенном pagefile вручную? Сбросьте размер до автовыбора. Но я своё мнение высказал в заголовке абзаца. В любом случае настройки виртуальной памяти лежат здесь:
Тесты на запись
(внимание! Ошибётесь буквой диска — останетесь без данных)
Проблемы с драйверами
Следующий вариант подойдёт не всем из-за особенностей конфигурации компьютера или ноутбука. Но однажды причиной проблемы стал именно драйвер Storahci.sys к жёсткому диску. Это может выражаться в том, что процесс System нагружает диск на 100 или почти 100% беспричинно, регулярно и очень часто (до нескольких раз в минуту). Причём симптомы могут появиться сразу после установки системы. Из-за этого один мой новенький SATA чуть было не отправился на помойку, пока не осенила одна идея. Попробуйте и вы.
- Откройте Диспетчер устройств и найдите пункт Контроллеры IDE ATA/ATAPI — Стандартный контроллер SATA AHCI. Если его нет — пропускайте ход. Если есть — разверните его (фото кликабельны) во вкладке Драйвер:
- Перейдите во вкладку Сведения и найдите пункт Путь к экземпляру устройства в ниспадающем окне. Попутно запускаем редактор реестра, в котором мы сейчас отключим поддержку MSI для диска. Для удобства расположите оба окна так как указано у меня на фото. Задача — найти тот самый драйвер из части Значения вкладки Сведений Диспетчера в разделе редактора реестра
- Значение параметра MSISupported измените с 1 на 0. Вот так:
Перезагружайтесь и проверяйте. И сразу ремарка — если ситуация с нагрузкой на диск не меняется, есть смысл обратиться к производителю диска с вопросом.
Проверка загруженности диска на 100% в Диспетчере задач
Вы можете проверить загруженность своего диска в Диспетчере задач во вкладке с работающими процессами. Вы уже наверняка использовали эту системную программу, но просто не обращали на столбец с загруженностью диска(имеются в виду новички с Windows).
- Нажмите ALT+CTRL+Delete на своей клавиатуре.
- Выберите из списка действий «Диспетчер задач».
- Выберите вкладку «Процессы».
- В этой вкладке можно увидеть столбец с именем «Диск». Именно в нем и будет указываться общая загруженность вашего диска.
Программы, активно использующие диск
Несмотря на то, что этот пункт сравнительно нечасто оказывается причиной нагрузки на HDD в Windows 10, рекомендую начать с него, особенно если вы не являетесь опытным пользователем. Проверьте, а не является ли какая-то установленная и запущенная (возможно, находящаяся в автозагрузке) программа причиной происходящего.
Для этого вы можете выполнить следующие действия
- Откройте диспетчер задач (сделать это можно через правый клик по меню пуск, выбрав соответствующий пункт в контекстном меню). Если в нижней части диспетчера задач вы увидите кнопку «Подробнее», нажмите ее.
- Отсортируйте процессы в колонке «Диск», нажав на ее заголовок.
Обратите внимание, а не какая-то из ваших собственных установленных программ вызывает нагрузку на диск (т.е. находится первой в списке). Это может быть какой-либо антивирус, выполняющий автоматическое сканирование, торрент-клиент, или просто неправильно работающее ПО. Если это так, то стоит убрать эту программу из автозагрузки, возможно, переустановить ее, то есть искать проблему с нагрузкой на диск не в системе, а именно в стороннем ПО.
Также нагружать диск на 100% может какая-либо служба Windows 10, запущенная через svchost.exe. Если вы видите, что именно этот процесс вызывает нагрузку, рекомендую посмотреть статью про svchost.exe грузит процессор — в ней приводится информация о том, как с помощью Process Explorer узнать, какие именно службы запущены через конкретный экземпляр svchost, вызывающий нагрузку.
тесты на чтение
Запуск: fio read.ini
Содержимое read.ini
Задача подобрать такой iodepth, чтобы avg.latency была меньше 10мс.
Диагностика и поиск причин загрузки диска
При заполнении диска нужно провести тщательную диагностику, которая поможет определить источник проблемы. Осуществить желаемое можно посредством штатных средств: «Диспетчера задач», «Монитора ресурсов» и «Системного монитора». В результате пользователь получит конкретный набор данных, на основании которых можно будет предпринимать действия.
Что умеет монитор ресурсов?
Большинство пользователей зря игнорирует этот мощный и, кстати, специально созданный инструмент для диагностики неисправностей. Все или почти постоянные и время о времени случающиеся подвисы или фризы системы отлично здесь регистрируются. Причём практически в режиме онлайн. Попасть в него легко прямо из Диспетчера задач:
в монитор ресурсов из диспетчера задач windows 10
Этот вариант успешно применяется тогда, когда жёсткий диск нагружается на 100%, а Диспетчер задач и его аналоги ничего толкового по этому поводу сказать не могут:
Картинка монитора по процессам меняется постоянно, и вам стоит лишь присмотреться к именам служб, которые производят запись или чтение с диска. Это не статья о том, как избавиться от загрузки каким-либо процессом или службой вашего HDD или SSD на 100%. Но именно благодаря информации оттуда я чаще всего рекомендую пользователям проверить службы:
- обновления (в Windows 10 я просто приостанавливаю получение и применение/установку обновлений)
- выполняемые запланированные задачи (их нередко немерено, и все запускаются в фоновом режиме)
- встроенного антивируса в Windows 10
- службы Windows Search
Вот как это примерно выглядит в рисунках:
После перезагрузки системы есть смысл проверить проделанное и принимать решение по конкретному процессу.
В посте собран перечень 20 лучших бесплатных инструментов разбивки, диагностики, шифрования, восстановления, клонирования, форматирования дисков. Вообщем практически все что нужно для базовой работы с ними.
1. TestDisk
TestDisk позволяет восстанавливать загрузочные разделы, удаленные разделы, фиксировать поврежденные таблицы разделов и восстанавливать данные, а также создавать копии файлов с удаленных/недоступных разделов.
Примечание: PhotoRec ето связанное с TestDisk приложением. С его помощью возможно восстановить данные в памяти цифровой камеры на жестких дисках и компакт-дисках. Кроме того можно восстановить основные форматы изображений, аудиофайлы, текстовые документы, HTML-файлы и различные архивы.
При запуске TestDisk предоставляется список разделов жесткого диска, с которыми можно работать. Выбор доступных действий, осуществляемых в разделах, включает: анализ для корректировки структуры (и последующее восстановление, в случае обнаружения проблемы); изменение дисковой геометрии; удаление всех данных в таблице разделов; восстановление загрузочного раздела; перечисление и копирование файлов; восстановление удаленных файлов; создание снапшота раздела.
2. EaseUS Partition Master
EaseUS Partition Master — инструмент для работы с разделами жесткого диска. Он позволяет создавать, перемещать, объединять, разделять, форматировать, изменяя их размер и расположение без потери данных. Также помогает восстанавливать удаленные или потерянные данные, проверять разделы, перемещать ОС на другой HDD/SSD и т.д.
Слева представлен перечень операций, которые можно выполнить с выбранным разделом.
3. WinDirStat
Бесплатная программа WinDirStat проводит анализ использованного места на диске. Демонстрирует, как данные распределяются и какие из них занимают больше места.
Клик по полю в диаграмме выведет на экран рассматриваемый файл в структурном виде.
После загрузки WinDirStat и выбора дисков для анализа, программа сканирует дерево каталога и предоставляет статистику в таких вариантах: список каталогов; карта каталогов; список расширений.
4. Clonezilla
Clonezilla создает образ диска с инструментом клонирования, который также упакован с Parted Magic и первоначально доступен, как автономный инструмент. Представлен в двух версиях: Clonezilla Live и Clonezilla SE (Server Edition).
Clonezilla Live является загрузочным дистрибутивом Linux, позволяющим клонировать отдельные устройства.
Clonezilla SE — это пакет, который устанавливается на дистрибутиве Linux. Он используется для одновременного клонирования множества компьютеров по сети.
5. OSFMount
Использование данной утилиты дает возможность монтировать ранее сделанные образы дисков и представлять их в виде виртуальных приводов, непосредственно просмотривая сами данные. OSFMount поддерживает файлы образов, такие как: DD, ISO, BIN, IMG, DD, 00n, NRG, SDI, AFF, AFM, AFD и VMDK.
Дополнительная функция OSFMount — создание RAM-дисков, находящихся в оперативной памяти компьютера, что существенно ускоряет работу с ними. Для запуска процесса нужно перейти в File > Mount new virtual disk.
6. Defraggler
Defraggler — бесплатная программа для дефрагментации жесткого диска, которая способствует увеличению его скорости и срока службы. Особенностью программы является возможность дефрагментации также и отдельных файлов.
Поддерживает файловые системы NTFS, FAT32 и exFAT.
7. SSDLife
SSDLife — проводит диагностику твердотельного диска, выводит на экран информацию о его состоянии и оценивает предполагаемый срок службы. Поддерживает удаленный мониторинг, управляет уровнем производительности на некоторых моделях жестких дисков.
Благодаря контролю износа SSD можно повысить уровень безопасности данных, вовремя выявлять проблемы. На основе анализа программа делает вывод насколько часто используется твердотельный диск.
8. Darik’s Boot And Nuke (DBAN)
Довольно популярная бесплатная утилита DBAN, применяется для очистки жестких дисков.
В DBAN два основных режима: интерактивный (interactive mode) и автоматический (аutomatic mode). Интерактивный режим позволяет подготовить диск к удалнию данных и выбирать необходимые опции стирания. Автоматический режим очищает все обнаруженные диски.
9. HD Tune
Утилита HD Tune предназначена для работы с жестким диском и SSD. Измеряет уровень чтения-записи HDD/SSD, сканирует ошибки, проверяет состояние диска и выводит на экран информацию о нем.
При запуске приложения, нужно выбрать диск из выпадающего списка и перейти к надлежащей вкладке, чтобы просмотреть информацию.
10. VeraCrypt
VeraCrypt — бесплатное приложение для шифрования с открытым исходным кодом. Используется шифрование на лету.
Проект VeraCrypt создался на основе TrueCrypt с целью усиления методов защиты ключей шифрования.
11. CrystalDiskInfo
CrystalDiskInfo отображает состояние жестких дисков, поддерживающих технологию S.M.A.R.T. Утилита проводит мониторинг, оценивает общее состояние и отображает детальную информацию о жестких дисках (версия прошивки, серийный номер, стандарт, интерфейс, общее время работы и т. д.). У CrystalDiskInfo есть поддержка внешних жестких дисков.
В верхней панели на экране отображаются все активные жесткие диски. Щелчок по каждому из них показывает информацию. Иконки Health Status и Temperature меняют цвет в зависимости от значения.
12. Recuva
Утилита Recuva служит для восстановления случайно удаленных или потерянных файлов. Она сканирует нужный носитель информации, после чего выводит на экран список удаленных файлов. Каждый файл имеет свои параметры (имя, тип, путь, вероятность восстановления, состояние).
Необходимые файлы определяются с помощью функции предпросмотра и отмечаются флажками. Результат поиска можно отсортировать по типу (графика, музыка, документы, видео, архивы) и сразу просмотреть содержимое.
13. TreeSize
Программа TreeSize показывает дерево находящихся на жестком диске директорий с предоставлением информации об их размерах, а также проводит анализ использования дискового пространства.
Размеры папок выводятся на экран от самых больших до самых маленьких. Таким образом становится понятно, какие папки занимают большую часть места.
Примечание: При наличии Defraggler, Recuva и TreeSize, можно инициировать функции Defraggler и Recuva для определенной папки непосредственно из TreeSize — все три приложения эффективно интегрируются.
14. HDDScan
HDDScan — утилита диагностики жесткого диска, используется для тестирования накопителей информации (HDD, RAID, Flash) с целью выявления ошибок. Просматривает S.M.A.R.T. атрибуты, выводит показания датчиков температуры жестких дисков в панель задач и выполняет сравнительный тест чтения-записи.
HDDScan предназначена для тестирования накопителей SATA, IDE, SCSI, USB, FifeWire (IEEE 1394).
15. Disk2vhd
Бесплатная утилита Disk2vhd преобразует действующую физический диск в виртуальный Virtual Hard Disk (VHD) для платформы Microsoft Hyper-V. Причем, VHD-образ можно создавать прямо с запущенной операционной системы.
Disk2vhd создает один VHD-файл для каждого диска с избранными томами, сохраняя информацию о разделах диска и копируя только те данные, которые относятся к выбранному тому.
16. NTFSWalker
Портативная утилита NTFSWalker позволяет проводить анализ всех записей (включая и удаленные данные) в главной файловой таблице MFT диска NTFS.
Наличие собственных драйверов NTFS дает возможность просматривать файловую структуру без помощи Windows на любых носителях чтения компьютера. К просмотру доступны удаленные файлы, обычные файлы, а также подробные атрибуты для каждого файла.
17. GParted
GParted — редактор дисковых разделов с открытым исходным кодом. Осуществляет эффективное и безопасное управление разделами (создание, удаление, изменение размера, перемещение, копирование, проверка) без потери данных.
GParted позволяет создавать таблицы разделов (MS-DOS или GPT), включать, отключать и изменять атрибуты, выравнивать разделы, восстанавливать данные с поврежденных разделов и многое другое.
18. SpeedFan
Компьютерная программа SpeedFan следит за показателями датчиков материнской платы, видеокарты и жёстких дисков, с возможностью регулирования скорости вращения установленных вентиляторов. Есть возможность проводить автоматическую и ручную регулировку.
SpeedFan работает с жесткими дисками с интерфейсом SATA, EIDE и SCSI.
19. MyDefrag
MyDefrag — бесплатный дисковой дефрагментатор, который используется для упорядочивания данных, размещенных на жестких дисках, дискетах, дисках USB и картах памяти.
У программы есть удобная функция работы в режиме скринсейвера, в результате чего дефрагментация будет производится во время, назначенное для запуска хранителя экрана. MyDefrag также позволяет создавать или настраивать собственные сценарии.
20. DiskCryptor
С помощью шифровальной программы DiskCryptor с открытым исходным кодом, можно полностью зашифровать диск (все дисковые разделы, включая системный).
У DiskCryptor довольно высокая производительность — это один из самых быстрых драйверов шифрования дисковых томов. Программа поддерживает FAT12, FAT16, FAT32, NTFS и exFAT файловые системы, позволяя шифровать внутренние или внешние диски.
Отказ от автоматических обновлений Windows
Частый провокатор активности процесса System с нагрузкой на жесткий диск или процессор – получение и установка обновлений Windows. System в содружестве с активными процессами Защитника Windows Antimalware Service Executable и установки обновлений Windows Modules Installer Worker может полностью парализовать работу компьютера. Чтобы поглотить все системные ресурсы, этой троице иногда даже не нужно активности сторонних пользовательских программ. В этом случае можно отказаться от обновлений системы в автоматическом режиме и взять этот процесс полностью под свой контроль. Необходимо будет периодически, например, на ночь оставлять компьютер включенным и вручную запускать поиск и установку системных обновлений.
В системе Windows 8.1 автоматические обновления отключаются в Центре обновления внутри панели управления.
Там же осуществляется запуск поиска и установки обновлений вручную.
В Windows 10 возможность полного отказа от установки обновлений, присутствующая в ранних версиях системы, упразднена, а вместо нее пользователи получили альтернативу в виде отложения на время обновлений, не связанных с безопасностью.
Полностью отказаться от обновлений Windows 10 можно путем отключения системной службы Центра обновления Windows. Выбираем ее в оснастке «Службы».
Останавливаем, отключаем, применяем изменения.
Диспетчер задач
Диагностику можно провести посредством «Диспетчера задач». Необходимо открыть соответствующее окно любым доступным способом и перейти во вкладку «Процессы».
- Запустить «Диспетчер задач» через меню «Пуск», «Панель задач» или c помощью набора Ctrl + Shift + Esc.
- Открыть раздел «Процессы».
- Включить сортировку столбика «Диск».
- Найти процессы, больше всего нагружающие жесткий диск.
Если процесс System грузит диск на 100 процентов в Windows 10, выявить конкретную причину появления неисправности не удастся.
Можно воспользоваться графической сводкой, наглядно показывающей степень нагрузки носителя в режиме реального времени. График находится в меню «Производительность».
Гибридные тесты
самая вкусная часть:
(внимание! Ошибётесь буквой диска — останетесь без данных)
Во время теста мы видим что-то вроде такого:
В квадратных скобках — цифры IOPS'ов. Но радоваться рано — ведь нас интересует latency.
На выходе (по Ctrl-C, либо по окончании) мы получим примерно вот такое:
^C
fio: terminating on signal 2
Нас из этого интересует (в минимальном случае) следующее:
read: iops=3526 clat=9063.18 (usec), то есть 9мс.
write: iops=2657 clat=12028.23
Не путайте slat и clat. slat — это время отправки запроса (т.е. производительность дискового стека линукса), а clat — это complete latency, то есть та latency, о которой мы говорили. Легко видеть, что чтение явно производительнее записи, да и глубину я указал чрезмерную.
В том же самом примере я снижаю iodepth до 16/16 и получаю:
read 6548 iops, 2432.79usec = 2.4ms
write 5301 iops, 3005.13usec = 3ms
Очевидно, что глубина в 64 (32+32) оказалась перебором, да таким, что итоговая производительность даже упала. Глубина 32 куда более подходящий вариант для теста.
В статье рассмотрено проявление наиболее частой неприятности в Windows 10, из-за которой система буквально останавливается. Запущенный Диспетчер задач сигнализирует о том, что процесс System нагружает диск до 100%:
Какой процесс нагружает жёсткий диск? Узнаем через Process Explorer.
И здесь, кстати, по умолчанию тоже выдаётся только первостепенная информация. Расширим информативность окна утилиты. У меня на английском.
- View — Select Columns…
- Ищем вкладку Процесс ввода/вывода (Process I/O)
- Выбираем пункты:
Также соглашаемся. Информация по работе с объёмами данных на процесс отображается в привычном для пользователя исчислении. Сортировать процессы по занятости можно по примеру Диспетчера, щёлкая по шапке колонок.
Руку на отсечение — это обновления
Первое с чего стоит начать, когда Windows начала безбожно тормозить, проверить: не устанавливаются ли прямо сейчас обновления? Windows 10 славна тем, что бросает на это все сетевые и системные ресурсы, попирая права остальных процессов. В этом случае либо стоит ничего не предпринимать, предоставив системе довести дело до конца, либо ограничить (а порой и вовсе отменить) получение обновлений. Но в любом случае продолжайте далее следовать инструкциям.
Отключим SuperFetch
Древняя уже функция (в Windows XP её звали Prefetch), призванная ускорять самые необходимые для запуска и работы службы. Функция интеллектуальна и настраивается под нужды конкретного пользователя. Смысл SuperFetch — загружать наиболее часто используемые приложения в память заранее. Функция полезная несомненно, но, как и многое в Windows, бывает что «нет-нет да и да». Отключите её прямо сейчас. В консоли команд от имени администратора введите команду
Если консоль вернула ошибку, введите такую:
Подождите пару минут и проверьте работу Windows. Если в течение сеанса тормоза себя не проявили, попробуйте отключить SuperFetch изначально. Для этого в редакторе реестра
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
справа обнаружим параметр EnableSuperfetch и сменим значение с 3 на 0:
Если параметра нет, создайте его вручную и отключите значением 0. Перезагрузите Windows и проверьте работу системы. Если что-то не устроило, параметру EnableSuperfetch верните значение 3. Проделанное в реестре можно продублировать «твиком» по службам. В командной строке от имени админа введите команду на отключение автозапуска служб:
Опять же, всё можно отыграть обратно командой оттуда же:
Далее будем следовать традиционным методам решения проблемы с загрузкой диска.
System нагружает диск из-за … диска.
Прогоните диск на наличие ошибок. Не помешает точно, попутно избавитесь от остальных потенциальных проблем. В строке cmd от имени администратора вводим команду
Учтите, что с указанными флагами утилита проверки диска сможет приступить к работе только после перезагрузки.
Процесс System
Процесс System – важный компонент Windows, его исполняемый файл ntoskrnl.exe является файлом ядра операционной системы. System отвечает за множество системных функций. Его нельзя завершить, без него Windows попросту не будет работать. Для этого процесса даже недоступны опции смены приоритета в диспетчере задач системы.
Читайте также: