Как подать команду trim ssd
Поднимаем производительность SSD c колен, куда нажимать и зачем
Семь бед – один Deallocate
Многие слышали про команду TRIM. Те самые заветные четыре буквы, которые вызывают множество вопросов у рядового пользователя. TRIM – одна из команд ATA, отправляемая операционной системой с целью уведомления твердотельного накопителя о том, что данные с диска были удалены пользователем и занятые физические ячейки можно освободить. Стоит отдельно сказать про SSD с интерфейсом NVMe — эти диски обладают другим набором команд для работы, но аналог ATA команды TRIM там тоже существует — называется она Deallocate и, соответственно, является идентичной. Поэтому, далее при упоминании TRIM мы будем подразумевать и Deallocate тоже. К чему речь обо всём этом? Как раз именно проблемы с выполнением данных команд в подавляющем большинстве случаев и являются причиной низкой производительности накопителей. Конечно, другие проблемы мы тоже не оставим в стороне, но всему своё время.
В тот момент, когда вы удаляете данные с вашего накопителя, по факту удаляется запись в главной таблице файловой системы. То есть, сами данные остаются на месте, но область помечена на удаление. Сама «зачистка ячеек» происходит в определенное время, например, в момент простоя накопителя, пока вы отошли за чаем. Таким образом производители добиваются снижения износа памяти и увеличивают производительность своих накопителей в определённых сценариях. Именно очисткой этих ячеек и занимается контроллер, выполняя команду TRIM. К слову, после её выполнения, восстановление данных практически невозможно.
Совсем недавно мы рассказывали про технологию Secure Erase, которая схожа с TRIM, но затрагивает не только основные ячейки, но и служебные области, возвращая накопитель в полностью исходное состояние. Напомним, что Secure Erase можно выполнить на накопителе только без файловой системы и при определённых условиях. А технология TRIM как раз и требует наличие операционной системы со всеми вытекающими требованиями.
Объясним на пальцах, как раз их 20…
Когда вы создаёте файл, операционная система отправляет команду записи по адресу определенного логического блока. Когда вы удаляете данные с диска, эти блоки помечаются свободными.
При этом, данные останутся на диске пока контроллер не захочет их перезаписать.
Перед нами часть памяти, в которой находятся файлы А и В разных размеров, занимающих, соответственно, разное количество блоков. Сначала мы удаляем файл В, а затем записываем файл С на наш диск. Для наглядного представления ситуации, когда TRIM не работает, добавим простую иллюстрацию, в которой обозначены следующие состояния:
А теперь что происходит, если TRIM работает. Снова по этапам:
То есть, логика работы совсем другая. Повторим пройденное — в момент удаления нами файла B отправляется команда TRIM, и, поскольку в SSD достаточно часто простаивает, он с радостью удаляет ненужные блоки практически сразу. И в момент того, как мы хотим записать файл С, то он сразу же записывается на диск, а не ждёт пока для него очистят блоки с мусором.
TRIM, а есть ли ты вообще? И, если есть, то работаешь ли?
Узнать, поддерживает ли SSD команду TRIM можно при помощи достаточно большого количества свободно распространяемого программного обеспечения. Возьмём, к примеру, CrystalDiskInfo:
Но демонстрация поддержки – не есть работа. Для начала пройдёмся по ситуациям, когда TRIM надо запускать хитрым способом или данная команда не работает вовсе. Конечно, со временем ситуация может поменяться, но пока дела обстоят следующим образом:
Для начала – попробуем это узнать прямо у операционной системы. В запущенной от имени Администратора командной строке или PowerShell вводим команду «fsutil behavior query disabledeletenotify» без кавычек и смотрим на результат. Если в выводе значатся «0», то это хорошо – TRIM работает. Если «1», то функционал TRIM недоступен. Всё верно: ноль – включённая команда, 1 – выключенная команда.
К примеру, можно использовать простую в использовании программу trimcheck от Владимира Пантелеева. Программа работает в два этапа, между которыми может пройти как несколько секунд, так и десятки минут – всё зависит от специфики работы конкретной модели SSD. Утилита записывает данные на диск и отмечает адреса виртуальных блоков, в которых они размещены. Эти адреса она сохраняет в JSON-файл в своей папке, после чего удаляет данные, что порождает отправку команды TRIM. Утилита смотрит, находятся ли записанные ранее данные по сохраненным адресам. Их отсутствие означает, что контроллер принял команды TRIM к сведению и удалил данные. Если TRIM работает, то сообщение будет соответствующим:
В противном случае надпись будет гласить TRIM appears to be NOT WORKING. Собственно, если вы получили сообщение о неработоспособности, то выполните в запущенной от имени Администратора командной строке или PowerShell команду «fsutil behavior set disabledeletenotify 0» без кавычек. Функция TRIM, если соблюдены все условия (поддерживаемая ОС, реализация в SSD и т.д.), должна включиться и работать. Если этого не произошло, а все требования выполнены, то придётся подумать о замене накопителя.
Проблемы, проблемы вместо обеда
Самая распространённая проблема – наследование. Само собой, речь идёт про Windows до версии 8. Например, когда пользователь ставит в старые системы SSD или переходят с HDD на SSD без изменения настроек BIOS (если это необходимо) или вообще путём клонирования разделов или диска целиком. Напоминаем, что TRIM доступен только в режиме AHCI. К примеру, у многих материнские платы могут работать в двух режимах AHCI и IDE. Соответственно, если SSD подключён к такой плате именно в режиме IDE, то TRIM работать не будет. Просто наличие режима AHCI не решает проблему – Windows установит драйверы согласно выбранному IDE. Казалось бы, ситуация может встречаться редко, но на самом деле – нет. Если с настройками BIOS вы не дружите, то хотя бы проверить режим работы надо. Сделать это можно в диспетчере устройств в разделе «Контроллеры IDE ATA/ATAPI»:
Помните, что просто так после установки Windows переключить режим работы с IDE на AHCI (и обратно) без дополнительных манипуляций не выйдет – операционная система попросту не загрузится. Решения этой проблемы существуют (даже от самой Microsoft), но рекомендовать их не стоит. Требуется изменение параметров реестра, добавление нужного драйвера и готовность к переустановке ОС в случае неудачи.
Вспомним ещё про Secure Erase. Восстановить производительность этой функцией можно. Только вот вряд ли надолго. Особенно, если вы быстро забиваете свой накопитель новыми данными. Так что как временное решение – пойдёт, но оно всегда будет оставаться временным.
Ещё добавим про SLC-кеширование, которое достаточно часто используется у многих SSD-накопителей без привязки к интерфейсу. Невысокая скорость записи большого количества файлов (или больших файлов) после определённого порога не проблема, а особенность работы. Суть кеширования состоит в том, что сначала записываемые данные попадают в специальную область памяти, а уже затем записываются в основную память в фоновом режиме. Когда выделенная высокоскоростная память заканчивается, то данные начинают записываться непосредственно в память на заметно сниженной скорости – от 50 до 150 МБ/с. Это совершенно нормальный режим работы накопителей с SLC-кешем, поэтому здесь ничего сделать невозможно от слова совсем.
Что хорошо, а что плохо?
Если функция TRIM работала с самого начала, то сама по себе никуда она деться не может. Но совсем другое дело, если вы увлекаетесь разного рода твикерами, сторонними драйверами или прошивками, а также сборками операционных систем, якобы улучшенных. Все эти программы и сборки могут только навредить, если речь идёт о Windows 8 и, тем более Windows 10 – в этих ОС всё продумано как надо. В «семёрке» они могут чем-то помочь, но это скорее исключение из множества проблем, которые они могут принести.
Отдельно надо сказать несколько слов про NVMe накопители и драйверы для них. Приобретая высокоскоростной SSD, в ваших глазах должны отражаться полученные в бенчмарках заявленные скоростные показатели. Часто это так и есть, например – с накопителями Kingston. Установил и забыл, как говорится, наслаждаясь его высокими скоростями. Но с SSD других производителей это может быть не всегда так, что, очевидно, расстроит любого. Тут уже не отсутствие Deallocate является причиной недостаточного быстродействия, а стандартный NVMe драйвер. Да-да, при покупке NVMe SSD некоторых производителей обязательно приходится отправляться на сайт его сайт и скачивать соответствующий драйвер – разница со стандартным может превышать двукратную!
Вот теперь, вроде, всё.
Как оказалось – не всё так страшно, как выглядело не первый взгляд. От пользователя требуется выполнение всего нескольких рекомендаций, чтобы система работала корректно и радовала производительностью твердотельного накопителя долгое время. Повторим их напоследок – чистый дистрибутив операционной системы, актуальные драйверы и прошивки от производителя, а также отсутствие сторонних «настройщиков» системы, которые, по заверению их разработчиков, увеличивают производительность на 146%. Если проблема не аппаратная, то никаких нареканий к диску у вас не будет в течение всего срока жизни вашей системы. Так что никакого длинного заключения-словоблудства не будет – всё, что надо было сказать, уже сказано. Ёмких вам SSD, их высоких скоростей и стабильной работы!
Для получения дополнительной информации о продуктах HyperX и Kingston обращайтесь на сайты компаний.
Как подать команду trim на ssd
Если вам оказалась полезна или просто понравилась эта статья, тогда не стесняйтесь — поддержите материально автора. Это легко сделать закинув денежек на Яндекс Кошелек № 410011416229354. Или на телефон +7 918-16-26-331.
Даже небольшая сумма может помочь написанию новых статей 🙂
Или поделитесь ссылкой на эту статью со своими друзьями.
Опубликовано: 01.03.2014 Последнее обновление этой статьи: 13.03.2019
В этой статье описание ATA команды TRIM, которая используется для повышения скорости записи на SSD диски.
Использование ATA команды TRIM, не во всех случаях происходит автоматически, в некоторых ситуациях выполнение этой команды со стороны ОС необходимо включать явным образом.
Для начала нужно убедиться в том, что ваш SSD диск поддерживает эту команду. Впрочем, все новые диски ее поддерживают. Сделать такую проверку можно любой современной программой по работе с дисками. Например в Linux это можно сделать при помощи консольной команды:
Где sda ваш SSD диск. Вывод команды должен содержать строку «TRIM supported».
Оглавление
Как работает TRIM
Одна из основных функций любой файловой системы это хранение списка секторов диска, в которых записан тот или иной файл. То есть, с каждым файлом связан список дисковых секторов.
Когда вы удаляете файл на SSD диске, операционная система отправляет контроллеру SSD диска команду TRIM и вместе с ней список секторов которые можно очистить. Контроллер записывает эти сектора в очередь своей подпрограммы, «сборщика мусора». А эта подпрограмма обрабатывает все сектора из списка.
Сборщик мусора работает в те моменты, когда диск простаивает. То есть, когда операционная система не присылает запросы на чтение или запись данных. Поэтому с момента получения команды TRIM, до фактического удаления этих секторов проходит некоторое время.
Если в очереди на тримеризацию много секторов, их очистка может занять продолжительное время. Например, если выполнить быстрое форматирование целого раздела, то TRIM такого объема может быть длительным.
Однако нет необходимости сидеть и ждать когда процесс закончится. Даже если диск будет выключен, то обработка очереди возобновится после его включения.
Когда TRIM не работает!
Когда TRIM должен работать
В любом из этих вариантов команда TRIM отправляется только после удаления файлов. Или отдельно, принудительно для всего свободного места, если ОС поддерживает такой вариант.
Включение TRIM в Linux
Примечание. В Ubuntu, начиная с версии 14.04, ничего дополнительно делать не нужно. Все работает из коробки.
Во-первых для использования TRIM, необходимо, чтобы файловая система была ext4.
Во-вторых включение команды TRIM указывается в опции монтирования для раздела ext4 в файле fstab. Конкретно это опция discard.
Кроме этого, для раздела на SSD диске можно добавить опции noatime (или realtime) и nodiratime — это снижение нагрузки по записи, не будут обновляться даты доступа к файлам и папкам.
Также можно добавить опцию commit и указать значение допустим 60 секунд — отложенные операции записи будут выполняться на раздел раз в 60 секунд. Но эту опцию можно добавлять только в том случае если у вас есть UPS (ИБП), или на ноутбуке!
Таким образом примерная строка fstab может выглядеть таким образом:
В Linux можно выполнить команду TRIM и вручную:
В этом примере команда применяется к корневой файловой системе. Если есть несколько разделов ext4, тогда такую команду нужно выполнить для каждого такого раздела.
Проверка и включение TRIM на Windows 7, 8 или 10
Сначала нужно открыть консоль («Командная строка») с правами администратора. Меню Пуск — Программы — Стандартные — Командная строка. Правая кнопка мыши — Запустить от имени Администратора.
Далее в консоли выполнить команду:
fsutil behavior query disabledeletenotify
Если вывод команды будет — disabledeletenotify=1, значит команда TRIM отключена. Включить ее можно командой:
fsutil behavior set disabledeletenotify 0
Не перепутайте! Ноль — TRIM включен, единица — TRIM выключен.
Как выполнить TRIM на разделе NTFS
Если у вас операционная система Windows 7, 8 или 10, тогда можно ничего не делать. Достаточно проверить включена для функция TRIM. Далее Windows будет автоматически отправлять команду TRIM при следующих операциях с диском:
В 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. Команда в терминале:
где /media/ntfs/ примонтированный раздел NTFS.
Как выполнить TRIM на Windows XP и Vista
Ни Windows XP, ни Vista не поддерживают функцию TRIM. Если нужно «тримизировать» SSD диск, который используется в этих ОС, тогда есть следующие варианты:
Что такое TRIM (сбор мусора)
У SSD дисков есть важное отличие от HDD которое влияет на скорость записи. В HDD запись выполняется «поверх» старых данных. Блоки диска, которые ранее содержали данные, а затем эти данные были удалены, просто помечаются как свободные. И когда нужно выполнять запись, контроллер HDD сразу пишет в эти свободные блоки.
При использовании флэш-памяти, блоки которые ранее содержали какую-то информацию перед записью должны быть очищены. Это приводит к тому, что при записи в ранее использованные блоки скорость записи сильно падает, ведь контроллеру нужно их подготовить для записи (очистить).
Проблема в том, что операционные системы традиционно не работают с файловой системой таким образом, что при удалении файлов очищается содержание блоков на диске. Ведь на дисках HDD в этом не было необходимости.
Поэтому при использовании SSD дисков возникает эффект «деградации производительности». Когда диск новый и все блоки флэш-памяти чистые тогда скорость записи очень высокая, паспортная. Но после того как диск будет полностью заполнен и после этого часть файлов будет удалена, повторная запись будет происходить на более низкой скорости. Из-за того, что контроллеру диска придется очищать блоки флэш-памяти перед записью туда новых данных.
Падение скорости записи в повторно используемые блоки флэш-памяти может быть очень высоким. До значений близких к скорости записи HDD дисков. При тестировании SSD дисков часто даже проводят специальный тест на снижение скорости записи в повторно используемые блоки.
Для борьбы с этим явлением в новые ОС добавлена дисковая ATA команда TRIM. Драйвер файловой системы, при удалении файла, отправляет контроллеру SSD диска команду TRIM. По этой команде контроллер SSD диска очищает освобожденные блоки флэш-памяти, но делает это в фоновом режиме, в перерывах между операциями чтения и записи.
Использование этой команды позволяет вернуть полную скорость записи для повторно используемых блоков флэш-памяти. Однако не все ОС поддерживают эту команду. А только относительно свежие версии:
До сих пор популярная WIndows XP (как и Vista) не поддерживают эту команду.
Обходной вариант для старых ОС, заключается в использовании, сторонних программ. Например это может быть программа hdparm (версии 9.17 и выше) или фирменные программы производителя SSD диска, например Intel SSD Toolbox.
Есть две модели SSD дисков у которых деградация скорости повторно используемых блоков выражена слабее чем у других:
Прошивки (микропрограмма, firmware) таких дисков умеют частично очищать неиспользуемые блоки без команды TRIM. Восстанавливая скорость записи до полной паспортной скорости записи.
В 2019 многие модели SSD дисков умеют самостоятельно «собирать мусор». Точнее по конкретной модели можно узнать почитав обзоры тестов. В серьезных Интернет-изданиях, среди прочих тестов, делают и тест на способность диска самостоятельно выполнять очистку блоков.
Команда TRIM может не работать если SATA контроллер материнской платы был установлен в режим IDE (для совместимости со старой ОС или программой).
Команда TRIM чаще всего отключается при использовании RAID массива.
Восстановление удаленных данных
Если вы используете TRIM, о восстановлении удаленных файлов можно забыть. Если вы удалите файл, то его данные на SSD диске будут уничтожены.
Влияние TRIM на скорость записи
Важно понимать, что использование или не использование функции TRIM прямо не влияет на скорость записи SSD диска. Влияет на эту скорость только один фактор — наличие достаточного количества свободных блоков флеш-памяти. То есть таких блоков, которые очищены контроллером диска и готовы к записи в них новых данных.
Иначе говоря, скорость записи зависит от количества свободного места на диске. Если у вас диск почти полностью заполнен, то скорость записи упадет даже если вы используете TRIM. И наоборот, если у вас 20-30% емкости диска оставлены без разметки (unallocated disk space), тогда можно обойтись и без использования TRIM. Контроллер диска будет использовать неиспользуемую под разделы емкость для выравнивания скорости записи.
Но резервируя свободное место важно понимать, что это нужно делать на новом SSD диске, до начала его использования. Если вы удалите уже существующий раздел. Или уменьшите размер существующего размера, блоки флеш-памяти, занятые этим разделом не будут очищены. Они останутся занятыми до тех пор, пока вы снова не используете это свободное место.
Если вы хотите зарезервировать свободное место на полностью размеченном SSD диске, тогда нужно выполнить принудительную команду ТРИМ для всего раздела и только после этого удалять раздел (или уменьшать его размер).
Служебные программы некоторых производителей, например программа Samsung Magician, позволяют выделить часть емкости SSD диска, для ее использования контроллером диска (кеш записи и выравнивание износа). В этом случае такое выделенное место будет недоступно для операционных систем — они будут «видеть» меньшую емкость диска.
Функция TRIM действительно даст возможность поддерживать высокую скорость записи только при двух условиях:
Иван Сухов, 2014, 2016, 2019 гг.
Если вам оказалась полезна или просто понравилась эта статья, тогда не стесняйтесь — поддержите материально автора. Это легко сделать закинув денежек на Яндекс Кошелек № 410011416229354. Или на телефон +7 918-16-26-331.
Даже небольшая сумма может помочь написанию новых статей 🙂
Или поделитесь ссылкой на эту статью со своими друзьями.
TRIM – это важная функция (команда), позволяющая значительно продлить срок службы твердотельного накопителя SSD. Если функция TRIM задействована и работает, то при удалении файлов с SSD происходит полная очистка данных с неиспользуемых ячеек памяти. При простом же удалении данных пользователем ячейки просто помечаются как неиспользуемые, но фактически остаются заполненными.
Как правило, поддержка TRIM для SSD задействована в операционных системах Windows (включая Windows 7 / 8 / 10) по умолчанию. Но иногда случается так, что по тем или иным причинам эта опция может быть и не активирована. Поэтому для поддержания производительности и продления срока службы вашего SSD-накопителя всё же лучше проверить, работает ли функция TRIM.
Как это сделать, а также о том, как включить TRIM в Windows, если функция не работает, читайте в этой краткой инструкции.
Как проверить, включена команда TRIM (на примере Windows 10)
В нашем примере (смотрите скриншот выше) из полученного отчёта следует, что команда TRIM включена и используется – значение 0 напротив NTFS DisableDeleteNotify.
Если бы стояла цифра «1», то это означало бы, что команда TRIM отключена.
Как включить TRIM в ОС Windows 10, 8 и Windows 7
Если функция TRIM отключена, то при использовании SSD накопителя, крайне рекомендуется её активировать.
Способ первый:
Второй способ:
Если в «Оптимизации дисков» тип носителя определяется правильно, но по факту поддержка TRIM отключена, то команду TRIM можно включить и в ручном режиме:
Как отключить TRIM
Если вы хотите отключить поддержку TRIM, то:
Заключение
Всё вышеописанное относится к операционным системам Windows 10, 8 и Windows 7, где поддержка TRIM, как правило, работает по умолчанию, однако в некоторых случаях всё же требуется вмешательство пользователя для включения этой опции. Что же касаемо старых операционных систем от Microsoft (Windows XP и Vista), то здесь нет встроенной поддержки TRIM, однако она может быть задействована с помощью различных программ, например, старых версий Samsung Magician, Intel SSD Toolbox и др.
Команда TRIM является важной для поддержания производительности SSD накопителей на протяжении времени их эксплуатации. Суть команды сводится к очистке данных с неиспользуемых ячеек памяти с тем, чтобы дальнейшие операции записи производились с прежней скоростью без предварительного удаления уже имеющихся данных (при простом удалении данных пользователем ячейки просто помечаются как неиспользуемые, но остаются заполненными данными).
Поддержка TRIM для SSD включена по умолчанию в Windows 10, 8 и Windows 7 (как и многие другие функции оптимизации работы твердотельных накопителей, см. Настройка SSD для Windows 10), однако, в некоторых случаях это может оказаться не так. В этой инструкции подробно о том, как проверить, включена ли функция, а также о том, как включить TRIM в Windows, если поддержка команды отключена и дополнительная, касающаяся старых ОС и внешних SSD.
Примечание: некоторые материалы сообщают о том, что для работы TRIM SSD обязательно должен работать в режиме AHCI, а не IDE. В действительности, режим эмуляции IDE, включенный в BIOS/UEFI (а именно эмуляция IDE используется на современных материнских платах) не является помехой для работы TRIM, однако в некоторых случаях возможны ограничения (может не работать на отдельных драйверах IDE-контроллера), более того, в режиме AHCI ваш диск будет работать быстрее, так что на всякий случай убедитесь, что диск работает в режиме AHCI и, желательно, переключите его в этот режим, если это не так, см. Как включить режим AHCI в Windows 10.
Как проверить, включена ли команда TRIM
Для проверки состояния TRIM для вашего SSD накопителя можно использовать командную строку, запущенную от имени администратора.
В результате вы увидите отчет о том включена ли поддержка TRIM для разных файловых систем (NTFS и ReFS). При этом значение 0 (ноль) говорит о том, что команда TRIM включена и используется, значение 1 — отключена.
Состояние «не установлен», сообщает, что на данный момент поддержка TRIM не установлена для SSD с указанной файловой системой, но после подключении такого твердотельного накопителя будет включена.
Как включить TRIM в Windows 10, 8 и Windows 7
Как было отмечено в начале инструкции, по умолчанию поддержка TRIM должна включаться для SSD автоматически в современных ОС. Если у вас она отключена, то прежде, чем включать TRIM вручную, рекомендую проделать следующие действия (возможно, ваша система «не знает», что подключен SSD):
Если же тип диска определен правильно, то задать опции TRIM можно вручную, с помощью командной строки, запущенной от имени администратора следующими командами
Аналогичной командой, установив значение 1 вместо 0 можно отключить поддержку TRIM.
Дополнительная информация
В завершение, некоторые дополнительные сведения, которые могут оказаться полезными.