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

ВНИМАНИЕ! Статья ниже – заумная хрень для гиков. Если вы ждете сисек – подождите до вечера, их есть у меня.

С тех пор как приобрел IBM Lenovo ThinkPad X61p (это такой маленький и удобненький лаптопик с диагональю 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.

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, поэтому лично я не рекомендую трогать этот флаг)

LargeSystemСache – изменить с 0 на 1

SecondLevelDataCache – изменить с 0 на размер кэша второго уровня на вашем конкретном компьютере. Кстати, убедитесь, что вы меняете десятичное значение 🙂

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

NtfsDisable8dot3nameCreation – изменить с 0 на 1. Если такого ключа нет, то его нужно создать (DWORD) или можно выполнить команду из командной строки:
fsutil behavior set disable8dot3 1

NtfsMemoryUsage – изменить значение на 2. Если такого ключа нет, то его нужно создать (DWORD).

(только XP): HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction – поменять Y на N.

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

4. Включить кэширование записи на диск через hardware manager. Скриншоты, чтобы было понятнее – ниже.

ssd2_1
Windows XP
ssd2
Windows Vista/7


Поскольку запись – самая медленная операция для 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 диски можно не дефрагментировать вообще (поскольку скорость чтения из разных частей диска одинакова). Однако тут не все так просто. Некоторые контроллеры нарочно фрагментируют файлы с целью распределения нагрузки на все ячейки, некоторые этого не делают, поэтому однозначный совет дать сложно. “В среднем по больнице” рекомендуется дефрагментировать диск в среднем раз в два месяца, при условии что свободного места на нем менее 40% и более 60% файлов так или иначе перезаписываются файловой системой (т.е. если у вас, например, 60% от занятого объема – лог файлы, которые постоянно обновляются). Это дает возможность избежать “переутомления” у тех ячеек, которые постоянно заняты под изменяющиеся файлы.

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

Ссылки для дополнительного чтения на форуме OCZ: раз, два, три и на форуме владельцев eeePC: раз.

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