Руководство по SSD дискам

Что такое SSD диск?

SSD - диск, где вместо вращающихся блинов используется флеш-память.
Основное преимущество таких дисков заключается во времени доступа к данным. Если в жёстком диске для перемещения головки и поиска начала сектора требуется затратить некоторое время, то в SSD такое время близко к нулю.

Основной недостаток SSD: ограниченное число циклов перезаписи, т.е. при большом числе записей диск быстро придёт в негодность.

Для чего нужен SSD?

За счёт близкого к нулю времени доступа SSD показывает высокую производительность при случайном чтении, недостижимую никакими рейд-массивами из обычных жёстким дисков. Задержка при чтении с SSD составляет 0.05 - 0.2 мс, тогда как для обычных дисков эта величина равна 5 - 15 мс.
SSD идеально подходит для хранения клиента L2, т.к. L2 считывает данных малыми порциями из случайных мест.

Как выбрать SSD?

SSD отличаются друг от друга по следующим характеристикам:
1. Контроллер и память.
Производительность SSD определяется в первую очередь контроллером.
В бюджетных моделях контроллер может выполнять достаточное число операций чтения в секунду (порядка 1000-5000), но крайне низкое число операций записи (меньше 50), поэтому такие SSD не могут быть использованы как системные, но на них можно хранить клиент L2. Некоторые контроллеры начинают сильно тормозить при одновременной записи и чтении.
К быстрым контроллерам можно отнести: Intel (предпочительнее), Indillinx. К медленным: JMicron.
2. Тип памяти.

Память различается по принципу хранения данных: SLC (1 бит информации в 1 элементе) и MLC (2-3 бита в 1 элементе). Из-за этого диски с MLC памятью имеют больший объём при одинаковой цене, однако у MLC памяти есть недостаток: её ресурс примерно в 100 раз ниже ресурса SLC.

Чтобы выбрать SSD, необходимо решить, для каких целей он будет использоваться:

1. Только для хранения игрового клиента.
Для этих целей подходит любой SSD небольшого объёма на любом контроллере с ценой 3-4к рублей. При этом скорость SSD не имеет особого значения, т.к. основную прибавку к производительности даёт низкое время доступа, а на скорость записи вообще можно не обращаться внимания.

2. Для системы и клиента. Для этих целей подойдёт SSD типа Intel X25-M, либо Corsair серий P, N, X, F, объёмом 64-128 гбайт, цена - от 7 до 11к рублей.

При этом предполагается, что своп либо: а) отключен, б) находится на быстром харде, в) находится на SSD, но используется не очень активно вследствие большого количества памяти (6+ гигов).

3. Для системы, клиента и свопа.
Можно поставить SSD с SLC памятью типа 32GB Intel X25-E, однако под своп + л2 + систему его может просто не хватить. Цена на 64 гигабайтные модели начинается от 20к рублей.

В целом для оценки скорости SSD нужно в первую очередь смотреть на число операций в секунду (IOPS) при чтении/записи блоков небольшого размера, т.к. при типичной работе преобладают операции с небольшими фрагментами данных.

Почему ресурс SSD быстро вырабатывается?

10000 циклов перезаписи для MLC - это довольно большой ресурс, для 80-гигового диска это эквивалентно 800 терабайт записи, однако на практике ресурс диска вырабатывается на порядки быстрее. Это связано с тем, что внутренний размер блока, с которыми оперирует контроллер, много больше размера сектора, и может достигать 1 мегабайта. При операциях записи контроллер целиком стирает и записывает блок даже если изменился всего 1 бит.

Windows постоянно совершает записи на диск небольшими блоками (например, у меня она делает около 5-10 операций записи по 512 байт - 4 кбайт каждая, но в итоге это эквивалентно перезаписи от 2 до 10 мегабайт в секунду) - это различного вида журналирование, которое нельзя отключить или настроить так, чтобы записи совершались реже.

Можно ли ставить своп на SSD?

Мой ответ: да, однако при достаточном количестве памяти (4-8+ гигов). При малом количестве памяти (2 гига) более выгодным будет покупка памяти, а не SSD.

Винда сбрасывает в своп данные большими кусками (1+ мегабайт), поэтому, в отличие от журналирования, ресурс блоков расходуется более рационально.

Также Windows 7 сбрасывает в своп данные только тогда, когда это действительно нужно, а не просто от нечего делать.p

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

Как уже было сказано выше, на SSD можно записывать лишь ограниченное число раз. Если SSD используется только для хранения клиента L2, то его ресурс будет практически вечный, но если на SSD установлена система, то проблема выработки ресурса становится актуальной.

Использование описанных ниже оптимизаций позволит в 2-3 раза продлить жизнь диску. Рекомендуемая операционная система - Windows

7. Все оптимизации системы сводятся к уменьшению числа ненужных операций записи на диск и отключению бесполезных служб.

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

Подробнее про TRIM можно почитать тут.

Чтобы получить преимущество от TRIM, должны быть выполнены условия: система - Win7, диски сконфигурированы как AHCI (т.е. если RAID организован на мамке - трима не будет), дисковые драйвера - родные микрософтовские (вообще под Win7 дрова следует устанавливать только в том случае, если они автоматом не поставились или что-то криво работает).

Также стоит отметить, что максимальная производительность достигается только при режиме AHCI, поэтому если смысл включать этот режим даже если SSD - не системный диск.

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

а) Отключение SuperFetch и Prefetcher. Эта служба полезна только на офисных компьютерах с очень маленьким количеством памяти (гиг и меньше) и медленным диском. Можно отключить в сервисах, а можно командами

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters" /v EnableSuperfetch /t REG_DWORD /d 0 /f

 

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters" /v EnablePrefetcher /t REG_DWORD /d 0 /f

