Почему заполненный SSD записывает медленнее старого жёсткого диска и сколько места на нём оставлять
Знакомая картина: купили ноутбук с SSD, первый год всё летало. Потом вы копируете на диск папку с фотографиями из отпуска, первые секунды окошко показывает сотни мегабайт в секунду, а затем скорость проваливается в несколько раз, и дальше файлы ползут, как на старом компьютере. Диск при этом исправен. Просто на нём почти не осталось свободного места.
Сразу оговорюсь: тормозит именно запись. Игры и Windows с заполненного диска грузятся так же быстро, ведь загрузка — это чтение, а скорость чтения от заполненности почти не зависит. Страдает всё, что на диск пишется: копирование файлов, установка игр, распаковка архивов, обновления системы.
Звучит странно: SSD же не жёсткий диск, ему не нужно гонять головку по пластине, и какая разница, сколько на нём файлов. Разница есть, и она прячется в том, как SSD умудряется писать быстро.
Большинство современных SSD хранят в одной ячейке памяти три бита (TLC) или даже четыре (QLC). Так дешевле, но выставлять в ячейке столько уровней заряда приходится медленно и аккуратно. Поэтому производители идут на хитрость: часть пустых ячеек временно работает в режиме SLC, по одному биту на ячейку. Такая запись в разы быстрее, но и места тратит втрое-вчетверо больше. Получается скоростной черновик: новые данные сначала падают туда, а потом, когда диск простаивает, контроллер спокойно переписывает их в основную память.
А теперь главное: черновик собирают из свободного места. Пока диск пустой, его много. Когда диск заполняется, черновику просто не из чего строиться.
Лучше всего это видно по Samsung 870 QVO на 1 ТБ, недорогому SSD на памяти QLC. Samsung честно пишет в спецификации: заявленные 530 МБ/с записи измерены с включённым буфером TurboWrite. Буфер может разрастись до 42 ГБ, но, как выяснили в PC Gamer, для этого на диске должно быть свободно 168 ГБ. Чем меньше свободного места, тем меньше буфер, а на почти полном диске от него остаётся только постоянная часть на 6 ГБ. А когда кончается и она, скорость записи, по данным самой Samsung, падает до 80 МБ/с. Обычный жёсткий диск WD Blue на 1 ТБ стабильно пишет 150 МБ/с, почти вдвое быстрее.
То есть копирование видео на 20 ГБ на почти заполненный 870 QVO большей частью пройдёт со скоростью ниже, чем у обычного жёсткого диска. На пустом диске то же видео целиком влезло бы в быстрый буфер.
Можно решить, что это беда только дешёвых дисков на памяти QLC. Не только. Сайт TechPowerUp в каждом обзоре заполняет SSD до конца и смотрит, что происходит со скоростью. Lexar NM710, обычный NVMe-накопитель, держит 1-1,5 ГБ/с примерно до 70 % заполнения, а потом проседает до 500 МБ/с. Kingston NV3 после исчерпания кэша падает до 200 МБ/с. Team Group MP44L на почти полном диске пишет около 300 МБ/с. Это всё ещё быстрее жёсткого диска, но совсем не те скорости, за которые платили.
Есть и вторая причина, менее заметная. SSD не умеет записывать новые данные поверх старых. Он пишет только в чистые страницы памяти, а стирать умеет лишь целыми блоками, в которых много страниц. Поэтому контроллер постоянно занят уборкой: собирает ещё нужные данные из полупустых блоков, переносит их в другое место и освобождает блок целиком. Пока свободных блоков много, уборка идёт незаметно в фоне. Когда их почти нет, контроллеру приходится убирать прямо во время вашей записи. Производители знают об этом и прячут от пользователя резерв: у серверных SSD Samsung по умолчанию это 6,7 % ёмкости, скрытые от вас и нужные контроллеру именно для этой уборки. Этот резерв можно увеличить: у дисков Samsung в программе Magician, у любых других — оставив часть диска неразмеченной.
Хорошая новость: всё это обратимо. Стоит освободить место и дать диску немного постоять без нагрузки, как контроллер перенесёт данные из черновика в основную память, и черновик снова вырастет. TechPowerUp прямо отмечает, что после простоя полная скорость записи возвращается.
Узнать, как ведёт себя именно ваш диск, несложно. Модель видна в «Диспетчере устройств» в разделе «Дисковые устройства». Дальше достаточно найти её обзор на TechPowerUp: в каждом обзоре SSD там есть раздел pSLC Cache с графиком записи на весь объём, где видно, сколько гигабайт диск пишет быстро и до какой скорости проседает потом. Если память в нём QLC, за заполнением нужно следить особенно внимательно.
Сколько же места оставлять? Единой цифры нет, она зависит от модели. Но ориентиры понятны: тому же 870 QVO для полного буфера нужно свободными около 17 % ёмкости, а Lexar NM710 начинает сдавать после 70 % заполнения, то есть при 30 % свободного места. Если не хочется изучать обзор своей модели, держите свободными 20-30 % диска. Особенно это важно для дешёвых SSD на памяти QLC и для системного диска, куда постоянно что-то пишется.
И проверьте, что Windows помогает диску. Для этого откройте командную строку и введите fsutil behavior query DisableDeleteNotify. Ноль в ответе значит, что включён TRIM: система сообщает диску, какие блоки после удаления файлов можно освобождать. По умолчанию Windows раз в неделю ещё и проходится по SSD своей «Оптимизацией дисков». Это не дефрагментация, а повторная отправка тех же команд TRIM, так что выключать её не нужно.
А теперь признайтесь: насколько заполнен ваш SSD прямо сейчас и замечали ли вы, что копирование вдруг проседает?
Источник: download.semiconductor.samsung.com





