Поддержка trim в windows
Содержание:
- Что такое TRIM для SSD накопителей?
- Что такое TRIM в твердотельных накопителях
- Как включить TRIM в Windows 10 и для чего он нужен
- Что такое TRIM
- Удаление неразрывного пробела
- Советы для уменьшения операций чтения/записи
- Кэширование записи
- Проверяем, включаем и взаимодействуем с TRIM под Windows
- Функция TRIM для SSD-дисков и как проверить ее работу
- Как работает SSD с TRIM
Что такое TRIM для SSD накопителей?
TRIM — это команда, с помощью которой операционная система может сказать твердотельному диску (SSD), какие блоки данных больше не нужны и могут быть удалены или помечены как свободные для перезаписи. Другими словами, TRIM — это команда, которая помогает операционной системе точно знать, где хранятся данные, которые вы хотите переместить или удалить. Таким образом, твердотельный накопитель может получить доступ только к блокам, содержащим данные. Кроме того, всякий раз, когда команда удаления выдается пользователем или операционной системой, команда TRIM немедленно стирает страницы или блоки, где хранятся файлы. Это означает, что в следующий раз, когда операционная система попытается записать новые данные в этой области, ей не нужно сначала ждать ее удаления.
Давайте углубимся в это понятие: чтобы понять, что такое TRIM и что он делает, вам сначала нужно знать, как работают SSD и как они обрабатывают информацию, хранящуюся на них.
Твердотельный накопитель — это не что иное, как устройство, заполненное чипами флэш-памяти. Операционная система должна иметь возможность считывать и обрабатывать данные на этих чипах. Для этого у SSD должен быть способ упорядочить эти данные. Информация, хранящаяся на SSD, делится на блоки данных. Эти блоки, в свою очередь, делятся на страницы данных. Чтобы лучше проиллюстрировать это, представьте, что SSD — это библиотека. В библиотеке много полок, и эти полки заполнены книгами.
Однако что происходит, когда вы больше не хотите хранить одну из этих книг? Скажем, вы хотите продать его или одолжить другу. Казалось бы, очевидно, что вам нужно только взять книгу с этой полки. Что ж, если ваша библиотека представляет собой твердотельный накопитель, все будет не так. На SSD, если вы решите удалить некоторые данные, не будет иметь значения, если они занимают только страницу из блока. Весь блок должен быть удален! Вся информация на других страницах будет перемещена во временную буферную память, а затем помещена обратно в исходный блок. Это все равно, что вычистить целую полку из своей библиотеки всякий раз, когда вы хотите вынуть книгу или заменить ее новой. Тогда вам придется положить все остальные книги обратно на свои места. Это не эффективно!
В заключение, чтобы твердотельный накопитель записывал новые данные в ранее занятое пространство, сначала его необходимо полностью стереть. Делая это каждый раз, когда вы перемещаете или удаляете данные на вашем SSD, вы уменьшаете производительность для скорости записи данных.
Что такое TRIM в твердотельных накопителях
TRIM — команда, которая дает возможность ОС предупреждать накопитель ССД о том, где хранятся неактуальные записи. Рекомендует накопителю подчистить их для повторного использования. Таким образом ТРИМ-поддержка способствует тому, что носитель меньше зависит от захламленности. Поддержка ТРИМ удержит скорость записи, перезаписи от снижения.
ТРИМ ССД необходим для нормальной скорости записи
SSD (Solid State Drive) – это устройство для накопления и хранения информации. В нем используется твердотельная флэш-память. SSD может полностью заменять HDD (жесткий диск)
Важно! Главное его достоинство – скорость доступа к данным, потому что нет необходимости переходить из ячейки в ячейку. Повышается скорость загрузки приложений, так как облегчается и ускоряется поиск нужной информации на диске
Недостатком можно считать ограничение кратности повторной записи. SSD на базе флэш-памяти допускает до 500000 повторных стираний и записей. Некоторые типы флэш-памяти имеют возможность выдерживать до 1,5 миллионов операций для каждой ячейки памяти. Немного увеличить данный параметр позволяет выравнивание износа, то есть равномерное распределение часто используемых блоков.
В самом начале использования SSD дисков ячейки flash совершенно пустые, что позволяет производить запись на тех скоростях, которые указаны в техдокументации. Со временем блоки ССД диска заполняются и, наконец, он заполнен. Чтобы дальше работать придется удалить ненужные файлы. Но это не значит, что информация будет удалена полностью. Она остается во flash памяти. Контроллер ССД будет стирать данные прямо перед следующей записью. Поэтому запись будет притормаживать.
Чтобы поддержать скорость на уровне, новые ОС стали дополнять функцией ATA TRIM. Ее задача – счищать неактуальные блоки памяти непрерывно. То есть контроллер диска получит команду от TRIM и начнет чистку независимо от выполняемой в текущий момент операции. Таким образом производительность работы компьютера на старом носителе не будет отличаться от возможностей нового диска.
Как включить TRIM в Windows 10 и для чего он нужен
Если в HDD новые файлы можно записывать в сектора, в которых уже имеются данные, то в современных SSD запись информации производится в пустые ячейки физической памяти, что обеспечивает более высокую скорость работы SSD-накопителей. Первые SSD работали по схожему принципу, но для очистки блоков памяти контроллеру диска приходилось выполнять двойную работу. Когда пользователь редактировал некий файл, то есть по сути перезаписывал его, контроллер сначала считывал блоки с этим файлом во внутренний буфер, вносил в последовательность байтов изменения, стирал блоки и записывал изменённые данные в найденные новые пустые ячейки. Проблема только в том, что размер ячейки, в которую записываются данные занимает 4 Кб, а вот стирание данных происходит целыми блоками по 512 Кб (так уж организована у них память), поэтому дисковому контроллеру постоянно приходилось перегруппировывать и переносить данные для освобождения блоков, что, конечно, не могло не сказываться на производительности накопителя. С этим нужно было что-то делать, и умные головы инженеров вскоре нашли изящное решение.
Что такое TRIM и для чего он нужен
Примечание: просмотреть режим работы дискового контроллера можно в диспетчере устройств, развернув пункт «Контроллеры IDE ATA/АТАРI».
Как проверить, включён ли TRIM в Windows 10
И ещё один небольшой нюанс. Проводить проверку с помощью TRIMcheck лучше всего во время простоя компьютера, то есть когда на нём не производится активных действий, в частности, записи данных. В противном случае есть риск, что утилита с первого раза выдаст неверные результаты. В этом случае разработчик предлагает перезагрузить компьютер, выждать некоторое время и повторить тест.
Об этом полезно знать
Если вы подключили SSD по USB, функция TRIM для этого накопителя, скорее всего, работать не будет, так как контроллеры USB в своём большинстве не поддерживают команды SATA. А вообще, нужно пробовать, если у вас суперсовременный компьютер, почему бы и нет? Например, использование TRIM возможно на внешних SSD, подключённых по Thunderbolt, правда, тут ещё много зависит от самого накопителя. И, пожалуй, пару слов о возможности восстановления данных с SSD дисков с работающей функцией TRIM. Так как последняя полностью очищает ячейки памяти, восстановить удалённые данные с твердотельного внутреннего диска невозможно. Даже по сигнатурам.
Восстановить потерянные или случайно удалённые данные реально только если SSD-диск подключён к ПК по USB, вы используете RAID массив из SSD, носитель отформатирован в FAT32, exFAT или в другой ФС, отличающейся от NTFS. Также восстановление будет возможно в Windows Vista и более ранних версиях, древних SSD либо же TRIM отключён на уровне системы. Как видите, у TRIM есть своя тёмная сторона, но мы бы всё равно не рекомендовали отключать эту функцию, иначе падение скорости записи и ускоренный износ диска вам будут гарантированы.
Что такое TRIM
У электронных (SSD) дисков есть отличие от магнитно-механических (HDD) которое влияет на скорость записи. В HDD дисках запись выполняется «поверх» старых данных. Блоки диска, которые ранее содержали данные, а затем эти данные были удалены, просто помечаются как свободные. И когда нужно выполнять запись, контроллер HDD сразу записывает новые данные в эти свободные блоки.
Но при использовании флэш-памяти, блоки которые ранее содержали какую-то информацию, перед записью должны быть очищены. Это приводит к тому, что при записи в ранее использованные блоки скорость записи сильно падает, ведь контроллеру нужно их подготовить для записи (очистить).
Проблема в том, что операционные системы традиционно не работают с файловой системой таким образом, что при удалении файлов очищается содержание блоков на диске. Ведь на дисках HDD в этом не было необходимости.
Поэтому при использовании SSD дисков возникает эффект «деградации производительности». Когда диск новый и все блоки флэш-памяти чистые тогда скорость записи очень высокая, паспортная. Но после того как диск будет полностью заполнен и после этого часть файлов будет удалена, повторная запись будет происходить на более низкой скорости. Из-за того, что контроллеру диска придется очищать ранее использованные блоки флэш-памяти, перед записью туда новых данных.
Падение скорости записи в повторно используемые блоки флэш-памяти может быть очень высоким. До значений близких к скорости записи HDD дисков. При тестировании SSD дисков часто даже проводят отдельную проверку на снижение скорости записи в повторно используемые блоки.
Для борьбы с этим явлением, в новые ОС добавлена дисковая команда ATA TRIM. Драйвер файловой системы при удалении файла отправляет контроллеру SSD диска команду TRIM. По этой команде контроллер SSD диска очищает освобожденные блоки флэш-памяти, но делает это в фоновом режиме, в перерывах между операциями чтения и записи.
Иными словами, на системе, где не работает TRIM, твердотельный накопитель со временем (примерно после полного цикла записи всего объёма) станет работать гораздо медленнее. На компьютерах Mac, которые изначально поставлялись с SSD накопителем, TRIM работает прямиком «из коробки». А вот для пользователей, которые в свой Mac сами устанавливали SSD накопитель от какого-либо другого бренда, ситуация немного другая. Виду «странной» политики компании Apple, «завести» TRIM в OS X для сторонних SSD оказалось не так уж и просто. Для этого нужно было патчить системный KEXT (расширение ядра, в простонародье — драйвер), и делать это приходилось практически после каждого обновления системы.
С выходом OS X Yosemite ситуация ещё немного ухудшилась, так как в OS X 10.10 системные расширения и утилиты стали подписывать цифровой подписью, которая нарушалась при патчинге KEXT’а. Без цифровой подписи ядро операционной системы отказывалось грузить драйвер, без драйвера не запускался накопитель, система переставала грузиться. Но и для этого было найдено решение в виде специального параметра, который записывался в NVRAM и указывал ядру ОС, что неподписанные драйверы нужно всё равно загружать. В общем, был головняк. Но «Капитан» всё изменил.
Начиная с версии OS X 10.11 El Capitan для активации TRIM на всех SSD накопителях достаточно выполнить одну единственную команду, после которой TRIM будет работать штатно и всегда, без всяких патчингов и манипуляций с системой. Запускаем Терминал и выполняем команду:
Команду нужно подтвердить паролем администратора системы, после чего выдастся предупреждение, что, мол, включение этой опции может быть небезопасно и бла, бла, бла:
С уверенностью в 99,999% можно игнорировать предупреждение и нажать клавишу Y и Enter. После этого система перезагрузится. В итоге, после перезагрузки, TRIM будет активирован и для его повторной активации лезть в систему больше никогда не понадобится:
Удаление неразрывного пробела
Включаем режим скрытых знаков сочетанием клавиш Ctrl+Shift+8 или на вкладке Главная в разделе Абзац нажимаем кнопочку, похожую на знак ПИ.
На рисунке красной линией подчеркнуты неразрывные пробелы, они обозначены пустыми кружочками. Удалить такой знак можно, выделив его, нажатием обычного пробела на клавиатуре. В коротком документе сделать эту операцию легко, но если текст объемный, то необходима автоматизация.
Неразрывный пробел
— специальный знак, который запрещает выполнять перенос символа или слова, идущего сразу после него, без предыдущего слова. Ставится комбинацией клавиш Ctrl+Shift+Пробел
Проведем замену неразрывных пробелов по всему тексту. Используя горячие клавиши Ctrl+H
или вкладка Главная
в разделе редактирование нажимаем команду Заменить
.
Теперь в открывшемся окне достаточно указать: что и на что заменять. Но проблема в том что неразрывый пробел — это непечатаемый знак и указать его для поиска как простой символ не получится. Что же делать?
Нажимаем кнопку Больше
и получаем дополнительный функционал. Теперь кликните в поле Найти
, чтобы текстовый курсор мигал именно там. Внизу окна нажимаем кнопку Специальный
и выбираем Неразрывный пробел
.
Теперь в поле Найти
будет вставлена комбинация знаков, соответствующая неразрывному пробелу. Переходим к полю Заменить
и в нем нажимаем один раз клавишу Пробел
. Все исходные данные заданы, приступаем к замене нажатием кнопки Заменить все
.
Если все вышеизложенное было выполнено правильно, то вы увидите подобное сообщение.
Как видите, друзья, данный прием можно использовать и при замене других непечатаемых знаков. Надеюсь, что вам эта информация будет полезна.
Таблица непечатаемых знаков для поля Найти
Программа MS Word во время набора текста автоматически перебрасывает на новую строку, когда мы доходим до конца текущей. На месте пробела, установленного в конце строки, добавляется своего рода разрыв текста, который в некоторых случаях не нужен.
Так, к примеру, если вам необходимо избежать разрыва какой-либо целостной конструкции, состоящей из слов или цифр, разрыв строки, добавленный с помощью пробела в ее конце, явно будет помехой.
Чтобы избежать нежелательного разрыва конструкции, в конце строки вместо обычного пробела необходимо установить пробел неразрывный. Именно о том, как поставить неразрывный пробел в Word и пойдет речь ниже.
Прочитав текст на скриншоте вы, наверняка, уже поняли, как добавить неразрывный пробел, но именно на примере этого снимка экрана можно наглядно показать, зачем вообще такой символ необходим.
Как видите, комбинация клавиш, записанная в кавычках, разбивается на две строки, что является нежелательным. Как вариант, можно, конечно, записать ее и без пробелов, это исключит разрыв строки. Однако, такой вариант подходит не для всех случаев, к тому же, использование неразрывного пробела — решение куда более эффективное.
1. Чтобы установить между словами (символами, цифрами) неразрывный пробел, установите указатель курсора в место для пробела.
2. Нажмите клавиши “Ctrl+Shift+Space(пробел)”
.
3. Неразрывный пробел будет добавлен. Следовательно, конструкция, расположенная в конце строки, не будет разрываться, а целиком останется в предыдущей строке или будет перенесена на следующую.
Если это необходимо, повторите аналогичное действие для установки неразрывных пробелов в отступах между всеми составляющими конструкции, разрыв которой вы хотите предотвратить.
Если вы включите режим отображения скрытых знаков, то увидите, что знаки обычного и неразрывного пробела отличаются визуально.
Собственно, на это можно и закончить. Из этой небольшой статьи вы узнали о том, как в Ворде сделать неразрывный пробел, а также о том, в каких случаях он может понадобиться. Желаем вам успехов в изучении и использовании этой программы и всех ее возможностей.
В Word или любое другое офисное приложение. Этот элемент хоть и не так часто, но все же используется в том же самом текстовом процессоре от «Майкрософт». Именно о нем и пойдет в дальнейшем речь.
Советы для уменьшения операций чтения/записи
Основной идеей долговечного использования SSD является перенос интенсивных операция ввода/вывода в оперативную память или HDD, в основном из-за большого размера блока очистки (512 КиБ в некоторых случаях).
Примечание: 32ГБ SSD с посредственным 10-кратным показателем write amplification, стандартными 10000 циклами чтения/записи и 10ГБ записей в день дают 8 лет жизни. Также, дольше живут диски с наибольшими объемами и современными контроллерами, которые имеют меньший показатель write amplification.
Используйте команду и отсортируйте по количеству записей, чтобы увидеть сколько пишется на диск.
Продуманная схема разделов
Если в системе установлены одновременно оба типа дисков (HDD и SSD), то рекомендуется монтировать раздел на HDD, чтобы продлить жизнь SSD, избежав на нём множества операций чтения/записи.
Если же SSD является единственным диском в системе, и нет возможности использовать его совместно с HDD, разумно так же выделить отдельный раздел для , чтобы в дальнейшем при возникновении ошибки было легче восстановить систему. Например, если программа использовала всё доступное пространство в , какой-либо лог превысил все разумные размеры, и т. п.
Опция монтирования noatime
Монтируйте разделы SSD с опцией . См. раздел .
Существует несколько ключевых параметров монтирования, используемых в для разделов на SSD.
noatimeОднако, эта опция может вызвать проблемы с некоторыми программами, такими как Mutt, т. к. время доступа к файлу станет меньше, чем время изменения, что вызовет проблемы в работе. Использование опции relatime вместо noatime позволит быть уверенным, что поле atime никогда не станет меньше, чем время изменения. — Во время чтения файлов не будет обновляться поле atime файловой системы, указывающее время последнего доступа к файлу
Важность данного параметра в том, что он убирает необходимость системы производить «ненужные» операции записи когда файл всего-навсего необходимо прочитать. Т
к. эти операции записи могут быть достаточно интенсивными при чтении большого количества файлов, отключение может дать неплохой прирост производительности и срока жизни. Заметьте, что информация о времени последней записи файла будет по-прежнему обновляться каждый раз, когда файл будет изменён.
discard — Параметр discard включает команду TRIM для ядер версии 2.6.33 и выше. Не работает с файловой системой ext3; если всё же он включен на ext3, корневой раздел будет смонтирован только для чтения.
/dev/sda1 / ext4 defaults,relatime,discard 0 1 /dev/sda2 /home ext4 defaults,relatime,discard 0 1
Важно: Пользователь должен убедиться ещё ДО попытки монтирования раздела с опцией , что он работает на ядре версии 2.6.33 или выше, а также, что его SDD поддерживает TRIM. Иначе можно потерять данные!
Расположите часто используемые файлы в оперативной памяти
Профили браузеров
Довольно просто можно перенести профили браузеров, таких как chromium, firefox, opera, и т.д. в оперативную память через tmpfs и использовать rsync для синхронизации с копиями на диске. Таким образом можно так же заметно сократить количество операций чтения/записи.
В AUR есть несколько пакетов для автоматизации этой операции, например .
Другие файлы
По этой же вышеописанной причине можно расположить в оперативной памяти раздел (если запущен web-сервер). Аналогом здесь будет , который позволяет определить любую директорию для синхронизации с оперативной памятью.
Важно: Не пытайтесь добавлять /var/log в anything-sync-daemon. Systemd очень разозлится на это.
Компиляция в tmpfs
Перенос интенсивной компиляции в — отличная идея продления срока жизни диска. Если у вас имеется более 4ГБ оперативной памяти, строку tmp из нужно изменить, чтобы раздел использовал больше половины доступной памяти, через параметр , т. к. при компиляции растёт очень быстро.
Пример для машины с 8ГБ оперативки:
tmpfs /tmp tmpfs nodev,nosuid,size=7G 0 0
Отключение журналирования ФС
Количество записанных данных (в мегабайтах) на ФС ext4 с параметром noatime.
операция | с журналом | без журнала | разница |
---|---|---|---|
git clone | 367.0 | 353.0 | 3.81 % |
make | 207.6 | 199.4 | 3.95 % |
make clean | 6.45 | 3.73 | 42.17 % |
«Результаты показали, что записанный объём при работе с большим количеством мета-данных почти в 2 раза выше, чем реальный размер файлов. Это ожидаемо, т. к. все изменения в блоках мета-данных сначала пишутся в журнал, и транзакция журнала сбрасывается перед тем, как мета-данные будут записаны в конечное положение на диск. Однако же, для обычных задач, где данные пишутся сразу за мета-данными, разница в лишних операциях записи минимальна.»
Примечание: Пример make clean из таблицы выше показывает важность переноса компиляции в tmpfs как рекомендовано в предыдущем разделе!
Кэширование записи
Данная функция повышает производительность вашего твердотельного накопителя. При ее включении используется технология записи и чтения NCQ. NCQ – принимает несколько запросов одновременно, а затем организовывает их порядок выполнения таким образом, чтобы достичь максимальной производительности.
Для подключения необходимо:
- Вызвать командную строку комбинацией win + R
- Ввести команду: «devmgmt.msc».
- Открыть «Дисковые устройства», выбрать SSD и в контекстном меню выбрать «Свойства».
- Перейти во вкладку «Политика».
- Поставить «галочку» напротив параметра: «Разрешить кэширование записей для этого устройства».
Проверяем, включаем и взаимодействуем с TRIM под Windows
Если Вы пропустили, то напомним, что TRIM, — это такая технология контроллера, которая существенно ускоряет работу накопителя, методом уведомления оного о блоках, которые уже не содержатся в файловой системе и каковые можно очистить, так сказать, физическим путём. В общем говоря, нужна для скорости и стабильности работы.
Дабы проверить включен ТРИМ в системе или нет, собственно, нам потребуется консоль, она же командная строка.
Чтобы запустить командную строку, нажмите сочетание клавиш Win+R и в появившемся окне «Выполнить» введите cmd. Сама утилита командной строки лежит обычно в папке C:\Windows\System32\cmd.exe и её можно запустить оттуда (желательно методом «Правая кнопка мышки -> Запуск от имени администриратора»).
В появившейся консоли необходимо ввести команду:
fsutil behavior query DisableDeleteNotify
Ответом будет одна или две строки со значением 0 / 1 в качестве результирующего параметра.
Первая строка (которая NTFS) отвечает, как ни «странно», за файловую систему NTFS, вторая за серверную файловую систему ReFS. Если Вы не находитесь за Windows Server, то Вас должна интересовать только первая строка.
Что к чему:
- 0, — значит всё в порядке и TRIM включен;
- 1, — TRIM выключен на уровне системы.
В случае, если у Вас многострадальная единичка, рекомендуется, собственно, включить TRIM, дабы ускорить работу SSD на порядок-другой. Чтобы это сделать введите команду:
fsutil behavior set disabledeletenotify NTFS 0
..или..
fsutil behavior set disabledeletenotify ReFS 0
Соответственно, для той или иной файловой системой (ну вдруг Вы правда за сервером сидите или каким-то волшебным образом зачем-то отформатировали диск в этом формате?).
Если получите ошибку «Отказано в доступе», то повторите процедуру, запустив консоль от имени администратора (выше написано как это делается). После включения или выключения лучше сделать перезагрузку.
Но мало включить или выключить TRIM на уровне системы, важно, чтобы контроллер поддерживал функционал технологии и он исправно работал, для чего это неплохо бы проверить, что мы сейчас и сделаем
Скачайте программку TRIMcheck для 32-х или 64-х битной версии системы (в зависимости от того какая у Вас Windows), поместите файл программы на соответствующий SSD (который хотите проверить), запустите его (лучше тоже от имени администратора) и нажмите Enter.
Дождитесь окончания работы скрипта и еще раз нажмите в Enter. После чего обязательно подождите от 20 секунд до нескольких минут (лучше больше, чем меньше) и запустите программу повторно.
Результат будет, либо как на скриншоте выше (т.е to be WORKING!) и значит, что всё отлично и прекраснейшим образом работает, либо как на скриншоте ниже:
Тобишь, to be NOT WORKING, что значит, что ТРИМ нифига не работает и всё очень грустно. В последнем случае Вам надо будет сделать следующее:
- Проверить, что в BIOS режим контроллера SATA находится в положении ACHI, а не IDE, RAID или каком-либо еще;
- Проверить, как это мы делали выше, что в Windows включен TRIM и даже, если Вы это делали, то выключить и включить повторно (перезагрузившись при каждом из действий);
- Попробовать скачать SSD Mini Tweaker, распаковать и запустить соответствующую версию (лучше тоже от имени администратора), где попробовать насильно включить TRIM и ACHI режим в операционной системе, не забыв тыкнуть в кнопку «Применить изменения» и потом перезагрузить компьютер:
- Обновить драйвера на Вашу мат.плату и в, особенности, на ACHI-контроллер, что можно сделать с сайта производителя или, в крайнем случае, используя DriverPack Solution;
- Перепрошить Ваш SSD на последнюю версию прошивки (как это сделать можно узнать на сайте производителя).
Пожалуй, на этом всё. Можно переходить к послесловию.
Функция TRIM для SSD-дисков и как проверить ее работу
Одним из способов продления срока службы жёстких дисков HDD является периодическая дефрагментация, кстати, совершенно излишняя для дисков SSD. И хотя с точки зрения операционной системы данные на твердотельном накопителе и выглядят разбросанными, в действительности они находятся там, где надо, там, где их разместил контроллер, в задачи которого, а вовсе не операционной системы входит оптимизация данных во флеш-памяти. Но есть в SSD нечто такое, без чего снижение производительности и общего срока службы практически неизбежно.
Это нечто — специальная функция, предназначенная для «уборки мусора» на SSD. Называется она TRIM. При удалении файла на жёстком диске HDD операционная система удаляет запись о файле из таблицы MFT, сам файл же остаётся на месте. Когда же пользователь записывает на диск новые данные, они размещаются поверх старых, перезаписывая их. Нечто подобное происходит и на SSD-дисках, но при этом из ячеек flash памяти удаляется и сами данные. В сущности, в этом и заключается работа функции TRIM. Благодаря одновременному удалению данных о файле и самого файла скорость записи на носитель увеличивается, а количество циклов перезаписи уменьшается.
Описание, конечно, примитивное, в реальности всё немного сложнее, но мы решили не вдаваться в технические подробности процесса. Главное, чтобы функция TRIM была включена, проверкой чего мы и займёмся. Как правило, работу функции TRIM проверяют командой fsutil behavior query disabledeletenotify, выполненной в запущенной от имени администратора командной строке. Если результатом выполнения команды будет , значит TRIM включена, если 1, соответственно отключена. Включается TRIM командой fsutil behavior set disabledeletenotify 0.
Как удостовериться, что TRIM действительно работает
Положительный результат команды fsutil не является стопроцентной гарантией того, что функция TRIM действительно работает. Она лишь показывает, что TRIM включена, а вот доходят ли отправляемые ею команды до контроллера или нет, неизвестно. Выяснить это наверняка можно с помощью бесплатной утилиты TRIMcheck. Для этого нужно запустить утилиту с проверяемого диска, нажать Enter, закрыть её, а затем спустя пару минут запустить повторно. Если TRIM работает, в консольном окне утилиты вы получите сообщение «CONCLUSION: TRIM appears to be WORKING!».
Как быть, если TRIM не работает
Использование TRIMcheck — отличный способ проверить работу функции TRIM, но и здесь есть небольшая заковырка. Если контроллер SSD имеет обыкновение делать своё дело при простое системы, с первого раза утилита может показать отрицательные результаты. В таком случае необходимо перезагрузить компьютер, а затем позволить ему перейти в режим бездействия, для чего достаточно просто оставить его на некоторое время в покое, после чего заново запустить TRIMcheck.
Если отрицательные результаты утилита выдаёт на второй и на третий день, весьма вероятно, что у контроллера есть проблемы с TRIM. Во-первых, убедитесь, что режим AHCI дискового контроллера активирован. Во-вторых, в Диспетчере устройств посмотрите какой драйвер контроллера используется, сторонний или стандартный (msahci.sys). Если сторонний, попробуйте обновить его, а затем заново пройти тест TRIMcheck.
Также решением проблемы может стать переход на стандартный драйвер Microsoft — msahci.sys. Для этого в Диспетчере устройств найдите контроллер SATA, кликом правой кнопкой мыши по нему вызовите меню и выберите опцию «Обновить драйверы». Используете ручной поиск. В списке найденных драйверов выберите стандартный SATA/AHCI и нажмите «Установить с диска».
Наконец, можно попробовать обновить прошивку SSD, скачав необходимый пакет с официального сайта производителя накопителя. Процедура эта очень простая, почти ничем не отличающаяся от установки обычных прикладных программ, но прибегать к ней стоит, когда все прочие варианты были исчерпаны.
Как работает SSD с TRIM
Заметьте, основная проблема в том, что контроллер заранее не в курсе, что файл уже не нужен, а точнее, что LBA уже свободен. Смысл команд TRIM и заключается в том, чтобы сообщить об этом контроллеру сразу по факту удаления файла.
Давайте рассмотрим тот же пример, но на сей раз с поправкой на TRIM.
Похоже на игру «найди в картинках N отличий»? Следите за руками контроллера, ибо тут он действует иначе:
- Вы создали два файла и удалили один из них. Операционная система сразу сообщила контроллеру об удалении книги Excel командой TRIM.
- Контроллер прочел данные из блока флэш-памяти в кэш.
- Обладая информацией о ненужности книги Excel, контроллер удалил ее.
- Контроллер очистил блок и вернул в него документ Word. В блоке доступно 24KB.
- Вы сохраняете изображение в формате JPEG размером 24KB. Контроллер просто записывает картинку в свободные страницы блока.
Да, чипу пришлось проделать лишнюю работу по считыванию 24KB в кэш (шаг 2), но это он делал в «свободное» время», равно как и запись нужного вам документа Word в очищенный блок.
Однако TRIM не решает одну проблему SSD, у которых одно из основных отличий от HDD заключается в перезаписи файлов.
В описанном выше примере с единственным блоком памяти производительность все равно будет страдать при перезаписи файлов. Но когда есть свободная память, твердотельный накопитель выделяет другую страницу в NAND и помечает особым образом страницу с ненужными данными. Она очищается при стирании блока в рамках сбора мусора.