TRIM на Mac: только для OEM-накопителей Apple
Мы уже знаем, что твердотельные накопители записывают данные блоками размером 4 Кбайт. В процессе перемещения данных, удаления устаревших данных и использования освободившегося места для новых данных используются блоки большего объёма. Данный процесс известен под термином “сборка мусора” и характерен для любого SSD.
Проблема состоит в том, что твердотельные накопители и операционные системы обычно не находятся в состоянии тесного диалога. Когда вы удаляете файл, ОС отмечает пространство, которое занимают соответствующие данные, как свободное, но об этом ничего не известно самому накопителю. Спустя некоторое время образуется много свободного места (с точки зрения операционной системы), которое SSD рассматривает как по-прежнему занятое нужными данными. И лишь когда ОС даёт команду на запись информации на блок, который заполнен данными, SSD наконец-то выясняет, что эти данные уже не нужны. До определённого момента такие фрагменты данных раскиданы по всему объёму накопителя (так называемые “точки сборки мусора”, garbage collection), замедляя работу накопителя и изнашивая свободные ячейки памяти NAND.
Именно здесь и вступает в игру команда TRIM. Когда файл удалён, операционная система отправляет SSD-накопителю команду TRIM, отмечая такие сектора как освободившиеся. В данной ситуации накопитель “знает”, что на этих секторах не нужно выполнять “сборку мусора”.
Разумеется, поддержка TRIM должна присутствовать на нескольких различных уровнях. Накопитель, контроллер и операционная система должны быть совместимы. К счастью, процесс создания экосистемы, обеспечивающей выполнение команды TRIM, начался достаточно давно. Windows 7, Windows 8, Windows Server 2008, Linux, OpenSolaris, FreeBSD и OS X – все эти системы имеют поддержку TRIM.
Но лишь тот факт, что комбинация “железа” и ПО обеспечивает поддержку TRIM, ещё не означает, что команда будет всегда работать. В случае с последними версиями Windows нам повезло, так как мы имеем дело с открытыми ОС, обеспечивающими широкую совместимость. Но Apple не столь доброжелательна. Она позволяет использовать TRIM только на своих OEM-накопителях, тогда как при установке стороннего SSD после покупки компьютера Mac данная функция отключена.
Способы обойти это искусственное ограничение не являются секретными. В данном обзоре мы покажем нашим читателям один из таких способов, после чего проведём несколько тестов, чтобы удостовериться в его эффективности.
Тестовый SSD: Samsung 840 Pro
В отличие от MacBook Air, требующего использование SSD-накопителя в проприетарном форм-факторе (например, Aura Pro 6G + Envoy от компании OWC), MacBook Pro обеспечивает большую гибкость: вы можете использовать SSD форм-фактора 2,5 дюйма. Это даёт возможность применять любые накопители, поддерживающие различные технологии контроллера и версии прошивки. Samsung 840 Pro – хороший пример для сегодняшнего теста. Это один из самых быстрых SSD, которые мы когда-либо тестировали, и в результате мы используем именно его в конфигурации всех наших тестовых стендов. Вместе с тем, 840 Pro не поддерживает технологию DuraWrite от SandForce/LSI, не выигрывает в скорости от сжатия данных, а его контроллер использует собственную технологию “сборки мусора”. В случае с накопителем Aura Pro для MacBook Air, производитель заявляет, что включение TRIM не требуется: данный накопитель основан на контроллере SandForce/LSI, и технология DuraWrite устраняет необходимость в использовании TRIM на аппаратном уровне. На самом деле, всё не совсем верно, поскольку DuraWrite и TRIM – скорее комплиментарные, взаимодополняющие друг друга технологии. Так или иначе, при использовании Samsung 840 Pro на MacBook Pro у нас появляется больше оснований включить команду TRIM.
Хотя Samsung недавно представила новый 840 EVO, который в скором времени должен заменить “обычный” SSD 840, старшая модель 840 Pro по-прежнему является флагманской в линейке. Напомним, что данный накопитель основан на собственном контроллере S4LN021X01-8030 NZWD1 и использует для передачи данных интерфейс SATA 6 Гбит/с. В моделях 840 и 840 EVO применяется 3-битная ячейка NAND (технология Tri Level Sell – TLS), что сказывается на надёжности и производительности. Но накопители Pro-серии основаны на хорошо нам знакомой MLC-памяти, производимой на базе 21-нм технологии.
Технические характеристики Samsung 840 Pro
Производитель | Samsung |
Модель | 840 Pro |
Серийный номер | MZ-7PD256 |
Форм-фактор | 2,5″ (7 мм) |
Ёмкость | 256 Гбайт |
Цена | $240 |
Контроллер | Samsung MDX |
Тип памяти NAND | 21 нм MLC Toggle-mode |
Скорость последовательного чтения/записи | 540 / 520 Мбайт/с |
Производительность случайных операций чтения/записи (4 Кбайт, глубина очереди = 32), IOPS | 100,000 / 90,000 |
Объём зарезервированного пространства (over-provisioning) | 0,07 |
Кэш | 512 Мбайт |
Интерфейс | SATA Гбит/с |
Дополнения | ПО Samsung Magician |
Гарантия | Пять лет |
TRIM Enabler, тестовая система и ПО
Вновь повторимся, что Apple поддерживает TRIM через OS X, но лишь когда вы используете один из OEM-накопителей, идущих в составе компьютера. Как только вы заменяете тот или иной накопитель, TRIM отключается. Мы слышали страшные истории про включение TRIM с помощью сторонних утилит, и именно по этой причине решили проверить результат на собственном опыте.
К счастью, ограничения Apple в отношении сторонних SSD оказались не слишком жёсткими с точки зрения аппаратного обеспечения. Нужно выполнить некоторые манипуляции, чтобы обеспечить требования Apple к SSD, но процедура подробно описана на сайте GitHub.
На этот раз, чтобы не тратить время, мы решили сразу опробовать утилиту TRIM Enabler. Она максимально проста в использовании. В программе нужно лишь сдвинуть слайдер слева направо – и готово. Следует учесть один нюанс, а именно то, что при обновлении операционной системы вам, вероятно, потребуется заново повторить данную процедуру.
Прежде чем использовать TRIM Enabler, необходимо включить в настройках системы опцию, обеспечивающую возможность установки ПО любого происхождения, а не только те, что доступны через App Store или сертифицированных разработчиков.
Тестовая система и ПО
В качестве тестовой системы мы используем MacBook Pro. Если говорить конкретнее, то речь идёт о самой компактной модели одиннадцатого поколения, представленной в середине 2012 года, также известной как MacBook Pro с диагональю экрана 9,2 дюйма.
Изначально ноутбук оснащён жёстким диском объёмом 500 Гбайт, который мы вынули и поместили во внешний бокс с интерфейсом USB 3.0. Его место в корпусе ноутбука занял SSD-накопитель Samsung 840 Pro. Система бы загружена с оригинального жёсткого диска.
Apple MacBook Pro | |
Модель | MacBook Pro |
Номер модели | MacBookPro9,2 |
Процессор | Intel Core i5-3210M |
Тактовая частота | 2,5 ГГц |
Количество ядер | 2 |
Кэш L2 (на ядро) | 256 Кбайт |
Общий кэш L3 | 3 Мбайт |
Память | 4 Гбайт |
Системный жёсткий диск | Seagate ST500LM012 (500 Гбайт; 5400 об/мин) |
Тестовое ПО
Мы заставим Samsung 840 Pro пройти два раунда тестовых испытаний. Во-первых, мы выполним полную очистку накопителя – для этой задачи используется процедура secure erase, которая даёт команду контроллеру очистить все блоки на диске. Затем приводим накопитель в состояние, в котором он находился на момент продажи, то есть в этом состоянии он обладал максимально возможной производительностью. Затем мы проведём первый раунд тестов, который включает прогон AJA System Test и DiskTester дважды без использования TRIM. Это даёт наглядное сравнение производительности свежего накопителя “из коробки” и накопителя, который достаточно долго использовали при стандартной повседневной нагрузке.
Во втором раунде тестирования мы вновь воспроизведём процедуру secure erase, а затем снова дважды прогоним набор бенчмарков уже со включённой командой TRIM. Таким образом, в общей сложности мы получаем четыре результата:
- TRIM отключена, первый прогон тестов (состояние “из коробки”).
- TRIM отключена, второй прогон тестов (накопитель после активного использования).
- TRIM включена, первый прогон тестов (состояние “из коробки”).
- TRIM включена, второй прогон тестов (накопитель после активного использования).
Вот подробный отчёт о ходе тестовых испытаний:
- Установка TRIM Enabler и перезагрузка MacBook Pro – только для второго раунда.
- Запуск бенчмарка AJA System Test (размер тестового файла 16 Гбайт).
- Полное заполнение накопителя данными с помощью DiskTester трижды для имитации использованного SSD.
- Полное заполнение SSD-накопителя видеофайлами.
- Перерыв 30 минут.
- Запуск бенчмарка AJA System Test (размер тестового файла 16 Гбайт).
- Запуск бенчмарка DiskTester (размер блоков 4 Кбайт и 8 Кбайт).
AJA System Test и DiskTester
Бенчмарки AJA System Test и DiskTester показывают, что Samsung 840 Pro SSD обеспечивает несколько лучшую производительность MacBook Pro при работающей команде TRIM, чем без неё. Тем не менее, разница в производительности мала. Просто помните о том, что включение TRIM имеет целью не только ускорение накопителя, но и сокращение интенсивности записи (write amplification), что повышает срок жизни накопителя.
Согласно DiskTester, SSD-накопитель Samsung в состоянии “из коробки” обеспечивает скорость последовательного чтения блоками по 4 Кбайт на уровне 51,1 Мбайт/с без TRIM, но при включении команды TRIM скорость повышается до 51,5 Мбайт/с. AJA System Test показывает сходные результаты. С другой стороны, результаты также показывают, что большее влияние на производительность SSD обеспечивает включение TRIM на диске, которым активно пользовались. Этот эффект наиболее выражен в тесте последовательного чтения бенчмарка AJA System Test, где скорость передачи данных повышается с 466,7 Мбайт/с до 512,1 Мбайт/с после включения команды TRIM.
AJA System Test
DiskTester
Включение TRIM почти всегда оправданно
Мы потратили немало времени в разговорах с профессионалами рынка SSD, включая представителей LSI, которые подтвердили, что TRIM приносит пользу, даже если контроллер спроектирован таким образом, чтобы очищать большую часть пространства на SSD. Таким образом, если накопители на базе контроллера SandForce могут получать какие-либо преимущества от использования TRIM, то это касается и любого другого твердотельного накопителя, который вы решите установить. Следовательно, включение TRIM имеет смысл, даже если Apple пытается искусственно удержать от этого своих пользователей.
Какой результат оказывает включение TRIM? Наши бенчмарки AJA System Test и DiskTester показывают, что реальный прирост производительности даже в синтетических тестах весьма мал. На практике вы вряд ли заметите повышение производительности после включения TRIM. Но можно вполне оправданно включить TRIM, и таким образом немного повысить производительность.
Источник: LSI/SandForce
Более важными, с точки зрения включения TRIM, являются задачи повышения срока жизни накопителя. Если команду TRIM отключить, операционная система будет знать о том, что данные удалены, но не будет иметь возможности сообщить об этом контроллеру. В свою очередь, SSD продолжает обходить эти данные при выполнении “сборки мусора”, без необходимости стирая ячейки памяти с устаревшими данными. Это означает, что в какой-то момент SSD будет заполнен данными, оставив контроллеру возможность использовать только зарезервированное пространство (over-provisioning). Для большинства накопителей объём резервного пространства составляет от семи до двенадцати процентов, и включает место для функций прошивки, вроде замены bad-блоков.