2 комментария
Где интересно они такое указывали? Пока что скорее похоже на то, что ИИ помощник кое-что криво посчитал. До сих пор считал, что у них скрытая область (spare area) составляет прибл. 12,7%, читай: заводской ОР (Over-provisioning) равен ~14,5% (потому что указывая процент ОР, всегда берут за 100% именно доступный пользователю объём). Даже у потребительских SSD с наименьшим объёмом этой области, она составляет ~6,9% (для точности: 6,87%). И тем самым ОР равен 7,37%, для простоты просто округляют на 7%. У Вашей же 970Ево Плюс (как впрочем и у упомянутой Lexar NM710) эта область равна грубо 9% и ОР тем самым составляет ~10%.
P.S.: ах да, помнится в одном из старых даташитов ~2019-го года Самсунг указывал формулу, мол, «как высчитывается процент ОР/Over-Provisioning» и приводил в примере гипотетические числа, мол 8х100/120 = 6.7 %. Так вот — это просто пример для объяснения формулы и числа взяты с потолка, чтобы не объяснять более сложными реальными числами. И нету у них таких «серверных SSD».
Далее понравилось предложение:
После которого идут немного странные фантазии, хотя именно у QLC-SATA-шника (особенно если он безбуферный, коим 870 QVO правда не является) тенденция указана правильно — 20-25% реально полезно держать свободными. Тут согласен. Но это скорее исключение, так сказать: worst case. Для современного TLC-NVMe-шника (коим в Вашем примере и является NM710), даже безбуферного, но в нормальной системе с рабочими HMB и TRIM — тут 10-15% более чем достаточно (то есть 15% — даже с разумным запасом. Я бы сказал: 6-7% = абсолютный минимум, а вдвойне, то есть 13+% = абсолютно беспроблемная зона). Откуда взялись 30%? — подозреваю, что из хромающей интерпретации тестов на сайте TPU. Одним словом, «общую рекомендацию» в конце, мол «Если не хочется изучать обзор своей модели, держите свободными 20-30 % диска.» можно спокойно поделить на 2, чтобы не пугать народ необходимостью излишней осторожности.
Про завершительную путаницу понятий «включённый TRIM» и «работающий TRIM» просто скромно промолчу — если бы ИИ-шке дали пару наводящих вопросов и заставили тем самым немного глубже копнуть, то думаю быстро бы получился более точный текст (но это не точно — не ручаюсь, т.к. сам нейронки пока не использую).
Добавить комментарий