Pull to refresh

Оптимизация Windows для использования SSD на лаптопе

Reading time 8 min
Views 100K
Опубликовал сначала в своем блоге как ответ на вот этот топик. Спасибо доброму хабравчанину borisko, подарившему возможность перенести сюда.

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


С тех пор как приобрел IBM Lenovo ThinkPad X61s (это такой маленький и удобненький лаптопик с диагональю 12 дюймов), всегда хотел его использовать в автобусе, пока еду на работу — ну и на обратном пути тоже. Однако в автобусе так трясет, что за жесткий диск становится просто страшно — его там покрошит в мелкий порошок. В связи с чем был приобретен Solid State Disk (примерно то же, что и обычная флашка, только по взрослому) фирмы OCZ, который (на тот момент) стоил безумно дешево и давал возможность попробовать все прелести SSD на собственном опыте. Был приобретен экземпляр OCZ Solid Series OCZSSD2-1SLD30G 2.5" 30GB SATA II MLC Internal Solid state disk (SSD) за фантастические по тем временам 220 долларов (все остальное начиналось с 400) и торжественно воткнут в вышеупомянутый лаптоп. Поскольку диск этот был одним из первых, так называемого первого поколения, то производительность на нем до сих пор оставляет желать лучшего. Но кое-что для улучшения как скорости работы, так и продления жизни диска, можно было сделать.



Многие твики для Vista так же прекрасно работают на Windows 7.Кстати, при установке семерки сразу на SSD многие настройки из приведенных ниже сразу оказались в нужных положениях.

1. Отключить prefetch в Windows XP и оба prefetch/superfetch в Windows Vista. Prefetch/superfecth используется Windows для того, чтобы кэшировать информацию о файлах, необходимых для запуска программ. Подробнее можно прочитать в статье Руссиновича тут. Оптимизация работает для обычного диска, но для SSD не имеет смысла, так как скорость доступа к разным частям диска одинакова, плюс prefetching добавляет работы системе (собственно сам prefetching overhead, который только замедляет работу).

XP:

Hkey_local_machine\SYSTEM\CurrentControlSet \Control\Session Manager\Memory Management\PrefetchParameters… нажать правой кнопкой мыши на Enableprefetcher… выбрать modify, поменять 3 на 0, подтвердить нажав OK

Vista:
prefetch: Hkey_local_machine\SYSTEM\CurrentControlSet \Control\Session Manager\Memory Management\PrefetchParameters… нажать правой кнопкой мыши на Enableprefetcher… ыбрать modify, поменять 3 на 0, подтвердить нажав OK

superfetch: Hkey_local_machine\SYSTEM\CurrentControlSet \Control\Session Manager\Memory Management\PrefetchParameters… нажать правой кнопкой мыши на EnableSuperfetch… ыбрать modify, поменять 3 на 0, подтвердить нажав OK

2. Поменять некоторые параметры «этажом выше», в ветке Hkey_local_machine\SYSTEM\CurrentControlSet \Control\Session Manager\Memory Management (XP/Vista):

ClearPageFileAtShutdown — изменить с 0 на 1 (у меня на Windows XP производит противоположный эффект, сильно замедляет shutdown, поэтому лично я не рекомендую трогать этот флаг)
Как было выяснено путем несложного поиска в Гугле это вредный совет — он замедляет процесс shutdown-а компьютера и вдобавок производит лишний проход перезаписывая ячейки, занятые неактивными страницами page-файла.


LargeSystemСache — изменить с 0 на 1 — по поводу этого параметра ничего выяснить не удалось, продолжаем работу.

SecondLevelDataCache — изменить с 0 на размер кэша второго уровня на вашем конкретном компьютере, убедитесь, что вы меняете десятичное значение. Что это такое и зачем это надо можно посмотреть на MSDN, для современных систем не должно быть актуально (разве что вы используете какой-то неизвестный процессор).

3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem (XP/Vista):


NtfsDisable8dot3nameCreation — изменить с 0 на 1. Если такого ключа нет, то его нужно создать (DWORD) или можно выполнить команду из командной строки: fsutil behavior set disable8dot3 1 — отключает создание классических имен вида 8.3 для совместимости с FAT16. Имеет смысл оставлять если у вас до сих пор бегают какие-то древние DOS-программы.

