Crucial M4: чем приходится платить за дополнительное место на диске?
Как известно, для ускорения обычных жёстких дисков существует технология "короткого рабочего хода" - short stroking. За счёт уменьшения доступного дискового пространства работа HDD оптимизируется таким образом, что скорость становится заметно выше. Нечто подобное реализовано для SSD-накопителей и называется "перекрытием данных" (over-provisoning). Термин, который по-русски звучит несколько коряво, означает резервирование места на диске для сохранения высокой производительности и стабильной работы диска в процессе эксплуатации.
Технология "перекрытия" широко используется в SSD-накопителях Intel – и, можно сказать, Intel является главным идеологом данного подхода. Но стоимость дискового пространства SSD-накопителя весьма недёшева – а именно от него и приходится отказываться ради большей надёжности. Правильно ли это?
Как мы уже отмечали, контроллер Marvel в реализации SSD-дисков Crucial имеет свои алгоритмы, позволяющие производить "сбор мусора" и стабилизировать производительность при заполнении диска. Возможно, данные механизмы работают не столь эффективно, как подход Intel, зато в распоряжении пользователя оказывается всё дисковое пространство, имеющееся на диске.
Да, это может немного удивлять, но в накопителях Crucial на основе контроллера Marvel "перекрытие данных" не применяется.
Чтобы понять, может ли это привести к снижению производительности и насколько это снижение критично, давайте сравним Crucial M4 с накопителем Intel 510-й серии, который также оснащён контроллером Marvel.
Crucial M4 256 Гбайт | Intel SSD 510 256 Гбайт | |
Чипы памяти NAND | 25нм MLC, ONFI 2.2 | 34нм MLC, ONFI 2.1 |
Объём памяти | 256 Гбайт | 256 Гбайт |
Доступно памяти | 256 Гбайт | 250 Гбайт |
Используется для "перекрывания" | 0% | 3,4% |
Объём в Windows | 238,5 Гбайт | 232,8 Гбайт |
Интерфейс | SATA 3 (6 Гбит/с) | SATA 3 (6 Гбит/с) |
Технология "перекрытия данных" работает следующим образом. На диске резервируется часть пространства. Как только вы начинается пользоваться диском, на нём появляются отдельные ячейки памяти, которые находятся не строго за занятыми ячейками, а как бы разбросаны по дисковому пространству, то есть среди "занятых" ячеек есть отдельные свободные. Информация о таких освободившихся ячейках собирается и хранится как "собранный мусор" (garbage collection), то есть набор адресов ячеек, которые можно перезаписывать.
Когда диск почти заполнен информацией, основная часть пока ещё доступного дискового пространства как раз приходится на garbage collection, на те области диска, где ранее хранилась какие-либо данные, а затем были удалены из операционной системы (но физически на диске ещё хранятся).
Таким образом, при почти полном заполнении наблюдается снижение скоростных характеристик диска, "вылечить" которое можно, лишь освободив побольше места на диске. В случае же подхода Intel, освобождать больше места не обязательно, так как это процедуру уже сделал производитель, зарезервировав часть пространства под "перекрытие".
Micron действует более демократично и ничего не резервирует: пользователь получает ровно столько места на диске, за сколько заплатил. Однако, нулевой процент "перекрытия" теоретически должен привести к медленной работе диска, когда его объём почти полностью заполнен данными.
Чтобы измерить снижение производительности, мы взяли два диска – Crucial и Intel – и просто копировали на них целые директории с загрузочного диска до тех пор, пока SSD не заполнился. Если проблема действительно существует – при заполнении диска скорость должна заметно упасть. Так как отдельные алгоритмы контроллера позволяют создавать "коллекции мусора" во время простоя диска, мы вынесли результаты замеров после получасового бездействия как отдельный пункт.
HD Tach RW | Производительность "чистого" диска (средняя скорость) | Производительность заполненного диска (средняя скорость) | После простоя 30 минут (средняя скорость) |
Intel SSD 510 250 Гбайт | чтение – 370.8 Мбайт/с; запись – 300.4 Мбайт/с |
чтение – 371.1 Мбайт/с; запись – 221.0 Мбайт/с |
чтение – 339.4 Мбайт/с; запись – 274.3 Мбайт/с |
Crucial M4 256 Гбайт | чтение – 391.2 Мбайт/с; запись – 233.8 Мбайт/с |
чтение – 177.1 Мбайт/с; запись – 253.6 Мбайт/с |
чтение – 156.2 Мбайт/с; запись – 253.9 Мбайт/с |
Как мы и ожидали, есть определённое снижение производительности, когда диск заполнен данными.
После получасового простоя на диске формируется "коллекция мусора", и наблюдается частичное восстановление скоростных характеристик, хотя до изначальных параметров "чистого" диска оба диска не дотягивают, причем Crucial – весьма значительно.
Посмотрим на графики производительности в зависимости от линейной характеристики заполнения.
Средняя скорость записи у Intel SSD 510 при заполнении снижается на 26,5%, но после простоя почти восстанавливается – потеря производительности составила 8,7% относительно "чистого" диска. Скорость чтения при заполнении диска практически не меняется, однако после простоя наблюдается снижение на 8,5%.
Что касается Crucial, то он в этом испытании показал откровенно слабый результат. Средняя скорость чтения при заполнении диска снижается на 55%, после простоя – на 60% относительно "чистого" диска. С записью дело обстоит более оптимистично: у заполненного диска отмечается прибавка на 8,5% от первоначального показателя, причём после выхода из режима ожидания такая скорость сохраняется.
Но и здесь не всё просто: рваный график, а также увеличение скорости записи у заполненного диска явно указывают на проблемы с прошивкой контроллера. Скорее всего, их можно будет исправить путем обновления микропрограммы – этот путь владельцы RealSSD C300 уже проходили, но компания Micron, судя по всему, не извлекла выводов из не менее спорного дебюта предшествующей модели. Пока же накопитель Crucial здесь явно уступает конкуренту.
Теперь же рассмотрим "сборку мусора" в ином ключе – как быстро ячейки памяти, занятые информацией, становятся вновь доступными для операционной системы после удаления данных.
Напомним, что за "возвращение" ранее занятых данными ячеек памяти отвечает команда TRIM. Она позволяет сообщить контроллеру, что ОС больше не использует фрагменты памяти на определённом участке диска. В отличии от полного уничтожения данных (Secure Erase), речь не идёт о реальном стирании на "физическом уровне" накопителя. Пока ячейки не перезаписаны, данные там сохраняются, но для операционной системы это пространство уже свободно.
Производительность записи после использования TRIM может быть ниже, так как на ячейках всё ещё остаются данные, а контроллеру перед записью новых данных необходимо переписывать целые блоки данных, а не отдельные ячейки.
Имеет ли место снижение скорости записи в реальных условиях, зависит от контроллера диска. Чтобы протестировать производительность диска после TRIM и повторной записи, мы полностью заполнили диск, а затем очистили его, переместив файлы в "Корзину" (что задействует команду TRIM). Если скорость последовательной записи окажется меньше, чем при полном уничтожения файлов с помощью Secure Erase, это укажет на узкое место в скорости перезаписи файлов.
Скорость последовательной записи | Secure Erase | После TRIM |
Intel SSD 510 250 Гбайт | 315,75 Мбайт/с | 308,86 Мбайт/с |
Crucial M4 256 Гбайт | 283,12 Мбайт/с | 279,36 Мбайт/с |
В самом деле, небольшое снижение производительности имеет место, но говорить о существенной разнице не приходится. Для Intel SSD 510 разница составила 3%, для Crucial M4 – 1,3%. Как видим, в данном случае о производительности можно не переживать.