Как это работает: TRIM

Александр
Samsung SSD

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

Работу жестких дисков замедляет фрагментация. Когда вы удаляете файл, файловая система помечает место, которое он занимал на диске, свободным и позволяет записать туда другой файл, целиком или частично. Этот процесс повторяется с другими файлами, и через какое-то время диск становится сильно фрагментирован — одна часть файла находится по одному адресу, другая — по другому и так далее. Чем сильнее фрагментация, тем ниже скорость считывания и записи данных, и тем медленнее работает компьютер. Повысить скорость жесткого диска можно дефрагментацией или более радикальным способом — форматированием.

В SDD операции с файлами производятся по-другому. При удалении файла файловая система помечает место, которое он занимал на диске, неиспользованным. Данные оттуда не удаляются, а информация о них записывается в карту диска. Через некоторое время карта диска разрастается до огромного размера, и поиск по ней производится намного медленнее. C технической точки зрения это не фрагментация, а «I/O lag» — задержка ввода/вывода. Чем значительнее эта задержка, там ниже скорость считывания и записи данных, и тем медленнее работает устройство.

Фрагментировать твердотельные накопители и флеш-память ни в коем случае нельзя, это сильно сокращает срок их жизни. Для уменьшения I/O lag операционные системы используют команду TRIM.

В SSD ячейки памяти объединены в страницы, а страницы в блоки. Копирование данных может производиться только в чистые блоки, поэтому перед процессом записи запускается цикл «чтение-очистка-модификация», что со временем сильно замедляет скорость работы накопителя. Использование TRIM позволяет предотвратить попытки считывания данных из блоков, не содержащих данные.

TRIM сканирует файловые записи и сообщает контроллеру, к каким блокам не нужно обращаться. После этого контроллер оперирует данными только с тех участков памяти, на которые записана информация, пропуская неиспользуемые. В результате скорость работы накопителя остается высокой даже при многократном удалении и копировании файлов. Следует учитывать, что TRIM полностью стирает данные в неиспользуемых ячейках без возможности ее восстановления

TRIM
Иллюстрация: outsidethebox.ms

Команда TRIM поддерживается в Windows 7 и Windows 8, а также Linux 2.6.33 и OS X 10.6.8 и выше. Поддержка TRIM также появляется на смартфонах и планшетах на базе Android после обновления 4.3 — команда уже настроена, оптимизирована и включается автоматически. У пользователей устройств на более ранних версиях Android есть только есть один способ повысить упавшую производительность системы — периодически делать сброс к заводским настройкам.
0

Будь в курсе последних новостей из мира гаджетов и технологий

Мы в соцсетях

Комментарии

+40
Интересно было почитать, спасибо :)
9 августа 2013 в 23:02
#
+3
Да, это интересно.

А как насчет пользователей "яблочных" устройств? Здесь стоит память NAND, но про ios гаджеты ничего не сказали, только про андроид.
Интересно ведь.
10 августа 2013 в 01:00
#
+1
А почему нельзя сделать проще: при каждом стирании файла, стирать его полностью, освобождая место. При следующей записи файл будет записан на место старого, тогда пустых ячеек и не будет. А так как SSD все равно к какой части диска обращаться, большая фрагментация файла не снизит скорость работы.
Тогда и физически и логически диск будет выглядеть одинаково.
11 августа 2013 в 14:12
#
–4
Включаем голову и понимаем, что:
1. Размеры файлов разные, что если второй файл больше первого?.. Трям.
2. Прямое стирание — лишняя операция и, соответственно, нагрузка. Ресурс ссд, в котором, по сути, используются те же модули нанд (да, аффтар?) имеют конечное количество циклов перезаписи и тратить их ради вашей прихоти...
Хотя, вы, разумеется, умнее команды инженеров производителей ссд.

Сообщение отправлено из мобильного приложения iGuides
12 августа 2013 в 04:13
#
–4
А неугодные коменты тут удаляют? Хорошо! Но я упрямый.
Автор решительно ничего не понимает в том, о чем пишет — дилетант.

Сообщение отправлено из мобильного приложения iGuides
12 августа 2013 в 04:09
#
0
Drum2146 прав — автор решительно не понимает о чём пишет, хотя базовый принцип достаточно прост.
Суть — в отличии от привычных нам накопителей с магнитным типом записи (HDD, все ленточные типы) прежде чем перезаписать информацию на SSD ячейки нужно обнулить, что и взывает падение производительности.
Помимо у каждой ячейки есть ограниченное количество операций перезаписи и контроллер следит чтоб количество циклов было равномерным, но эти вещи по большому счёту уже к TRIM не относятся.

Кто-то сказал о удалении файла целиком — идея правильная, но тогда операции удаления будут длительными и контроллеру всё равно нужно узнать, что требуемые ячейки обнулены.
Этим и занимается TRIM — в момент простоя диска затирает "пустые" ячейки.

Сообщение отправлено из мобильного приложения iGuides
13 августа 2013 в 01:33
#
Александр
–2
кстати да, как и писал JMMA — а подобное реально сделать на айос?
13 августа 2013 в 01:44
#