Корректировка скорости работы SSD под Windows 7

Несмотря на выход Windows 8, Windows 7 все еще актуальна как никогда, и работать с ней мы будем еще долго. Недавно ко мне обратился знакомый с жалобой, что его ось на ноутбуке стала работать крайне медленно, несмотря на то что он заменил обычный HDD на SSD. После небольшого опроса выяснилось, что тормоза проявились не сразу, а через некоторое время использования SSD диска и ось не перустанавливалась на новом SSD а была перенесена с использованием Acronis True Image.
Первичный анализ производительности системы показал, что bottleneck скрывается как раз в дисковой системе, где средняя очередь диска на idle состоянии находится в районе 7-8, с пиками до 20 при работающих приложениях. И это при рекомендованном максимуме в 2. Конечно при таких значениях будут наблюдаться жуткие тормоза в работе ОС.
Детальное изучение настроек системы показало, что при переносе операционной системы на новый диск, она не определила что находится на SSD носителе, и настройки оптимизации системы остались для варианта с HDD. Интересно то, что не все настройки остались неизменными. Например система автоматически включила передачу TRIM команд на накопитель. Корень же проблемы скрывался во включенных службах Prefetcher и Superfetch, которые оптимальны для HDD но совершенно не нужны для SSD. Пришлось это исправить.

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

2. Не лишним будет проверка работает ли TRIM на самом носителе. Для этого можно использовать trimcheck, работающий прозрачно и просто. Запускаем его первый раз с раздела того SSD диска который требуется проверить, потом ждем примерно 20 секунд и запускаем его еще раз. Смотрим на результат. Если TRIM на SSD включен, передаем управление операционной системой на него, если  TRIM на SSD недоступен, оставляем управление на совести операционной системы.

3. Проверяем включена ли передача TRIM команд SSD носителю. Для этого вызываем cmd с повышенными привилегиями и выполняем
fsutil behavior query disabledeletenotify
Если результатом будет 0 - то операции TRIM передаются на выполнение контроллеру SSD, если 1 - то операционная система сама выполняет действия TRIM. Опираясь на результаты trimcheck меняем или не меняем эту настройку. Поменять ее можно так:
fsutil behavior set disabledeletenotify 0 или 1 в соответствии с тем, как нам нужно этот параметр выставить.

4. Идем в оснастку служб и отключаем службу Superfetch.

5. Запускаем редактор реестра и выставляем в 0 значение следующих ключей: HKLM_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters\EnablePrefetcher HKLM_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters\EnableSuperfetch

После перезагрузки средняя очередь диска вернулась в околонулевое состояние в idle и пиковыми в 2-2,5 при параллельно запущенных приложениях. Хоть пиковые нагрузки все равно на грани рекомендуемого максимума, они очень коротки, и в таком виде система работает очень шустро.

Хочу заметить что в Windows 8 все эти вещи проделывать не нужно и проблему идентификации SSD решили целиком и полностью. Система сервисного обслуживания дисков была коренным образом переработана, и вместо дефрагментации была введена оптимизация работы разделов, учитывающая тип носителя. Достаточно настроить удобную для пользователя периодичность проводимой оптимизации и радоваться жизни.

Поделиться

Опубликовать в Facebook
Опубликовать в LiveJournal

Добавить комментарий

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

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>