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

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

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

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

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

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

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

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

Microsoft добавила поддержку TRIM в 2009 году с выпуском Windows 7, десктопная версия Lunix поддерживает эту команду с 2010 года, на OS X она появилась с выходом версии 10.6.8 в 2011 году, а на Android ее не было вплоть до версии 4.3, вышедшей в июле 2013.

outsidethebox.ms

Поддержка TRIM появляется на смартфонах и планшетах после обновления до Android 4.3 — команды уже настроена, оптимизирована и включается автоматически. К сожалению, до Android 4.3 пока мало что обновилось, почти ничего. У пользователей устройств на более ранних версиях Android есть только есть один способ повысить резко упавшую производительность системы — периодически делать сброс к заводским настройкам, стирая все данные.

Добавить комментарий