NtfsMemoryUsage — изменить значение на 2. Если такого ключа нет, то его нужно создать (DWORD). Эта настройка увеличивает пул страниц, доступных для кэширования файловых операций чтения/записи. Особенно помогает любителям запускать сразу дофига приложений или открывать десятки вкладок в браузере.

(только XP): HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction — поменять Y на N. Эта настройка заставляет систему дополнительно оптимизировать область загрузки на диске (перетащить файлы один к другому), что не имеет особого смысла на SSD.

3. Отключить Indexing на диске через Administrative Tools -> Services. Если у вас уже установлен Live desktop (поиск по локальной машине от Microsoft) — мои соболезнования, но я бы попытался его снести. Аналогично Google Desktop. Вообще любые программы которые висят в памяти и что-то пишут на диск рекомендуется отключить. Особо отважные могут так же отключить либо не устанавливать резидентный антивирус.

4. Включить кэширование записи на диск через Hardware или Device manager -> Disk Drives -> ваш SSD -> Properties -> поставить галочки в полях Enable write caching on disk и Enable advanced performance (если есть это поле).

Поскольку запись — самая медленная операция для SSD, а чтение — самая быстрая, то есть смысл включать все возможные варианты кэширования записи и отключать кэширование чтения. Эта настройка будет выставлена по умолчанию если вы установили систему сразу на SSD.

5. Отключить swap-file. Сделать это можно через System Properties -> Advanced Tab -> Settings в рамке Performance. В открывшемся окне Performance Options выбрать таб Advanced, в самом низу будет в рамке Virtual Memory нажать Change, выбрать No Paging File, нажать Set, выбраться из лабиринта окон нажимая Ok и перезагрузить машину.

Этот пункт поначалу показался мне самым спорным. Однако, опробовав его и на Windows XP и на Windows 7 могу точно сказать что на моем лаптопе с 3 гигабайтами памяти единственная программа, которая падает от недостатка свопа — это GIMP. Visual Studio 2010 под Windows 7 ругается на недостаток памяти, но все равно работает, хоть и медленно.

Для ленивых — в том же разделе Performance Options можно выбрать Optimize for performance, в первой вкладке (Visual Effects). Система сама попытается подстроится под ваше железо. Лично я того же (или лучшего) эффекта достигаю регулируя те же самые настройки вручную. Но я «айтишнег», мне так нравится :)

6. Отключить hibernation. Основная причина для отключения — это сохранение ресурса диска: поскольку hibernation file лежит на одном и том же физическом месте, то ячейки используемые под его хранение вырабатывают свой ресурс быстрее. Для профилактики можно раз в месяц удалять файл, проводить дефрагментацию (ее все равно не рекомендуется проводить чаще раза в два-три месяца для SSD дисков) и пересоздавать файл. Почти наверняка он появится в новом месте, чего и требовалось.

7. Для владельцев Windows XP существует утилита RAMDisk, крайне рекомендованная к употреблению. Из моих трех гигабайт под RAM disk был выделен один (на тот момент, когда на лаптопе еще была установлена XP), на котором я создал своп на 768МБ и перенаправил туда кэш браузеров Internet Explorer и Firefox. Таким образом почти все временные файлы лежали на виртуальном диске и благополучно херились при каждом перезапуске.

К сожалению на данный момент сайт с программой недоступен, поэтому буду рад за ссылки на похожие (и желательно проверенные) продукты в комментариях.

В любом случае, если вам удалось загрузить какую-либо утилиту для создания виртуального диска, перенаправить кэш браузера можно следующим образом:

Internet Explorer 7: Tools -> рамка Browsing Settings -> Settings -> Move Folder.

Firefox: открыть пустую вкладку, набрать about:config, нажать Enter, найти (если нет — создать) ключ browser.cache.disk.parent_directory, в качестве значения указать путь к родительской папке, где будет лежать ff_cache.Перезапустить браузер. Кстати, для Firefox есть еще один твик, который одновременно с вышеперечисленными радостями еще и ускоряет скорость работы браузера. Надо перейти в Tools->Options->Privacy и отключить редко используемые пункты в этом меню. Для каждого из них (например keep my history for..) Firefox создает отдельные записи для каждой страницы на которую вы зашли сразу в нескольких таблицах SQLite. По информации с форума владельцев eeePC отключение этих опций значительно ускоряет процесс брожения по интернету.

