Коэффициент усиления записи в SSD: почему диск пишет больше данных, чем нужно

96 комментарии
Любой современный SSD на NAND-памяти физически записывает больше данных, чем отдаёт ему компьютер. Это явление называется коэффициентом усиления записи (WAF) и заложено в самой архитектуре флэш-памяти. Объясняем, как работает механизм, какие значения считаются нормальными и почему производители держат часть ёмкости диска скрытой

При копировании файла на SSD на флэш-память записывается больше данных, чем отправил компьютер. У этого явления есть название — коэффициент усиления записи, или WAF (write amplification factor). Объясняем, откуда берётся разница, какие значения считаются нормальными для домашних накопителей и что можно сделать, чтобы коэффициент не разгонялся.

Откуда берётся усиление записи

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

Корень проблемы в том, как устроена сама микросхема NAND. Память разбита на блоки, блоки — на страницы. Запись и чтение выполняются на уровне страницы, а вот стирание — только на уровне блока целиком. Размеры зависят от поколения и типа памяти: типичная страница — от 4 до 16 КБ, типичный блок — от 512 КБ до нескольких мегабайт и содержит десятки или сотни страниц.

NAND-память — тип энергонезависимой флэш-памяти, в котором ячейки объединены в последовательные цепочки. Используется в SSD, USB-накопителях, картах памяти и встроенной памяти смартфонов.

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

Чтобы хост (компьютер) не обращал внимания на эту внутреннюю кухню, контроллер ведёт собственную таблицу соответствия логических адресов физическим страницам — flash translation layer, FTL. Хост обращается к диску по логическому адресу, а по этой таблице контроллер находит физическое расположение нужных страниц.

Простой пример с двумя блоками

Допустим, в накопителе всего два блока, A и B, по пять страниц в каждом (в реальности страниц в блоке гораздо больше, но для наглядности возьмём упрощённую модель). В блоке A — две действительные страницы и три недействительные, в блоке B — одна недействительная и четыре пустые. Хост отправляет команду на запись пяти страниц новых данных.

Чтобы освободить блок A, контроллер сначала переносит две действительные страницы из A в свободные ячейки блока B. Затем стирает блок A полностью и записывает в него пять страниц данных хоста. Чтобы выполнить запрос хоста на пять страниц, накопителю пришлось физически записать семь страниц. Коэффициент усиления записи в этом сценарии — 7/5, то есть 1,4.

Коэффициент усиления записи (WAF, write amplification factor) — отношение объёма данных, физически записанных во флэш-память, к объёму, отправленному хостом. Идеал — 1,0. На практике величина зависит от характера нагрузки, степени заполнения накопителя и алгоритмов контроллера.

Какие значения WAF считаются нормальными

Цифра зависит от сценария. При длинной последовательной записи на пустой или полупустой диск коэффициент близок к единице: контроллер просто пишет данные в свободные блоки, ничего лишнего двигать не приходится. При смешанной нагрузке с большим числом мелких случайных записей — той самой, которую генерирует обычная работа Windows или macOS, — в Crucial оценивают типичный WAF для бытовых накопителей в диапазоне от 2 до 4. То есть на каждый мегабайт, отправленный системой, в NAND физически записывается от двух до четырёх мегабайт.

На рост коэффициента влияют четыре основных фактора: степень заполнения диска (чем плотнее забит, тем активнее работает сборка мусора), доля случайных записей короткими блоками, размер этих блоков относительно страницы NAND и качество алгоритмов контроллера. Когда свободного места почти не остаётся, WAF может уйти далеко за десятку.

Точное значение для конкретного накопителя можно узнать из SMART. У NVMe-дисков с поддержкой расширенного журнала Open Compute Project формула простая: поле Physical Media Units Written из журнала 0xC0 нужно разделить на Data Units Written из стандартного журнала SMART/Health (0x02). У дисков без OCP-журнала придётся искать вендорские атрибуты вроде Host Writes и NAND Writes в утилитах мониторинга — имена и идентификаторы зависят от производителя контроллера.

TRIM, сборка мусора, выравнивание износа