sc stop SysMain

sc config SysMain start= disabled

Прикрепленное изображение: monthly_03_2011/post-1-0-07462600-1299591800.png

б) Отключение журнала ReadyBoot в "Data Collector Sets\Startup Event Trace Sessions" (не знаю, как это будет звучать в русской винде) в Performance Monitor (perfmon.msc /s). Задача этой службы - наблюдение за используемыми файлами в процессе загрузки системы, предзагрузка файлов, группировка их в начале диска. На обычных хардах жизненно важна (если её отключить, то система будет грузиться поначалу быстрее, но затем всё медленнее и медленнее).

Прикрепленное изображение: monthly_03_2011/post-1-0-82169700-1299591878.png

После выполнения этих двух пунктов в папку %WinDir%\Prefetcher ничего не будет писаться.

в) Можно ещё службу ReadyBoost вырубить.

3. Отключение службы индексации, она часто пишет на диск.

sc stop WSearch

 

sc config WSearch start= disabled

4. Отключение дефрагменации (нужно отключить автоматическую дефрагментацию в свойствах диска). Для SSD она практически не имеет смысла, т.к. во внутреннем представлении данные все равно фрагментированы.

Тем не менее, фрагментация файловой системы может со временем немного снизить производительность. В отличие от обычных дисков, фрагментация крупными блоками (>=128кб) никак не влияет на скорость чтения-записи. Но если накапливается много сильно фрагментированных файлы с фрагментами меньшего размера (32кб и меньше), то скорость чтения-записи снизится, пусть и так сильно, как на обычных дисках. Это показывают графики:

Прикрепленное изображение: monthly_03_2011/post-1-0-22220300-1299591953.png

для меньшего размера есть только график последовательного чтения, но при случайном чтении результаты будут те же:

Прикрепленное изображение: monthly_03_2011/post-1-0-33831500-1299591983.png

Как один из вариантов решения такой проблемы - можно увеличить размер кластера файловой системы до 32кб.

5. Оптимизации файловой системы - отключение записи информации о времени последнего доступа к файлам

fsutil behavior set DisableLastAccess 1

6. Отключение режима сна - загрузка системы с SSD (от начала загрузки винды до окна ввода пароля) производится в течение 5 секунд, плюс SSD имеют небольшие объёмы - место лишним не бывает:

powercfg -h off

7. Можно перенести хранилище временных файлов на HDD - программы туда пишут часто, но читают редко (заменить значение переменной TEMP)

Прикрепленное изображение: monthly_03_2011/post-1-0-70793700-1299592013.png

8. Перенос кэша браузера на HDD. Например, в случае огнелиса нужно запустить его в режима редактирования профилей firefox -p и перенести профиль на HDD.

Мониторинг состояния диска

Мониторинг состояния диска основан на контроле уровне износа блоков через SMART инфу. Большинство SSD выдают только % оставшегося ресурса, который зачастую можно посмотреть только с помощью специальной утилиты с сайта производителя диска. Однако, мне повезло - мой диск выдавал подробную информацию. Мониторить можно с помощью программы SSD Life.

Ниже приведены результаты мониторинга для моего диска Corsair x128, используемого для L2, системы, фрапсов, с отключенным свопом.

Состояние диска на 18 октабря 2010 г. (5666 часов работы):

Прикрепленное изображение: monthly_03_2011/post-1-0-69223900-1299592048.png

Основные интересующий нас параметры: - D0 Average Erase Count - среднее число перезаписей блоков - 0x611 = 1553
- СD Maximum PE Count - установленное производителем максимальное число перезаписей - 0x2710 = 10000 циклов перезаписи.
Из этих значений можно сделать вывод, что диск изношен в среднем на 15%. Таким образом, он проработает ещё около 4 лет при текущей нагрузке.

Ради эксперимента я на неделю включил своп, нагрузил на неделю систему по максимуму (11 окон L2 24/7, пара окон Visual Studio, Fallout New Vegas с максимальными настройками):

Прикрепленное изображение: monthly_03_2011/post-1-0-67556100-1299592109.png

и посмотрел, что стало:

Прикрепленное изображение: monthly_03_2011/post-1-0-08409200-1299592144.png

Статистика:

Параметр Было Изменение за 9 дней
Время работы 5666 ч. +208 ч.
Среднее число перезаписей 1553 +74
Число перезаписей в час 0.274 0.356
Число операций записи (млн.) 50.11 +2.13
Число операций записи (тыс. в час) 8.84 10.24
Записано гигабайт 616.743 +36.237
Записано мегабайт в час 111 178
Прочитано гигабайт 1231.070 +63.343
Прочитано мегабайт в час 222 311

Выводы: своп, несомненно, сокращает жизнь SSD, однако не так быстро, как считают многие.

А как же пожизненная гарантия?

Многие считают, что если на диск предоставляется гарантия 2-3 года, а в некоторых случаях даже пожизненная, то можно писать на диск сколько угодно, а потом просто обменять диск по гарантии. На самом деле это не так: под условия гарантии не попадает износ диск вследствие его нормального использования. Так что советую не рисковать.

Заключение

Лень писать, да. Но могу сказать, что ощущения от SSD просто офигительные.
Однако стоит понимать, что SSD стоит ставить лишь в сбалансированные системы. Если комп с маленьким количество оперативки постоянно трещит свопом (своп на харде), то SSD не спасёт от лагов при телепортах и повортах камеры, когда данные вытаскиваются из медленного свопа, а не читаются с SSD.

Авторизуйтесь чтобы оставить комментарии

x
Авторизация

x
Авторизация2