Оптимизация Windows для использования SSD диска: мифы и реальность

Источник: habrahabr
alan008

Когда весь интернет пестрит холиварами на тему "SSD ненадежны" и "SSD настолько быстрые, что я больше никогда не буду работать с HDD", думаю самое время внести немного ясности в то море противоречевой информации о самих SSD и о настройке Windows для работы с ними.

Кто заинтересовался, прошу под кат.


Вот я и стал счастливым обладателем этого чуда современной техники: OCZ Vertex 3 120 Gb. Сначала я загрузился в старой системе и обновил прошивку SSD, т.к. программа прошивки от OCZ не позволяет обновлять прошивку, когда диск является системным. Думаю, обновление прошивки - это первое, что нужно сделать после приобретения SSD, т.к. как показывает практика, ошибок в микропрограммах предостаточно, особенно в новых моделях SSD (по сравнению с которыми Vertex 3 уже и не самый новый :) ).
Далее я решил поставить на SSD чистую систему. Установка Windows 7 с флешки (USB 2.0) заняла где-то минут 10. Вау, подумал я, раньше установка некоторых тяжелых программ шла гораздо дольше, не говоря уж об операционной системе!

С этого момента можно было просто начать пользоваться супер быстрым диском и радоваться жизни, но меня не покидало параноидальное чувство, что мой SSD быстро сломается из-за частых перезаписей. Действительно, ограниченное количество циклов перезаписи SSD - это пока еще не миф. Но все уже знают, что даже ресурс в 10000 перезаписей - это очень и очень много при объеме диска в 120 Gb. В зависимости от контроллера SSD также может применять различные внутренние технологии выравнивания износа, релокации данных из одного места в другое, сжатия записываемых данных (актуально для контроллеров SandForce) - диск старается изо всех сил, чтобы работать быстро и долго :) Как либо повлиять на эту внутреннюю логику практически невозможно (разве что обновлением прошивки), поэтому при выборе SSD под какие-то особые задачи нужно искать информацию по логике работы его контроллера.

Для тех, кто особо заботится о диске и бережет его, в интернете имеется масса советов, как снизить нагрузку на диск по записи со стороны операционной системы. Эти советы можно разделить на полезные, вредные и спорные.

1) Перенос каталога для временных файлов на обычный (HDD) диск

Пути к каталогам TEMP находятся тут:
Компьютер - Свойства - Дополнительные параметры системы - вкладка Дополнительно - Переменные среды - TMP и TEMP (для текущего пользователя и общие).

Кто-то советует переносить Temp на RAMDisk, но это скорее вредный совет. Связано это с тем, что некоторые программы (в т.ч. апдейты) пишут данные во временный каталог, затем отправляют компьютер в ребут, а затем ожидают, что данные никуда не делись за это время. А RAMDisk по умолчанию очищается при перезагрузке. Но даже если ваш RAMDisk поддерживает сохранение данных в образ и восстановление после перезагрузки, это тоже не панацея, т.к. возможна ситуация, при которой служба RAMDisk'а просто не успеет запуститься и проинициализироваться к тому моменту, как программы начнут обращаться к временному каталогу.

2) Отключение гибернации

Это довольно странный совет. С одной стороны, отключение гибернации позволяет избавиться от файла hiberfil.sys, размер которого равен объему оперативной памяти, а место на SSD нам особенно дорого. Также при каждой гибернации на SSD пишется относительно большой объем данных, что "ведет к износу и бла-бла-бла-бла"… Апологеты данного совета пишут мол "зачем вам гибернация, ведь с SSD система и так стартует за несколько секунд". Но лично мне гибернация нужна не ради быстрого старта, а чтобы не закрывать (и не открывать потом заново) чертову кучу приложений, которыми я постоянно пользуюсь, так что целесообразность отключения гибернации находится под большим вопросом.
Я с радостью переместил бы файл hiberfil.sys на другой диск (на HDD), но в силу системных ограничений сделать это невозможно.

3) Отключение защиты системы.

Компьютер - Свойства - Защита системы - вкладка Защита системы - Настроить - Отключить защиту системы.
Сделать это можно, если вы пользуетесь хоть какими-то другими средствами резервного копирования системы. В противном случае есть большой риск получить нерабочую систему в случае каких-то сбоев.

4) Отключение файла подкачки.

