- Все о SSD TRIM
- Оглавление
- Что такое TRIM
- Как работает TRIM
- Как проверить ваш SSD диск на поддержку команды TRIM
- Когда TRIM не работает!
- Когда TRIM должен работать
- Включение TRIM в Linux
- Проверка и включение TRIM на Windows 7, 8 или 10
- Как выполнить TRIM на разделе NTFS
- Как выполнить TRIM на Windows XP и Vista
- Восстановление удаленных данных
- Влияние TRIM на скорость записи
- Настройка SSD под Windows XP/2003
- Выравниваем партицию по блокам SSD.
- Настраиваем WinXP/2003
Все о SSD TRIM
В этой статье полное описание функционала TRIM SSD. Она дает ответы на вопросы — Как это работает. Как выполнить TRIM на разделе NTFS. Включение TRIM на Windows и Linux. TRIM на Windows XP и Vista.
Оглавление
Что такое TRIM
У электронных (SSD) дисков есть отличие от магнитно-механических (HDD) которое влияет на скорость записи. В HDD дисках запись выполняется «поверх» старых данных. Блоки диска, которые ранее содержали данные, а затем эти данные были удалены, просто помечаются как свободные. И когда нужно выполнять запись, контроллер HDD сразу записывает новые данные в эти свободные блоки.
Но при использовании флэш-памяти, блоки которые ранее содержали какую-то информацию, перед записью должны быть очищены. Это приводит к тому, что при записи в ранее использованные блоки скорость записи сильно падает, ведь контроллеру нужно их подготовить для записи (очистить).
Проблема в том, что операционные системы традиционно не работают с файловой системой таким образом, что при удалении файлов очищается содержание блоков на диске. Ведь на дисках HDD в этом не было необходимости.
Поэтому при использовании SSD дисков возникает эффект «деградации производительности». Когда диск новый и все блоки флэш-памяти чистые тогда скорость записи очень высокая, паспортная. Но после того как диск будет полностью заполнен и после этого часть файлов будет удалена, повторная запись будет происходить на более низкой скорости. Из-за того, что контроллеру диска придется очищать ранее использованные блоки флэш-памяти, перед записью туда новых данных.
Падение скорости записи в повторно используемые блоки флэш-памяти может быть очень высоким. До значений близких к скорости записи HDD дисков. При тестировании SSD дисков часто даже проводят отдельную проверку на снижение скорости записи в повторно используемые блоки.
Для борьбы с этим явлением, в новые ОС добавлена дисковая команда ATA TRIM. Драйвер файловой системы при удалении файла отправляет контроллеру SSD диска команду TRIM. По этой команде контроллер SSD диска очищает освобожденные блоки флэш-памяти, но делает это в фоновом режиме, в перерывах между операциями чтения и записи.
Использование этой команды позволяет вернуть полную скорость записи для повторно используемых блоков флэш-памяти. Однако не все ОС поддерживают эту команду. А только относительно свежие версии:
- Ядро Linux начиная с версии 2.6.33.
- Windows 7, 8 и 10
- Mac OS X начиная с версии с 10.6.6 (но для этой версии нужно устанавливать обновление).
До сих пор популярная WIndows XP (как и Vista) не поддерживают эту команду.
Обходной вариант для старых ОС, заключается в использовании, сторонних программ. Например это может быть программа hdparm (версии 9.17 и выше) или фирменные программы производителя SSD диска, например Intel SSD Toolbox.
Есть две модели SSD дисков у которых деградация скорости повторно используемых блоков выражена слабее чем у других:
Прошивки этих дисков умеют частично очищать неиспользуемые блоки без команды TRIM. Восстанавливая скорость записи до более высоких значений, но не до полной паспортной скорости записи.
Есть модели дисков, которые даже после выполнения команды TRIM не возвращаются к полной паспортной скорости записи.
Команда TRIM может не работать если SATA контроллер материнской платы был установлен в режим IDE (для совместимости со старой ОС или программой).
Команда TRIM чаще всего отключается при использовании RAID массива.
Как работает TRIM
Одна из основных функций любой файловой системы это хранение списка секторов диска, в которых записан тот или иной файл. То есть, с каждым файлом связан список дисковых секторов.
Когда вы удаляете файл на SSD диске, операционная система отправляет контроллеру SSD диска команду TRIM и вместе с ней список секторов которые можно очистить. Контроллер записывает эти сектора в очередь своей подпрограммы, «сборщика мусора». А эта подпрограмма обрабатывает все сектора из списка.
Сборщик мусора работает в те моменты, когда диск простаивает. То есть, когда операционная система не присылает запросы на чтение или запись данных. Поэтому с момента получения команды TRIM, до фактического удаления этих секторов проходит некоторое время.
Если в очереди на тримеризацию много секторов, их очистка может занять продолжительное время. Например, если выполнить быстрое форматирование целого раздела, то TRIM такого объема может быть длительным.
Однако нет необходимости сидеть и ждать когда процесс закончится. Даже если диск будет выключен, то обработка очереди возобновится после его включения.
Как проверить ваш SSD диск на поддержку команды TRIM
Использование ATA команды TRIM, не во всех случаях происходит автоматически, в некоторых ситуациях выполнение этой команды со стороны ОС необходимо включать явным образом.
Для начала нужно убедиться в том, что ваш SSD диск поддерживает эту команду. Впрочем, все новые диски ее поддерживают. Сделать такую проверку можно любой современной программой по работе с дисками. Например в Linux это можно сделать при помощи консольной команды:
hdparm -I /dev/sda | grep -i trim
Где sda ваш SSD диск. Вывод команды должен содержать строку «TRIM supported».
В Windows это можно сделать при помощи программы производителя вашего SSD диска, обычно такие служебные программы есть у всех производителей. Или через тестовую программу для дисков, например HD Tune или SSD Life.
Когда TRIM не работает!
- Функция TRIM не работает если SSD диск подключен через USB.
- Функция TRIM не работает для разделов c файловой системой FAT32.
- Функция TRIM не работает еще для большого количества файловых систем (например Ext2).
Когда TRIM должен работать
- Linux с ядром начиная от 2.6.33 и файловая система Ext4.
- Windows 7, 8 и 10 и файловая система NTFS.
- Mac OS X начиная с версии с 10.6.6 (но для этой версии нужно устанавливать обновление).
- FreeBSD начиная с версии 8.3 — для файловых систем UFS и ZFS.
Важно понимать, что функционал TRIM связан не только с версией ОС, но и с файловой системой. Например Windows 7, 8 и 10 поддерживают TRIM, но только для файловой системы NTFS, а на разделах FAT32 эта функция недоступна.
Включение TRIM в Linux
Примечание. В Ubuntu, начиная с версии 14.04, TRIM включать вручную уже не нужно!
Во-первых для использования TRIM, необходимо, чтобы файловая система была ext4.
Во-вторых включение команды TRIM указывается в опции монтирования для раздела ext4 в файле fstab. Конкретно это опция discard.
Кроме этого, для раздела на SSD диске можно добавить опции noatime (или realtime) и nodiratime — это снижение нагрузки по записи, не будут обновляться даты доступа к файлам и папкам.
Также можно добавить опцию commit и указать значение допустим 60 секунд — отложенные операции записи будут выполняться на раздел раз в 60 секунд. Но эту опцию можно добавлять только в том случае если у вас есть UPS (ИБП), или на ноутбуке!
Таким образом примерная строка fstab может выглядеть таким образом:
UUID=aeade6fd-2b24-4e59-bc8c / ext4 noatime,discard,errors=remount-ro,commit=60 0 1
В Linux можно выполнить команду TRIM и вручную:
В этом примере команда применяется к корневой файловой системе.
Проверка и включение TRIM на Windows 7, 8 или 10
Сначала нужно открыть консоль («Командная строка») с правами администратора. Меню Пуск — Программы — Стандартные — Командная строка. Правая кнопка мыши — Запустить от имени Администратора.
Далее в консоли выполнить команду:
fsutil behavior query disabledeletenotify
Если вывод команды будет — disabledeletenotify=1, значит команда TRIM отключена. Включить ее можно командой:
fsutil behavior set disabledeletenotify 0
Не перепутайте! Ноль — команда включена, единица — команда выключена.
Как выполнить TRIM на разделе NTFS
Если у вас операционная система Windows 7, 8 или 10, тогда можно ничего не делать. Достаточно проверить включена для функция TRIM. Далее Windows будет автоматически отправлять команду TRIM при следующих операциях с диском:
- Удаление файла(ов).
- Быстрое форматирование раздела (диска) NTFS.
- Удаление раздела NTFS.
В Windows 8 и 10 можно вручную дать команду TRIM для целого раздела (диска) NTFS. В свойствах диска, на вкладке «Сервис» нужно открыть Оптимизатор дисков. Это новое название дефрагментатора Windows.
В Оптимизаторе дисков для разделов NTFS на SSD диске будет доступна команда «Оптимизировать диск». Выполнение этой команды приводит к тому, что Windows отправляет SSD диску команду TRIM для всех свободных блоков на этом диске. То есть выполняется «тримизация» всего свободного пространства на разделе (диске) NTFS.
В Windows 7, 8 и 10 можно сделать «тримизацию» всего раздела (диска) NTFS. Для этого нужно выполнить быстрое форматирование этого раздела (диска). Однако важно понимать, что это уничтожит все данные на разделе.
В последних (2015, 2016 годы) версиях драйвера ntfs-3g (драйвер ntfs для линукс) добавлена функция TRIM. Теперь можно «тримизировать» раздел NTFS из Linux. Команда в терминале:
fstrim -v /media/ntfs/
где /media/ntfs/ примонтированный раздел NTFS.
Как выполнить TRIM на Windows XP и Vista
Ни Windows XP, ни Vista не поддерживают функцию TRIM. Если нужно «тримизировать» SSD диск, который используется в этих ОС, тогда есть следующие варианты:
- Программа производителя SSD диска. Если такая есть.
- Подключить этот диск на другой компьютер, где установлена Windows 8 или 10. И через Оптимизатор дисков выполнить оптимизацию NTFS разделов на этом диске. Важно! Диск нужно подключать через SATA, а не через USB. Подробно об этом в разделе «TRIM на NTFS».
- Загрузить компьютер с флешки со свежим дистрибутивом Linux (2015 или 2016 года). Примонтировать разделы NTFS и выполнить команду fstrim. Подробно об этом в разделе «TRIM на NTFS».
Но можно и вообще не «заморачиваться» по поводу TRIM на этих ОС. Можно оставить неразмеченой 20-30% от емкости диска и этого будет достаточно для поддержания нормальной скорости записи. Неразмеченой это значит не присвоенной ни одному разделу.
Восстановление удаленных данных
Если вы используете TRIM, о восстановлении удаленных файлов можно забыть. Если вы удалите файл, то его данные на SSD диске будут уничтожены.
Влияние TRIM на скорость записи
Важно понимать, что использование или не использование функции TRIM прямо не влияет на скорость записи SSD диска. Влияет на эту скорость только один фактор — наличие достаточного количества свободных блоков флеш-памяти. То есть таких блоков, которые очищены контроллером диска и готовы к записи в них новых данных.
Иначе говоря, скорость записи зависит от количества свободного места на диске. Если у вас диск почти полностью заполнен, то скорость записи упадет даже если вы используете TRIM. И наоборот, если у вас 20-30% емкости диска оставлены без разметки (unallocated disk space), тогда можно обойтись и без использования TRIM. Контроллер диска будет использовать неиспользуемую под разделы емкость для выравнивания скорости записи.
Функция TRIM действительно даст возможность поддерживать высокую скорость записи только при двух условиях:
- Под разделы выделена вся емкость SSD диска.
- Радел(ы) с файловой системой не заполнены более чем на 70-80% от своего размера.
Федеральная сеть магазинов Юлмарт это хорошее место для покупки компьютерной и бытовой техники. Невысокие цены, удобный процесс покупки.
Регистрация в Юлмарт
Если вы, при регистрации, укажете промо-код 6023036, тогда за покупки можно будет получать бонусные баллы, которые вы сможете потратить в Юлмарт.
Помощник.ru, 2016
Настройка SSD под Windows XP/2003
Все ниже описанное нагло содрано с одного из форумов в чистом виде, за исключением шага про установку Windows XP.
Поскольку SSD это рокет сайенс, а winxp это уже почти пережиток прошлого, совмещение этих двух вещей порождает взрыв мозга. Заморочившись, я порылся в Интернете и ничего не нашел – т.е. пишут много, но для нубов (чтоб было понятно) ничего нет. Поэтому плоды взрыва собственного мозга я собрал здесь, на всеобщее обозрение. Если есть что добавить – вэлком!
PS. Если не заморачиваться, можно просто воткнуть и почти все будет хорошо. Правда потенциально могут быть затыки, повышенный износ SSD и производительность меньше заявленной. Если у вас win7, то можно просто воткнуть и все будет нормально.
Выравниваем партицию по блокам SSD.
В SSD запись и стирание производится более крупными, чем в HDD блоками, поэтому невыровненная относительно данных блоков партиция и кластеры файловой системы могут привести к потере производительности и повышенному износу диска, поскольку для добавления инфы контроллеру диска придется чаще считывать-модифицировать-записывать эти блоки (особенно заметно на файлах небольшого размера). На некоторых SSD фирмы OCZ прирост производительности заявлен до 300% (см. http://www.ocztechnologyforum.com/forum/showthread.php?t=48309).
Лечится выравниванием партиции по границе блока SSD и установкой кластера файловой системы равным размеру блока. Для большинства дисков размер блока 4кб (4096 байт). Калькулятор для определения, выравнена ли ваша партиция по блокам диска лежит здесь: http://www.techpowerup.com/articles/other/157
Для нового SSD процесс достаточно прост. Я пользовался схемой описанной по первой ссылке (http://www.ocztechnologyforum.com/forum/showthread.php?t=48309).
Если по-русски, то делать нужно следующее:
- Скачать diskpar.exe (http://kb.wisc.edu/images/group14/4556/diskpar.exe)
- Подключить SSD к рабочему компу
- Через «Управление Дисками» (Пуск – Панель Управления – Администрирование – Управление Компьютером – Управление Дисками) найти номер нового диска и убедиться, что на нем нет разделов (если есть – удалить, иначе diskpar не будет работать)
- Через консоль (пуск – выполнить – cmd) запустить diskpar.exe с атрибутами «-i x», где x – номер SSD в системе, который мы нашли на предыдущем шаге. Убедиться, что на диске нет разделов (diskpar напишет текст, оканчивающийся на «End of partition information. Total existing partitions: 0»).
- Через консоль запустить diskpar.exe с атрибутами «-s x», где x – номер SSD в системе. Ответить “y” на два вопроса, которые задаст diskpar, на третий вопрос указать начало партиции (в секторах) как 2048, на четвертый указать размер партиции.
- Отформатировать партицию в ntfs с размером кластера 4096 байт через управление дисками
Пример текста при работе с diskpar (в данном примере ssd является диском 1):
C:\Install>diskpar -i 1
—- Drive 1 Geometry Infomation —-
Cylinders = 4139
TracksPerCylinder = 240
SectorsPerTrack = 63
BytesPerSector = 512
DiskSize = 32041820160 (Bytes) = 30557 (MB)
End of partition information. Total existing partitions: 0
C:\Install>diskpar -s 1
Set partition can only be done on a raw drive.
You can use Disk Manager to delete all existing partitions
Are you sure drive 1 is a raw device without any partition? (Y/N) y
—- Drive 1 Geometry Infomation —-
Cylinders = 4139
TracksPerCylinder = 240
SectorsPerTrack = 63
BytesPerSector = 512
DiskSize = 32041820160 (Bytes) = 30557 (MB)
We are going to set the new disk partition.
All data on this drive will be lost. continue (Y/N)? y
Please specify starting offset (in sectors): 2048
Please specify partition length (in MB) (Max = 30556): 30556
Done setting partition.
—- New Partition information —-
StatringOffset = 1048576
PartitionLength = 32041304064
HiddenSectors = 128
PartitionNumber = 1
PartitionType = 7
You now should use Disk Manager to format this partition
Лирическое отступление: значение partition starting offset в разных источниках указывается разное (от 65536 до 1048576), я предлагаю использовать последнее т.к. это значение, используемое win7 для ssd, кроме того это значение более универсальное (раздел, начинающийся на 1048576 выровнен по 65536, но не наоборот).
У меня не было под рукой только один sata-шлейф, поэтому я весь процесс проделал, запустившись с live cd. В моей сборке не было «Управления дисками», поэтому номер диска пришлось угадывать (если в системе нет других дисков – 0 будет правильной догадкой). Удаления разделов я избежал, так как на новом ssd никаких разделов не было. Форматировал я через пуск – выполнить – «format c: /fs:ntfs /a:4096», где «с» нужно заменить на букву ssd. Если в используемой сборке live cd есть «Управления дисками», то просто следуем по шагам выше.
Настраиваем WinXP/2003
Устанавливаем в реестре следующие параметры:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session Manager\Memory Management\PrefetchParameters] «EnablePrefetcher»=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOpt imizeFunction] «Enable»=»N»
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\OptimalLayout] «EnableAutoLayout»=dword:00000000
Затем отключаем функцию «Hibernate» (спящий режим) в XP следующим образом.
Нажмите кнопку «Start/Пуск», откройте «Control Panel/Панель управления».
Откройте «Power Options/Электропитание».
Выберите вкладку «Hibernate/Спящий режим».
Снимите галочку с опции «Enable Hibernate/Включить спящий режим».
Нажмите кнопку «OK».
Отключив функцию «Hibernate», вы избежите создания файла для спящего режима в Windows XP. Этим вы не только освободите место, но и предотвратите процесс записи, связанный с созданием файла для спящего режима.
Затем вам нужно будет отключить восстановление системы, выполнив следующие инструкции с web-сайта Microsoft.
Нажмите «Start/Пуск», правой кнопкой мыши щёлкните по «My Computer/Мой компьютер» и выберите «Properties/Свойства».
В открывшемся диалоговом окне «System Properties/Свойства системы» выберите вкладку «System Restore/Восстановление системы».
Поставьте галочку напротив опции «Turn Off System Restore on All Drives/Отключить восстановление системы на всех дисках».
Нажмите кнопку «OK».
В появившемся окне сообщений подтвердите свой выбор кнопкой «Yes».
Через какое-то время диалоговое окно «System Properties/Свойства системы» закроется.
Эти действия продлят срок службы накопителя, поскольку на него не будут записываться лишние данные, и будет больше свободного места.
Затем нужно будет отключить кэширование диска и вручную удалить кэшированные файлы. Для этого нужно выполнить следующие действия.
Нажмите «Start/Пуск», правой кнопкой мыши щёлкните по «My Computer/Мой компьютер» и выберите «Properties/Свойства».
В открывшемся диалоговом окне «System Properties/Свойства системы» выберите вкладку «Hardware/Оборудование».
Щёлкните по кнопке «Device Manager/Диспетчер устройств».
Раскройте опцию «Disk Drives/Дисковые устройства».
Дважды щёлкните по флэш-накопителю eSATA.
Выберите вкладку «Policies/Политика».
Снимите галочку с опции «Enable write caching on the disk/Разрешить кэширование записи на диск».
Нажмите кнопку «OK».
Это позволяет отключить функцию кэширования файла во время записи. Опять же, это экономит циклы записи на накопитель.
Следующей функцией XP, которую полезно отключить, является функция записи в параметры файла времени последнего доступа. Нажмите «Start/Пуск», «Run/Выполнить», введите в командную строку «cmd» и нажмите клавишу «Enter»:
Введите команду «fsutil behavior set disablelastaccess 1? и нажмите «Enter».
Восстановить функцию можно, поменяв цифру 1 на 0. Параметры времени последнего доступа к файлу могут быть необходимы для некоторых программ резервирования, которые будут копировать только изменённые файлы.
Отключение индексирования диска.
Нажмите кнопку «Start/Пуск», откройте «Control Panel/Панель управления».
Выберите «Administrative Tools/Администрирование».
Откройте «Computer Management/Управление компьютером».
Раскройте «Services and Application/Службы и приложения».
Щёлкните правой кнопкой мыши по «Indexing Service/Служба индексирования» и выберите «Properties/Свойства».
На вкладке «Generation/Генерация» снимите галочку с опции «Index files with unknown extensions/Индексировать файлы с неизвестными расширениями».
Нажмите кнопку «OK».
Если в вашей системе достаточно памяти, то вы можете использовать память для системного кэша и отключить виртуальную память.
Нажмите «Start/Пуск», правой кнопкой мыши щёлкните по «My Computer/Мой компьютер» и выберите «Properties/Свойства».
В открывшемся диалоговом окне «System Properties/Свойства системы» выберите вкладку «Advanced/Дополнительно».
Откройте параметры быстродействия.
Выберите вкладку «Advanced/Дополнительно».
Выберите значение «System Cache/Системный кэш» в группе «Memory usage/Использование памяти».
Нажмите кнопку «Change/Изменить» в группе «Virtual Memory/Виртуальная память».
Задайте значение «No Paging file/Без файла подкачки».
Нажмите кнопку «OK».