Усечение ssd что это
Trim SSD – что за функция и как это работает
Функция Trim SSD что это такое, для чего нужно, как включить. На все эти и многие другие вопросы, Вы найдете ответы в данной статье.
Современные операционные системы, как и файловые системы, пока еще рассчитаны в основном на работу с HDD (жесткий механический диск или винчестер) и при записи файла операционная система записывает их в специальную таблицу на жестком диске (MFT — Master File Table — Главная файловая таблица) — координату данного файла. Этим самым файловая таблица сообщает системе четкое и точное месторасположение кластеров с записанной информацией. Когда же файл удаляется с жесткого диска, система удаляет данные такого файла из этой таблицы MFT, сам файл не трогая. А при записи новых данных файлы просто пишутся поверх старых. Так работает перезапись на HDD. А вот для перезаписи данных на SSD требуется удаление не только координаты из MFT таблицы, но стирания самого ненужного более файла из ячеек flash-памяти. Здесь нам на помощь и придет Trim.
Ликбез по функции
При пользовании SSD дисками со временем возникает ситуация, когда производительность их значительно снижается. Когда вы только начали пользоваться диском и все блоки flash памяти новые и чистые, то и скорость записи на них довольно высокая, в соответствии с заявленной в документации. Когда же SSD диск будет полностью записан, а затем некоторые файлы будут удалены, перезапись станет происходить на них на гораздо более низких скоростях. Ведь контроллеру вашего диска придется перед записью очищать и ранее использованные блоки flash памяти перед тем, как записать туда новые данные.
Для того, чтобы скорости работы SSD не падали, в новые операционные системы добавляется команда ATA TRIM. Специальный драйвер файловой системы при стирании файла направляет команду Trim для контроллера SSD диска. Когда контроллер SSD диска воспринимает команду, он сразу же очищает более не используемые блоки flash памяти. Делается это в режиме фона, в перерывах между любыми операциями записи и чтения.
Использование команды Trim позволяет вернуть нам полную скорость записей для вторично используемых блоков flash памяти. К сожалению, далеко не все операционные системы работают с командой Trim. Поддерживают ее относительно новые версии систем:
Windows 7, 8, 10 и Server 2008 R2 с файловой системой NTFS.
Ядро Linux, с версии 2.6.33 и выше.
Mac OS X, с версии с 10.6.6 (и то, только после установки соответствующего обновления) и выше.
Так же функция Trim не будет работать если:
Как проверить включение Trim на операционных системах Windows 7, 8 и 10
Вначале откроем консоль Командной строки с правами администратора. Далее меню Пуск – Программы – Стандартные – Командная строка. Нажатие правой кнопки мышки — Запуск от имени Администратора.
Затем в командной строке вводится команда:
fsutil behavior query disabledeletenotify – Выполнить.
В том случае, если вывод команды покажет — disabledeletenotify=1, это значит, что команда TRIM выключена. Подключение делаем с помощью команды:
fsutil behavior set disabledeletenotify 0
Будьте внимательны: ноль – включенная команда, единица – выключенная команда.
Включение TRIM в Linux
Для того, чтобы использовать функцию 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 на разделах 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 года) версиях драйверов ntfs-3g (драйвера ntfs под Линукс) есть добавленная функция TRIM. Теперь мы можем «тримизировать» и раздел NTFS из Linux. Команда:
где /media/ntfs/ — примонтированный раздел NTFS.
Как выполнять Trim на Windows XP и Windows Vista
Как уже говорилось выше, Windows XP и Windows Vista не поддерживают TRIM. Если необходимо «тримизировать» SSD диск, используемый в этих операционных системах, то есть такие варианты:
Программа от производителя SSD диска, при ее наличии.
Подключение этого диска на компьютер, с установленными Windows 8 или Windows 10. Через Оптимизатор дисков выполняется оптимизация NTFS разделов на нужном SSD диске. Помните, что SSD диск нужно подключать не через USB, а через SATA.
Загрузка компьютера с флешки с новым дистрибутивом Linux (начиная с 2015 года). Примонтируются разделы NTFS и выполняется команда fstrim.
Хотя можно и вообще не делать TRIM на этих операционных системах. Мы можем оставить неразмеченной 20-30% от дисковой емкости и этого будет хватать для поддержки нормальной скорости записи. Неразмеченной, то есть ни одному разделу не присвоенной.
Удаленные данные и их восстановление
Если использовать Trim, то о восстановлении удаленных данных можете забыть. Если удалить файл, то все его данные на SSD дисках будут полностью уничтожены.
Так как же влияет Trim на скорость записи?
Нужно понимать, что применение или отсутствие функции Trim напрямую не повлияет на скорости записей на SSD диски. Повлияет на это единственный фактор — присутствие достаточного количества пустых блоков flash памяти. То есть тех блоков, которые полностью очищены контроллером диска и приготовлены для записи на них новых данных.
Проще говоря, скорости записи зависят от количества свободного места на SSD диске. Если же ваш диск практически полностью занят, то и скорости записи упадут даже в том случае, если вы пользуетесь Trim. А в том случае, если у вас не менее 20-30% емкости SSD диска остаются без разметки (unallocated disk space), то можете обходиться и без использования функции Trim. Контроллер SSD диска будет применять неиспользуемое место под разделы для того, чтобы выровнять скорость записи.
Функция Trim имеет те полезные свойства, что действительно дает возможность поддержать максимально высокую скорость записи, но только при двух условиях:
Видео по включению трим в Mac OS
Поднимаем производительность 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 обращайтесь на сайты компаний.
🛠 Настраиваем и оптимизируем работу SSD-накопителя в Windows и Ubuntu
Miroslav Kungurov
Большая часть рекомендаций по оптимизации работы и продлении жизни SSD-накопителя сводится к уменьшению количества записи и перезаписи. В этой статье разберемся, какие службы ОС нужно включить или отключить, чтобы продлить жизнь накопителя, а какие нет смысла трогать и лучше оставить работать в конфигурации по умолчанию.
Команда TRIM
Память твердотельного накопителя состоит из блоков, а блоки состоят из страниц. Чтобы обновить информацию в странице, нужно стереть весь блок целиком и только потом записать новые данные. Операция удаления не удаляет данные физически, а только помечает их для удаления. При перезаписи блока добавляется дополнительная операция очистки, из-за которой падает скорость операции. Команда TRIM очищает блоки в фоновом режиме, чтобы наготове всегда были свободные и скорость записи оставалась максимальной.
Чтобы определить состояние TRIM в Windows введем в консоли:
DisableDeleteNotify = 1 – TRIM отключен
DisableDeleteNotify = 0 – TRIM включен
Рис. 1. Определение состояния службы TRIM в Windows
Для включения TRIM введем в командной строке:
Для выключения TRIM:
Проверим, включена ли команда TRIM в Ubuntu следующей командой:
Если у столбцов DISC-GRAN и DISC-MAX нулевые значения, то TRIM выключен.
Рис. 2. Определение состояния службы TRIM в Ubuntu
Чтобы запустить TRIM вручную, введем в терминале команду:
Служба SysMain
Служба SysMain (Windows 10) в предыдущих версиях Windows называлась Superfetch. Когда ОЗУ недостаточно, SysMain не записывает данные в файл подкачки, а сжимает их в ОЗУ. Также служба объединяет страницы с одинаковым содержимым. Получаем снижение объема записи на диск. Отключать нет смысла.
Как проверить состояние SysMain:
Служба Prefetcher
Как проверить состояние Prefetch:
Система индексирования Windows
Как отключить индексацию файлов:
Режим гибернации
Режим гибернации сохраняет содержимое оперативной памяти на SSD перед выключением компьютера. При включении данные с SSD загружаются в ОЗУ. Если сверхбыстрый запуск ОС не нужен, а достаточно быстрого запуска с SSD, то гибернацию можно отключить.
Чтобы отключить гибернацию в Windows откроем консоль и введем:
Для включения гибернации используем команду:
Точки восстановления системы
Отключение точек восстановления лишит пользователя возможности восстановить систему. Чем больше места, тем больше точек восстановления имеется в распоряжении. Старые точки восстановления удаляются автоматически, когда все место под них занято и нужно создать новую. Отключать не стоит.
Как проверить состояние точек восстановления:
Быстрый доступ к настройкам восстановления системы:
Служба дефрагментации и автоматического обслуживания
Начиная с Windows 7 система научилась определять тип накопителя и отключает дефрагментацию для SSD, а взамен выполняет TRIM. Как оказалось, не всегда.
Как посмотреть состояние службы дефрагментации:
Чтобы посмотреть журнал оптимизации и дефрагментации дисков откроем PowerShell из меню пуск и введем следующую команду:
Мои диски С и P расположены на твердотельных накопителях и Windows почему-то провела дефрагментацию этих дисков. Это связано с тем, что я переустанавливал Windows и это было первое выполнение задачи оптимизации по расписанию. Потом ОС выполняла только оптимизацию дисков.
Рис. 9. Журнал дефрагментации и оптимизации SSD-накопителя в Windows
Файл подкачки
Когда ОЗУ недостаточно, Windows обеспечивает надежную работы программы, перемещая неиспользуемые данные на диск в файл подкачки. При его отключении некоторые программы могут работать некорректно, поэтому рекомендуется выбирать его размер в автоматическом режиме. Если файл подкачки неоправданно велик, то задать его размер вручную.
Настройка файла подкачки:
Выравнивание разделов
Разделы выравнивают, чтобы физические ячейки объема соответствовали логическим ячейкам и сократилось количество дисковых операций. Если разделы отличаются по длине – один кластер перекрывает два блока секторов, как в HDD, – удваивается число операций чтения и записи, накопитель работает медленнее и повышается его износ (рис. 11 ).
Рис. 11. Иллюстрация не выровненных разделов в HDD
В SSD также нужно выравнивать разделы, чтобы продлить срок службы накопителя.
Чтобы узнать размер кластера в Windows введем в консоли:
Рис. 13. Информация о размере сектора и кластера в Windows
Как изменить размер кластера в Windows:
Как узнать размер кластера в Ubuntu:
/dev/sda1 – путь к разделу.
Рис. 14. Информация о размере сектора и кластера в Ubuntu
Как изменить размер кластера в Ubuntu (все данные будут удалены):
mkfs.ntfs – форматирование в NTFS ( mkfs.ext4 – форматирование в ext4).
-c – проверка на наличие битых блоков на устройстве.
4096 – размер кластера.
Как узнать выровнен ли раздел в Windows:
Как узнать выровнен ли раздел в Ubuntu:
1 – номер раздела. Например, у sda1 будет единица.
Рис. 16. Проверка, выровнен раздел в Ubuntu или нет
Чтобы узнать номер раздела введем в консоли:
На что смотреть при покупке SSD
У твердотельных дисков есть два параметра, которые определяют его долговечность:
Чем больше значение этих параметров, тем лучше.
Рис. 17. Количество циклов перезаписи SSD-накопителя с разными типами памяти
Как оптимизировать работу SSD-накопителя
Мы узнали какие службы действительно продлевают жизнь и ускоряют твердотельный накопитель, а какие нет. Про SSD для рядового потребителя можно сказать одно – установил и забыл, так как все важные службы работают в автоматическом режиме, а ненужные отключены.