Этот совет вызывает самые бурные споры и даже от Microsoft не удалось добиться внятных разъяснений.
Я считаю данный совет вредным и рекомендую переносить файл подкачки на обычный (HDD) диск (но ни в коем случае не на RAMDisk :), почему, даже пояснять не буду - эту информацию легко найти в сети).
Полностью отключать файл подкачки вредно со следующей точки зрения. Некоторые "шибко умные" программы (например, MS SQL Server) резервируют себе виртуальное адресное пространство в очень больших количествах (про запас). Зарезервированная память не показывается в диспетчере задач, ее можно увидеть например в Process Explorer, включив отображение колонки "Process Memory - Virtual Size". При наличии файла подкачки система резервирует память в нем (т.е. некий диапазон объявляется недоступным для использования другими приложениями). При отсутствии файла подкачки резервирование происходит непосредственно в оперативной памяти. Если кто-то сможет прояснить в комментариях (со ссылками на достоверные источники), как именно это влияет на работу других программ и производительность, буду очень благодарен.

5) Отключение Prefetch, ReadyBoot, и Superfetch.

5.1. Prefetch - это технология ускорения загрузки системы и приложений за счет упреждающего чтения данных с диска. Она актуальна только для медленных носителей. Поскольку с Random reads у SSD все в порядке, Prefetch можно безболезненно отключать.
Служебные данные Prefetcher хранит в C:\Windows\Prefetch.
Для отключения Prefetch нужно изменить на 0 значение параметра Enable Prefetcher в ключе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters.

5.2 ReadyBoot (не путать с ReadyBoost) - это дополнение к Prefetch, которое логгирует процесс загрузки для определения порядка и состава требуемых при загрузке данных и на основе этих логов подготавливает требуемые данные для ускорения процесса загрузки.
Сами логи лежат в C:\Windows\Prefetch\ReadyBoot. Отключение Prefetcher'а не приводит к остановке записи этих логов. Для остановки логгирования необходимо установить в 0 параметр Start ключа HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger\ReadyBoot
Отключение ReadyBoot в целом является относительно бесполезным советом, т.к. никакого прироста по скорости это не даст, разве чуть-чуть сократит записи на диск, т.к. не будут вестись логи загрузки (которые довольно маленькие, порядка нескольких мегабайт).

5.3 Superfetch - это технология предзагрузки часто исполняемых программ в оперативную память. Отключать его не имеет смысла, т.к. Superfetch не приводит к записи на диск.

6) Отключение индексации

В свойствах диска можно убрать галку "Разрешить индексировать содержимое файлов на этом диске в дополнение к свойствам файлов". Это может снизить размер индексов, которые строит индексатор Windows, т.е. снизить нагрузку по записи на SSD.
Сами индексы лежат в C:\ProgramData\Microsoft\Search
Также можно полноcтью отключить индексатор, отключив службу Windows Search.

7) Перенос кэшей приложений на RAMDisk.

Под приложениями здесь имеются в виду в основном браузеры, т.к. именно они активно используют кэш посещенных страниц. Переносить этот кэш на HDD было бы довольно глупо, т.к. нам же нужно ускорение! А поэтому вполне хорошим решением является вынесение этих кэшей на небольшой (например, 1 Гб) RAMDisk (лично я использую AMD Radeon RAMDisk, правда несмотря на громкое название это продукт фирмы Dataram).
У каждого браузера свой способ указания местоположения кэша, эту информацию легко найти в сети.

8) Отключение usn журнала файловой системы NTFS.

Один из спорных и противоречивых советов. С одной стороны, у меня не получилось отключить usn журнал для системного раздела. Также usn журнал используется некоторыми программами (напр., Everything) для отслеживания измененных файлов. Если кто-то может прокомментировать ситуацию насчет полезности отключения usn, буду очень благодарен.

UPD 9) Отключение дефрагментации диска

Windows 7 должна сама отключать дефрагментацию для SSD-дисков, поэтому ничего настраивать руками не нужно.

Выводы:
1. Даже если не прибегать ни к каким советам по конфигурированию системы для работы с SSD, Windows 7 будет работать на SSD чуть менее чем превосходно.
2. Некоторые советы позволят вам снизить количество записей на SSD-диск, что может продлить и без того относительно долгий срок его работы.
3. Многие советы позволят вам изменить некоторые параметры, не убив при этом производительность системы, но и не давая никакой практической пользы :)

Другие идеи и советы крайне приветствуются! Надеюсь, вместе мы сможет разграничить их на полезные и вредные :)


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=35437