Opera: opera:config#DiskCache|CacheDocs или в файле operadef6.ini в секции User Prefs выставить Cache Directory4=X:\OperaCache

Аналогичным образом есть смысл настроить TEMP фолдер для самой Windows. Кликаем правой кнопкой мыши на My Computer, выбираем Properties->Advanced->Environment Variables — и в разделе User Variables выставляем для нужных фолдеров пути на виртуальный диск.

8. Если вы не используете специализированных программ для дифференцированного бэкапа, то можно отключить last access time stamp (специальная маркировка, указывающая когда файл открывали последний раз). Из командной строки это можно сделать командой fsutil behavior set disablelastaccess 1 (вернуть обратно можно выполнив ту же команду и поменяв единичку на нолик).

9. Отключить журналирование в NTFS. Решать вам, стоит это делать или нет, выполняется из командной строки: fsutil usn deletejournal /d

10. Использовать утилиту от Microsoft под названием dskcache. Подробнее о том что она делает и зачем нужна можно прочитать тут: http://support.microsoft.com/kb/Q811392

11. Если вы не используете этот функционал — отключите Windows System Restore.

12. Если вы используете почтовые клиенты (Outlook, Thunderbird) — постарайтесь переложить файлы или папки с файлами почты на не-SSD диски. Если же у вас в системе только один диск — рекомендую поступать так же, как и со свопом, периодически перенося файл в новое место на диске.

13. Актуально только для Vista — в Windows Vista/Windows 7 дефрагментация включена по умолчанию (из моего опыта — даже при установке на SSD). В принципе SSD диски можно не дефрагментировать вообще (поскольку скорость чтения из разных частей диска одинакова). Однако тут не все так просто. Некоторые контроллеры нарочно фрагментируют файлы с целью распределения нагрузки на все ячейки, некоторые этого не делают, поэтому однозначный совет дать сложно — зависит от производителя диска и производителя контроллера. «В среднем по больнице» рекомендуется дефрагментировать диск в не чаще раза в два месяца, при условии что свободного места на нем менее 40% и более 60% файлов так или иначе перезаписываются файловой системой (т.е. если у вас, например, 60% от занятого объема — лог файлы, которые постоянно обновляются). Это дает возможность избежать «переутомления» у тех ячеек, которые постоянно заняты под изменяющиеся файлы.

14. По информации из разных источников (можно посмотреть в статье на AnandTech, ссылка ниже) настоящей дефрагментацией для SSD является низкоуровневое форматирование. Процесс форматирования возвращает все ячейки в исходное состояние и позволяет добится того же уровня производительности, как и на новом диске. Информация непроверенная (не так много людей жаждут форматировать свои диски на низком уровне), поэтому do at your own risk.
Ссылки для дополнительного чтения на форуме OCZ: раз, два, три и на форуме владельцев eeePC: раз.

Информация сильно пересекается, но есть и различия.

UPD: Дополнительная информация:

на Anandtech (я сразу хотел найти именно эту статью, но удалось отыскать ее только сейчас) — разбор технологии SSD, анализ дисков фирмы OCZ и сравнение с серией Intel X-25, в том числе и почему SSD так непривычно (по сравнению с обычными дисками) себя ведет. Все в деталях и подробностях, включая особенности контроллеров для SSD. Статья мартовская, но материал все равно актуален: www.anandtech.com/storage/showdoc.aspx?i=3531&p=1 — если будет интерес, то с удовольствием переведу на русский.

Из комментариев: майский пост в блоге разработчиков Windows 7 (есть небольшой кусок полезностей про SSD, но на данный момент не соответствующий действительности для пре-релизных версий): blogs.msdn.com/e7/archive/2009/05/05/support-and-q-a-for-solid-state-drives-and.aspx

UPD 2: Добавил описание настроек, спасибо комментаторам.

UPD 3: В комментариях серьезный спор по поводу переноса swap-file в RAMdisk. Можно заглянуть сюда за мнением от Microsoft Support Engineer (не много, но все же). Как вариант — из моих личных экспериментов было видно, что субъективно (т.е. точных замеров я не производил) производительность заметно возрастала. То есть по ощущениям компьютер начинал бегать значительно быстрее и шуршал диском значительно реже.

Оригинальный пост тут: http://www.bukv.net/optimizing-windows-for-using-ssd-in-a-laptop/2009/07/17/
Tags:
Hubs:
+13
Comments 99
Comments Comments 99

Articles