Без трёх внутренних механизмов SSD деградировали бы за считаные месяцы интенсивной записи. Эти же механизмы и порождают дополнительные записи, увеличивая WAF.

  • TRIM. Команда, через которую операционная система сообщает контроллеру, какие логические блоки больше не содержат полезных данных. Без сигнала TRIM у контроллера нет информации, что часть страниц можно списывать в утиль, и при сборке мусора они продолжают аккуратно переноситься с блока на блок.
  • Сборка мусора (garbage collection). Фоновая операция, в ходе которой контроллер находит блоки с большим количеством недействительных страниц, переносит остатки действующих данных в другие места и стирает освободившиеся блоки.
  • Выравнивание износа (wear leveling). Распределение операций записи по всем блокам так, чтобы ни один не износился раньше остальных. Иногда требует принудительного перемещения статических данных, которые иначе годами лежали бы на одних и тех же ячейках.

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

Зачем SSD нужно скрытое место (Over Provisioning)

Часть микросхем NAND в накопителе недоступна хосту — она зарезервирована для нужд контроллера. Эта скрытая область называется избыточным резервированием, или Over Provisioning.

Over Provisioning — технология, при которой часть физической ёмкости SSD скрывается от операционной системы и используется контроллером под сборку мусора, выравнивание износа и горячий резерв вместо изношенных ячеек. Чем больше резерв, тем стабильнее производительность при заполненном диске и тем выше ресурс.

В Phison объясняют, что у избыточного резерва обычно три составляющих. Первая — разница между двоичной и десятичной ёмкостью: NAND-кристаллы изготавливают в двоичных объёмах (128 ГиБ), а SSD продают в десятичных (128 ГБ). Эта разница автоматически даёт примерно 7,37% скрытой ёмкости. Вторая составляющая — запас, который производитель задаёт на этапе прошивки. У потребительских SSD он чаще всего нулевой, у серверных серий поверх первых 7,37% добавляют ещё 20–28%. Третья составляющая — свободное место, оставленное пользователем: контроллер использует его как динамический резерв.

Чем плотнее диск забит, тем агрессивнее идёт сборка мусора, тем больше дополнительных записей она требует и тем сильнее растёт WAF. По этой причине рекомендуют не заполнять потребительский SSD больше чем на 80–90% от номинального объёма. Оставленные 10–20% работают как дополнительный буфер для контроллера — фактически ручное избыточное резервирование. У SSD Samsung объём явно зарезервированной области настраивается через утилиту Samsung Magician в разделе Over Provisioning.

Что в итоге может сделать пользователь

comss img 2026 05 13 120936

Полностью убрать усиление записи нельзя — это не настройка, а следствие самой архитектуры NAND. Зато можно не давать коэффициенту разгоняться:

  • Держать на потребительском SSD как минимум 10–20% свободного места. Простая привычка, эффект которой на ресурс заметнее любых программных настроек.
  • Проверить, что TRIM включён. В Windows команда
    fsutil behavior query DisableDeleteNotify
    возвращает 0, когда TRIM активен. В Linux есть служба fstrim.timer, в macOS TRIM включён по умолчанию для штатных SSD.
  • Для накопителей Samsung — задействовать избыточное резервирование через раздел Over Provisioning в утилите Samsung Magician, если на диске стабильно остаётся много свободного места. На пользовательских сценариях прирост скромный, на тяжёлой записи — заметный.
  • Не паниковать из-за заголовков вроде «каждый файл изнашивает SSD сильнее, чем вы думаете». У современных потребительских накопителей ресурс по TBW рассчитан с запасом именно на тот WAF, который реально складывается при бытовой нагрузке.

Что важно запомнить о WAF

Усиление записи — не дефект конкретного диска и не повод немедленно менять SSD, а плата за плотность и скорость флэш-памяти по сравнению с жёсткими дисками. Полезно понимать механику, чтобы не оставлять накопитель забитым под пробку и не пугаться, когда показания SMART показывают, что объём записи в NAND превышает объём, переданный с хоста. У бытового SSD при обычной эксплуатации картина именно такая.

Автор: По материалам makeuseof
Комментарии и отзывы

Нашли ошибку?

Новое на сайте