При растущем многообразии SSD под корпоративные приложения, простое их ранжирование по цене/объему не дает содержательной информации пользователю. Хочешь производительности и оправданных затрат — докапывайся до сути рабочих нагрузок.
При HDD жилось просто. Чтобы определиться с начинкой сервера, хватало двух параметров: объема дисков и скорости вращения шпинделя. Выбор производителя HDD был уже вкусовщиной. При SSD все поменялось. Важно все: кто сделал накопитель, на каком типе памяти, в какой формат упаковал (SATA/SAS SSD — PCIe SSD — NVMe SSD), какой поставил в него контроллер, какие заложил прошивки, какими средствами защитил данные, чем обеспечил стабильность характеристик и запас ресурса — голова идет кругом.
Взять Intel. Подчиняясь внутреннему «тик-таку», компания каждые два года усложняет матрицу серверных SSD. Может, ее маркетологам видятся новые ниши, а может, конкуренты заставляют дробить старые в угоду ценовым ожиданиям рынка. Приходится приспосабливаться к многоликости продуктов. Еще недавно под обслуживание корпоративных приложений Intel хватало двух семейств SATA SSD: DC S3500 и DC S3700 (DC — это Data Center, указание на целевой сегмент рынка накопителей SSD. C этого года Intel предлагает уже три семейства DC: S3510 / S3610 / S3710.
Не секрет, что в S3500 / S3700 использовался один контроллер (В новых S3510 / S3610 / S3710 контроллер тоже одинаков). Различие между семействами — в типе памяти (обычная MLC в S3500 и S3510, отборная HET MLC в S3700 / S3610 / S3710), прошивках и запасе резервных ячеек — он сильно влияет на критичные для SSD параметры: продуктивность записи с произвольным доступом (Random Write 4K IOPS) и износостойкость, предел суточной или общей перезаписи (Endurance). Заявленный ресурс S3500 был довольно скромен. Но и цена привлекательна. Из-за нее семейство всегда воспринималось как ценовая атака Intel на сегмент начальных серверов. Сменившее его S3510 почти в точности унаследовало все базовые показатели S3500. Цена осталась на прежнем уровне.
Источник: ark.intel.com
Другое дело S3700. Эти SSD с высокими показателями производительности и выдающимися ресурсными характеристиками заслуженно получили широкое хождение. Их много в канале продаж Intel локальным производителям серверов и в составе серверов A-brand. В то же время, относительная дороговизна S3700 давала конкурентам простор для маневра. Они им воспользовались и, без сомнения, повлияли на дальнейшую стратегию Intel.
У S3700 появилось два наследника по прямой: семейства S3610 и S3710. Диски S3610 в два с лишним раза дешевле, чем S3700, при одинаковом с ними объеме. S3710 дешевле процентов на 20. Если замещение S3500 почти идентичным ему S3510 никого не заинтриговало, то расщепление наследия S3700, напротив, породило любопытство. Попробуем тестами прощупать мотивы и намерения Intel, помимо предположения о «равномерном» заполнении продуктовых ниш в условиях конкуренции.
Постановка тестов
Мы взяли по одному диску одинаковой емкости 200GB из каждого семейства S3700 / S3610 / S3710. Их паспортные характеристики приведены в таблице.
Источник: ark.intel.com
Собрали стендовый сервер:
Все три диска подключили к портам контроллера LSI SAS HBA 9300-8i и поочередно прогнали тесты. Для создания нагрузки и измерения производительности использовались тестовые утилиты IOmeter v. 2008.06.18-RC2. Для дополнительной оценки поведения в линейных операциях чтения/записи воспользовались тестом ATTO Disk benchmark, которым обычно тестируют диски под видеоприложения.
С помощью IOmeter производительность оценивалась в трех типах тестов:
«База данных» (с типичным отношением операций чтения/записи 67R/33W), в диапазоне блоков 4К — 64К при длине очереди запросов Q=1... 64.
«Случайное чтение и запись» (от 100R/0W до 0R/100W, c промежуточными пропорциями чтения/записи), при блоках 4К — 64К и при длине очереди Q=1...64.
«Последовательное чтение и запись» блоков 64К — 16МБ при длине очереди Q=1...4 (100R и 100W).
Размер тестового файла 30GB составлял примерно половину RAM (64GB). При конфигурации тестов IOmeter блоки выравнивались до 4К для получения максимальной производительности SSD.
Перейдем к результатам.
«База данных» — IOmeter
Сводный график производительности всех трех SSD для часто встречающихся размеров блоков 4К — 8K — 64K нам нужен для качественной оценки поведения семейств под смешанной нагрузкой.
У SSD с интерфейсом SATA и встроенной очередью команд NCQ, «насыщение» производительности происходит при максимальной глубине очереди Q=32:
При работе с короткими блоками различия в производительности S3700-S3610-S3610 в абсолютных значениях существенны, иногда превышая 10 %. При блоке 64К показатели всех 3-х дисков практически выравниваются.
В реальной жизни в дисковых подсистемах на SSD большие очереди встречаются относительно редко, это ярко выраженные пики нагрузок. Ввиду своей низкой латентности и высокого быстродействия, обычно SSD работают с небольшими очередями в 1-4 запроса.
Посмотрим на показатели SSD при длине очереди Q = 2 и Q =4, при двух типичных для баз данных размерах блока данных — 8К и 64К.
«Мощный старик» S3700 примерно на 12% производительнее S3710. Тот, в свою очередь, обгоняет S3610 на 7%. Существенно ли повышение производительности на 12% для пользователя — зависит от его нагрузок. Кому-то безразличен прирост на 1000 IOPs при блоках 4К, а кому критична прибавка 300 IOPS на блоках 64К.
Интересны графики попарного соотношения производительности семейств во всем диапазоне размеров блок и длины очереди команд.
Ветеран S3700 не просто бьет старшего наследника S3710 почти во всех комбинациях, но делает это уверенно, иногда с запасом в 15-20%.
Более дорогой из новичков S3710 предсказуемо превосходит S3610 на 3-13% во всем диапазоне измерений.
«Случайное чтение (100%) и запись (100%)» — Iometer
Пограничные случаи чистого чтения или чистой записи интересны прежде всего для сверки с заявленными производителем показателями.
После построения графика создалось впечатление, что несколько кривых потеряно, но это «оптический обман». Просто кривые S3710 (блок 4К) и S3610 (блок 4К) наслоились друг на друга, такая же ситуация и с кривыми S3710 (блок 8К) и S3610 (блок 8К). Значит, производительность SSD S3710 и S3610 в этом тесте одинаковая.
По-иному обстоят дела с записью. Лидером на коротких блоках является S3710. С увеличением размера блока отличие в производительности SSD исчезает.
Примечательно, что насыщение производительности происходит при небольших значениях длины очереди, а для блока 64К длина очереди не влияет на производительность. На самом деле это важно — в бизнес-приложениях (базы данных, виртуальные среды) SSD серверного класса зачастую работают на запись на очень коротких очередях.
«Случайное чтение и запись», в переменной пропорции — IOmeter
Очень наглядный тест. Фиксируется размер блока данных и длина очереди команд. Замеряется производительность при разных пропорциях операций чтения/записи. Получаемые кривые показательны: видно, при каком профиле нагрузки проявляются сильные и слабые стороны накопителя. Усматривая здесь «невидимую руку», можно предполагать намерения производителя по целевым приложениям SSD.
Тестировали при двух размерах блока данных, 4К и 64К.
S3700 показывает лучшие результаты и на самом «неприятном» для SSD профиле 50/50 (поровну операций чтения и записи), и вблизи профиля 70/30 (70% чтения/30% записи), характерного для работы баз данных. Особенно хорошо это видно на графике латентности.
SSD при краевых нагрузках имеют фактически одинаковую латентность, при нагрузке 50/50 отличие становится существенным. Исходя из результатов тестов, применение S3700 на профилях нагрузки от 80/20 (файловые сервера) до 70/30 (базы данных) обеспечит лучшую производительность.
Для блока 64К ситуация похожая, за исключением того, что даже при большой доле записи в запросах ввода/вывода превосходство S3700 сохраняется.
Посмотрим на соотношение производительности семейств при длине очереди Q =2, 4 и 8. Сперва сравним показатели S3710 и S3700 в IOPS по всему диапазону пропорций чтения/записи (размер блоков 4 К и 64К).
При работе с короткими блоками 4К при нагрузке 50/50 S3710 проигрывает по быстродействию 12-18%. На блоке 64К разница в производительности будет зависеть от длины очереди (например, при Q=2 S3710 может потерять до 20% производительности, но уже при Q = 8 и нагрузке 90/10 его превосходство может составить почти 8%).
Сравним между собой S3710 и S3610.
При коротких блоках S3710 работает быстрее в среднем на 7-10%, при размере блока 64К превышение производительности может достигать 25%.
«Последовательное чтение и запись» — IOmeter
Для сравнения выбраны три размера блока 64KB, 512KB и 8MB (64KB — пограничный размер между случайными и последовательными операциями ввода/вывода, 512KB — начальный размер блока при работе с видео форматами, 8MB — стандартный размер блока при копировании больших файлов). График с абсолютными значениями приводить не будем, более наглядны показатели теста ATTO Disk Benchmark ниже. Посмотрим на соотношение производительности в процентном соотношении.
Длина очереди варьируется от 1 до 4 (Q=1 — однопотоковая нагрузка, Q=2...4 — многопотоковая нагрузка).
Начинаем с пары S3710 — S3700.
При последовательном чтении производительность S3710 примерно на 10% выше, чем у S3700, зато при последовательной записи уже S3710 уступает S3700 от 15 до 30%. Ветеран продолжает приятно удивлять.
Следующая пара S3710 — S3610.
При последовательном чтении преимущество S3710 незначительное, несколько процентов (за исключением ситуации блок 512K/Q=1 — где преимущество составляет 10%). При увеличении размера блока до 8МB показатели производительности чтения этой пары SSD выравниваются. При записи разница довольно существенная — 20-25%.
Тест ATTO Disk Benchmark
Бесплатная утилита ATTO Disk Benchmark используется для оценки производительности хранилища данных при последовательных операциях ввода / вывода.
Имитируем режим многопоточности (Q=2, два потока), с блоком 8МB (основной размер блока при копировании файлов). Выбираем максимальный размер файла 2GB.
S3700
S3610
S3710
После увеличения размера блока начиная с 64К скорость записи (последовательная операция) для S3610 и S3710 не меняется, а для S3700 «насыщение» записи происходит на блоке 512К (минимальный размер блока в диапазоне видео форматов).
Разумных оснований для использования семейств 3610-3710 в видеопроизводстве нет — с их высокой удельной ценой хранения. Потому практическая ценность линейных тестов невелика.
Послевкусие
Всегда хочется понять логику нарезки большого сегмента рынка (в данном случае, серверных SSD) на уровни. В случае с Intel изучать слоеную матрицу продуктов тем интереснее, что она обширна и хорошо структурирована, сами SSD доступны по цене и в большой степени задают тон на массовом серверном рынке.
Зачем Intel понадобились три слоя семейств (S3510-S3610-S3710) там, где раньше хватало двух (S3500-S3700)? Простое тому объяснение состоит в том, что SSD активно замещают HDD, заходят на новые роли в корпоративных приложениях и дифференцированный подход к их проектированию — простое следствие механического роста рынка.
Сравнительный анализ поведения SSD разных поколений показывает, что не все так прямолинейно. При детальном копании под переменными профилями нагрузок проявляются явные сдвиги в приоритетах производителя. Все хотят быть «рыночными», и Intel тоже. Только для аутсайдеров «быть рыночными» обычно означает низкую цену продукта. Лидеры корректируют продукты сообразно меняющимся требованиям задач, под которые они производятся.
S3510 мы посчитали прямой заменой S3500 в нижнем сегменте — где невелики и нагрузки, и требования к производительности. Заморачиваться поиском оттенков серого не стали. Ограничились сравнением флагманского S3700 cо сменщиками S3610 и S3710 и обоих новичков между собой.
Удивило давно выпускаемое семейство S3700. В целом ряде задач на синтетических тестах ветеран превосходит позиционируемого ему на замену S3710. Для дотошных пользователей это сигнал не спешить списывать S3700 со счетов.
S3610 и S3710 в задачах чтения показывают практически равную производительность, в задачах записи старшая модель S3710 имеет явное превосходство, вплоть до 20-25%. Различная у них и расчетная износостойкость: S3710, как и S3700, рассчитан на перезапись до 10 своих объемов ежедневно в течении гарантийного срока, S3610 — на перезапись до 3-х своих объемов ежедневно.
Понятны оптимальные области применения каждого: если приложения интенсивно обновляют данные на дисках и крайне критичны к быстродействию записи — выбираем серию S3700-S3710. Если требования более скромные (ресурса трехкратной перезаписи в сутки достаточно и снижение потолка производительности записи на 10% не смущает) — можно ставить S3610.
S3610 и S3710 имеют привлекательное соотношение производительность/стоимость. Парировать высокие нагрузки приложений стало дешевле — цена S3710 на 20% ниже S3700. В целом, все три новых серверных семейства Intel SSD S3510 / S3610 / S3710 так кучно заполняют сегмент серверных SATA SSD, что не составляет труда подобрать подходящее решение в нужном бюджете. Но может случиться и так, что спрос поляризуется: на дешевое/объемное и дорогое/производительное. Не так велик разлет показателей этих SSD, чтобы выуживать преимущества кончиками пальцев. Грубой силой (ценой за гигабайт) народу как-то привычнее.