Даже когда старенький бюджетный SSD уже явно предательски подтормаживает, не стоит поспешно его списывать. Проблема далеко не всегда в физическом износе. Зачастую корень проблемы кроется в банальной нехватке свободного пространства.
В каждом твердотельном накопителе работают свои специальные алгоритмы управления данными на аппаратном уровне. И когда диск заполнен почти полностью, контроллеру крайне сложно выполнять базовые функции.
В этой связи немного о механике работы флеш-памяти и о том, почему реальная скорость SSD так сильно зависит от объема свободного местом на нем.
! Скриншоты игр тихо убивают SSD компа: почему и что делать?
Как SSD работает с данными и зачем ему место
Твердотельные накопители хранят информацию в энергонезависимой флеш-памяти типа NAND. Данные пишутся не хаотично, а структурированно: в мелкие ячейки (страницы), которые объединяются в более крупные блоки.
Основная особенность NAND-памяти состоит в том, что контроллер не может просто взять и перезаписать старый файл поверх существующего.
Сначала он записывает новые данные на свободную страницу, а старую помечает как недействительную. Но чтобы физически очистить эту ячейку для следующих записей, SSD должен полностью стереть весь блок. А для этого нужно предварительно эвакуировать все актуальные данные из соседних ячеек в безопасное место.
Этот фоновый процесс очистки называется garbage collection, т.е. буквально — «сбор мусора«. Данные контроллер тасует непрерывно, группирует нужную информацию и зачищает блоки целиком. Параллельно он следит за тем, чтобы все ячейки памяти изнашивались более-менее равномерно.
Естественно, чем больше на диске свободного места, тем проще контроллеру жонглировать блоками. А когда SSD заполнен, свободных пустых ячеек почти не остается. Следовательно, каждая новая запись данных неизбежно превращается в сложный многоэтапный процесс с постоянным перемещением файлов, что моментально роняет скорость записи. На дешевых дисках это особенно заметно в силу самой их архитектуры.

Почему бюджетные накопители так тормозят при записи
У большинства бюджетных SSD часть ёмкости задействуется под так называемый SLC-кэш. Это скоростная буферная зона: ячейка памяти в таком режиме хранит всего один бит информации (Single-Level Cell), обеспечивая таким образом максимальную скорость записи.
Основной же массив памяти в недорогих дисках построен на чипах TLC (три бита в ячейке) или QLC (четыре бита). Такая плотность позволяет увеличить объем накопителя, но сильно снижает скорость доступа к каждой ячейке — контроллеру приходится тратить время на распознавание множества уровней напряжения.
Как это работает на практике. К примеру, на диск копируем большой фильм. Контроллер быстро закидывает данные в шустрый SLC-кэш (скорость летит в потолок). А затем, в фоновом режиме, накопитель неспешно переносит этот файл из кэша в основную медленную TLC/QLC память.
И все бы ничего, но когда диск заполнен, копирование таких тяжелых файлов становится большой проблемой. Буферный SLC-кэш быстро переполняется, и SSD вынужден писать данные напрямую в медленные TLC/QLC ячейки. Скорость записи падает катастрофически — у бюджетных моделей уровня Crucial BX500 она может просесть до унылых 40 МБ/с.
Когда свободного места совсем мало, объем SLC-кэша динамически сжимается, и диск начинает тормозить практически сразу.
! Почему новый SSD такой медленный: о чем не говорят в рекламе
Правило резерва!
У моделей покруче и подороже, например, у Samsung 870 EVO, предусмотрена жестко зарезервированная аппаратная зону (около 9% от общего объема), к которой у пользователя нет доступа. Это как бы «резерв» именно для маневров по сбору мусора.
На бюджетных накопителях весь объем доступен пользователю, однако на них тоже можно (и нужно!) сделать такой же резерв места. У специалистов этот называется «оверпровижининг» (от over-provisioning). То бишь, часть диска оставляется либо неразмеченной, либо файлы туда не копируются.
Объем памяти, которая выделяется на на SSD под резерв рассчитывается тоже просто:
- на диске объемом 1 ТБ держим свободными от 100 до 200 ГБ;
- для старых и/или бюджетных накопителей оптимальный размер свободной зоны составляет 15-20% от общей емкости.
! Реальная скорость диска нового MacBook или Mac: чем и как её проверить
Удаление «призраков» посредством TRIM
Да, выделить резерв места на диске — это очень хорошо, но недостаточно. Надо также обеспечить контроллеру возможность точно «видеть», какие именно ячейки больше не содержат полезных данных.
Когда файл удаляется, операционная система лишь стирает запись о нем в списке файлов, но данные после этого все равно остаются в ячейках NAND.
Здесь помогает спец.команда TRIM. Она работает как связной: передает накопителю список блоков, которые можно безболезненно очистить во время фоновой «сборки мусора».
В современных ОС процесс обычно автоматизирован. В Windows оптимизация запускается по внутреннему расписанию, а в Linux этим управляет системный таймер.
Но если нужно запустить очистку вручную или проверить статус службы, то делается это через консоль следующими командами:
sudo fstrim -av
… принудительный вызов TRIM для всех примонтированных дисков в Linux
systemctl status fstrim.timer
… проверка статуса автоматического таймера регулярной очистки в systemd
Ну и не забываем самое-самое главное правило, которое стопудово помогает любому SSD жить долго и работать быстро: диск всегда берем с хорошим запасом. Диск на 2 ТБ, заполненный наполовину, всегда будет работать стабильнее и быстрее, чем терабайтник, забитый полностью!
! Поддельная карта памяти или флешка: чем и как выявить такую до, а не после