Введение
О производительности твёрдотельных накопителей на основе флэш-памяти (так называемых SSD) ходит довольно много противоречивой информации. Конечно, результаты пиковой производительности новейших продуктов впечатляют (включая пропускную способность почти 250 Мбайт/с и до нескольких тысяч операций ввода/вывода в секунду), но в реальности скорость может быть совсем иной. Фактически, со временем производительность может снизиться до уровня, когда обычные жёсткие диски оказываются быстрее из-за их стабильной производительности.
Можно сказать, что современные SSD и выигрывают, и страдают из-за технологии флэш-памяти. Впрочем, если не брать неудачные модели, последнее поколение SSD от Intel и Samsung действительно демонстрирует больше “плюсов”, чем “минусов”.
Нажмите на картинку для увеличения.
От чего зависит производительность?
По сравнению с SSD на флэш-памяти, оценивать производительность жёстких дисков довольно просто: нужно знать пропускную способность в мегабайтах в секунду, а также время доступа в миллисекундах, причём относится это как к настольным, так и к мобильным винчестерам. Иногда не мешает сделать анализ производительности ввода/вывода продуктов для серверов и рабочих станцией, а уже потом принимать решение. Хотя эффективность энергопотребления становится всё более важной, именно результаты производительности оценивают прежде всего.
Тесты приложений помогают оценить производительность в реальных условиях, симулируя какие-либо рабочие сценарии. На производительности жёстких дисков исторически сказывались форм-фактор (3,5″/2,5″), технология записи, плотность записи и скорость вращения шпинделя. Другие факторы, такие как пропускная способность интерфейса или размер кэша, оказывались вторичными.
SSD отличаются
Конечно, жёсткие диски лучше всего подходят для последовательного чтения или записи данных – чем больше им нужно перепозиционировать головки для случайных операций, тем сильнее они будут замедляться как по пропускной способности, так и по числу операций ввода/вывода в секунду.
Именно здесь на помощь приходят SSD: они обладают очень маленьким временем доступа, поскольку данные достаточно просто найти в массиве памяти, а не передвигать физические компоненты. Кроме того, современные продукты способны выдать примерно в два раза большую пропускную способность, чем у обычного жёсткого диска, разбивая флэш-память на несколько каналов, как происходит в случае платформ с двух или трёхканальной оперативной памятью или в случае использования массивов RAID. А анализ производительности ввода/вывода показывает степень интеллекта флэш-контроллера, который используется в SSD, поскольку ему требуется дать максимальную производительность и в то же время обеспечить равномерный износ ячеек флэш-памяти.
По мере того, как SSD становились всё более сложными, они стали превращаться в своего рода “чёрные ящики”. Физическое расположение данных и стратегия хранения здесь не такие простые, как у жёстких дисков, где достаточно легко представить, как хранится информация. Впрочем, если посмотреть на тип флэш-памяти NAND, то можно предположить, будет ли твёрдотельный накопитель хорош только при последовательном чтении или он сможет дать высокую производительность записи и скорость ввода/вывода. Одноуровневые ячейки (Single-level cell, SLC) флэш-памяти работают быстрее; они хранят один кусочек информации в сегменте, поэтому и быстрые. Однако память SLC дорогая – иногда даже слишком, чтобы устанавливать её в накопители для массового рынка. Многоуровневые ячейки (Multi-level cell, MLC) флэш-памяти – всё более популярная альтернатива; в одном сегменте хранится несколько кусочков информации с помощью использования разных уровней напряжения, что даёт более высокую ёмкость.
Впрочем, комбинация “умных” контроллеров и многочисленных каналов флэш-памяти может привести к неправильному использованию доступных ресурсов. То есть последовательный поток записи никогда на самом деле не будет записываться последовательно. Тот факт, что файлы могут находиться где угодно, причём разными частями, от нескольких байт до многих гигабайтов, а также и то, что данные обычно считываются, записываются, стираются и переписываются – всё это добавляет уровни сложности, которые могут существенно повлиять на производительность твёрдотельных накопителей. Всё это станет ещё более выраженным, если вы заполните накопитель полностью, в результате чего у контроллера флэш-памяти будет меньше возможности оптимизировать производительность. К счастью, есть определённые меры предосторожности, которым можно следовать, да и прошивка накопителей улучшается. Обновления прошивки улучшают работу флэш-контроллеров, снижая разброс производительности. А будущие операционные системы смогут догнать по своему развитию SSD и работать с новыми файловыми системами так, чтобы они знали о характеристиках используемых накопителей.
“Копаем” глубже
Нажмите на картинку для увеличения.
Мы взяли два твёрдотельных накопителей Intel – X25-M на 80 Гбайт для энтузиастов и X25-E на 32 Гбайт для профессиональных применений, а также последний 256-Гбайт накопитель Samsung PB22-J чтобы выяснить, как меняется производительность накопителей при переходе от одной нагрузки к другой.
Мы решили не проводить тесты с заполненными “под завязку” накопителями, поскольку энтузиасты наверняка попытаются не заполнять свои быстрые системные диски файлами больше, чем это нужно, распределяя данные по дополнительным жёстким дискам. Мы решили уделить внимание переключению нагрузки с интенсивными операциями ввода/вывода и с последовательным чтением/записью на наших SSD, что позволяет получить хорошее представление о существующих ограничениях производительности.
Мы были одними из первых, кто обратил внимание на меняющуюся производительность SSD во время тестов
Мы впервые обратили внимание на изменение производительности при переходе от одной нагрузки к другой в сентябре 2008 года.
Мы обнаружили, что сделанные наблюдения верны и для всех других высокопроизводительных накопителей на MLC-памяти, а также и для многих моделей на SLC. Твёрдотельный накопитель X25-E на SLC-памяти мы тоже протестировали, поскольку он построен на том же дизайне, что и модель X25-M.
Нажмите на картинку для увеличения.
Что сделала Intel?
Зная об обстоятельствах, про которые
Мы провели тесты X25-M как со старой прошивкой 8160, так и с новой версией 8820. Вряд ли нужно говорить о том, что с новой прошивкой производительность при изменениях сценариев работы существенно возросла. Вы можете сделать обновление самостоятельно, при этом рекомендуется сначала зарезервировать данные.
Тестовая конфигурация
Системное аппаратное обеспечение | |
CPU | Intel Core i7 920 (45 нм, 2,66 ГГц, кэш L3 8 Мбайт) |
Материнская плата | Supermicro X8SAX (Socket LGA 1366), Rev. 1.0, чипсет: Intel X58 + ICH10R, BIOS: 1.0B |
Память | 3 x 1 Гбайт DDR3-1333 Corsair CM3X1024-1333C9DHX |
Системный жёсткий диск | Seagate NL35, 400 Гбайт, ST3400832NS, 7200 об/мин, SATA/150, кэш 8 Мбайт |
Блок питания | OCZ EliteXstream 800 Вт, OCZ800EXS-EU |
Тесты и настройки | |
Измерение производительности | h2benchw 3.12 |
Производительность ввода/вывода | IOMeter 2006.07.27 Database -Benchmark Fileserver-Benchmark Webserver-Benchmark Workserver-Benchmark |
Системное ПО и драйверы | |
ОС | Windows Vista Ultimate SP1 |
Драйверы чипсета Intel | 9.1.0.1007 |
Графические драйверы AMD | Radeon 8.12 |
Драйверы Intel Matrix Storage | 8.7.0.1007 |
Методика тестирования
Чтобы серьёзно нагрузить твёрдотельные накопители, на всех моделях мы проводили следующие циклы.
1 цикл.
- Тест последовательного чтения/записи h2benchw.
- Тест производительности ввода/вывода IOMeter в сценариях файлового сервера, сервера баз данных, web-сервера и рабочей станции.
2 цикл.
- Тест последовательного чтения/записи h2benchw.
- Тест производительности ввода/вывода IOMeter в сценариях файлового сервера, сервера баз данных, web-сервера и рабочей станции.
3 цикл.
- Тест последовательного чтения/записи h2benchw.
- Тест производительности ввода/вывода IOMeter в сценариях файлового сервера, сервера баз данных, web-сервера и рабочей станции.
4 цикл.
- Тест последовательного чтения/записи h2benchw.
5 цикл.
- Тест последовательного чтения/записи h2benchw.
6 цикл.
- Тест последовательного чтения/записи h2benchw.
Мы решили проводить циклы с тестом последовательного чтения/записи h2benchw, после чего сразу же переключались на сценарии с интенсивной нагрузкой ввода/вывода (три раза), так что накопителям пришлось переходить из режима с максимальной пропускной способностью в режим максимальной производительности ввода/вывода. Мы провели три дополнительных теста h2benchw, чтобы посмотреть, вернулись ли SSD к своим начальным уровням производительности.
SSD Intel X25-M для массового рынка (80 Гбайт) со старой прошивкой
Пропускная способность
Помните нашу процедуру тестирования: первые три прогона содержат тесты пропускной способности, за которыми следуют тесты ввода/вывода (их результаты приведены ниже), а последние три прогона включают в себя только тесты пропускной способности. Явно видно, что минимальная пропускная способность чтения падает с 224,9 Мбайт/с до 42,8 Мбайт/с, когда мы запускали на X25-M ещё и тест IOMeter.
На третьем цикле производительность падает ещё сильнее, и требуется подождать вплоть до шестого цикла, прежде чем пропускная способность восстановится. Очевидно, что X25-M с начальной прошивкой 8160 демонстрирует падение производительности. Пропускная способность может по-прежнему достигать максимума, но минимум в тесте пропускной способности h2benchw падает до всего 33,9 Мбайт/с.
Если производительность чтения всё же остаётся довольно терпимой из-за высоких максимальных и средних результатов, производительность потоковой записи можно назвать просто ужасной. Стоит выполнить один полный прогон теста IOMeter, как производительность последовательной записи падает с 65-80 Мбайт/с до всего 3,1-3,8 Мбайт/с. Хотя максимальная пропускная способность записи понемногу восстанавливается, минимальная всё равно находится на очень низком уровне всего 2,0-3,8 Мбайт/с что намного ниже, чем тот минимум, который может дать традиционный жёсткий диск. Даже результаты средней пропускной способности разочаровывают.
На данный момент мы должны отметить, что обновление прошивки Intel до версии 8820 даёт серьёзный прирост производительности по сравнению с приведёнными результатами.
Производительность ввода/вывода
Если результаты тестов пропускной способности серьёзно падают после каждого прогона тестов ввода/вывода, производительность ввода/вывода остаётся на довольно высоком уровне в случае сценария сервера баз данных. Впрочем, всё же видно некоторое падение, которое немного устраняется во время третьего прогона.
Результаты в сценарии файлового сервера иные, где считываются и записываются намного большие блоки, чем в сценарии сервера баз данных. Здесь производительность ввода/вывода увеличивается с 605 до 1763 операций ввода/вывода в секунду во время первого прогона, после чего достигает 915 операций ввода/вывода в секунду в третьем прогоне. Вполне видно, что интенсивная нагрузка последовательным чтением/записью положительно влияет на данный сценарий ввода/вывода. Однако за приростом производительности в 2,9 раз следует 50% падение, что тоже нельзя назвать идеальным.
Производительность сценария web-сервера не слишком сильно пострадала из-за наших циклов смены нагрузки, поскольку в данном случае тест на 100% состоит из считывания небольших случайных блоков, что SSD могут с высокой скоростью выполнить в любой ситуации. Однако производительность ввода/вывода всё равно падает с 11 154 до 9000 операций ввода/вывода в секунду, то есть на 20%.
Производительность ввода/вывода в сценарии рабочей станции тоже падает, но не так драматически. А теперь давайте посмотрим на результаты с новой прошивкой Intel 8820.
SSD Intel X25-M для массового рынка (80 Гбайт) с обновлённой прошивкой
Пропускная способность
Вы помните падение производительности минимальной пропускной способности чтения до 42 Мбайт/с со старой прошивкой? Инженеры Intel великолепно поработали над оптимизацией прошивки, поскольку в новой версии 8820 пропускная способность чтения падает не так существенно. После первого цикла h2benchw/IOMeter минимальная пропускная способность чтения оказалась 109 Мбайт/с, но уже после второго цикла X25-M смог перестроиться, обеспечив минимальную последовательную пропускную способность 200 Мбайт/с.
Хотя обновление прошивки не смогло предотвратить снижение минимальной пропускной способности записи всего до нескольких мегабайт в секунду, максимальные значения остаются на постоянном уровне 80 Мбайт/с, а средняя пропускная способность продолжает увеличиваться. Вполне понятно, что прошивка позволяет накопителю намного более эффективно реагировать на изменение рабочей нагрузки.
Производительность ввода/вывода
Мы всё ещё наблюдаем небольшое падение производительности, но прошивка 8820 не позволила упасть результатам очень сильно. Снижение с 3300 до 3100 операций ввода/вывода в секунду для сценария сервера баз данных вполне приемлемо.
Экстремальная разница в производительности в тестах с прошивкой 8160 исчезла с версией 8820, при этом производительность в сценарии файлового сервера продолжает увеличиваться.
Производительность в сценарии web-сервера не очень сильно меняется от разных сценариев нагрузки с новой прошивкой, накопитель X25-M даёт 11 400 операций ввода/вывода в секунду в сценарии web-сервера всё время.
Производительность в сценарии рабочей станции, где используются блоки размером от маленького до среднего, теперь иная. Хотя первый прогон показывает меньшую производительность ввода/вывода, чем со старой прошивкой, при следующих прогонах производительность увеличивается.
В целом, новая прошивка 8820 у накопителя X25-M даёт существенные улучшения по сравнению со старой версией 8160, поскольку производительность смогла оставаться на более высоком уровне, чем было возможно раньше. Последовательная пропускная способность и производительность ввода/вывода теперь более предсказуемы и близки к максимальным результатам. Если сравнивать с увеличением производительности после обновления драйвера или прошивки у видеокарт или материнских плат, улучшения в данном случае намного более существенны.
SSD Intel X25-E для профессионального рынка (32 Гбайт)
Пропускная способность
Накопитель Intel X25-E для профессионального рынка давал больше 200 Мбайт/с пропускной способности чтения независимо от нагрузки. Только в шестом прогоне мы обнаружили падение минимальной пропускной способности.
Здесь мы видим заметное влияние на пропускную способность последовательной записи перехода от последовательных сценариев к интенсивным по операциям ввода/вывода. Хотя влияние на максимальную пропускную способность записи невелико, средние результаты ощутимо страдают, а минимальная скорость падает довольно существенно. Однако минимальная пропускная способность записи на данном SSD с SLC-памятью всё равно намного лучше, чем у накопителей с MLC-памятью.
Производительность ввода/вывода
Сразу же подведём итог: в случае X25-E мы не заметили существенного падения производительности ввода/вывода. Данный накопитель на SLC-памяти смог обеспечить высокие уровни производительности даже после постоянной смены нагрузки. Впечатляет.
SSD Samsung PB22-J (256 Гбайт)
Пропускная способность
256-Гбайт твёрдотельный накопитель Samsung на MLC-памяти PB22-J обеспечивает обычно больше 200 Мбайт/с пропускной способности последовательного чтения, однако производительность падает, если нагружать SSD сценариями интенсивной нагрузки ввода/вывода между тестами последовательного чтения/записи. Впрочем, падение производительности довольно предсказуемое: в среднем, вы теряете около 15% пропускной способности, хотя минимальная пропускная способность чтения продолжает падать каждый цикл. Впрочем, в данном случае мы не видим причин, чтобы беспокоиться по поводу производительности.
Ситуация явно отличается для пропускной способности последовательной записи. Средняя и минимальная производительность продолжают падать каждый цикл тестов, включающий интенсивную нагрузку ввода/вывода. Но пропускная способность записи быстро восстанавливается, стоит убрать из сценария тесты ввода/вывода. Поскольку данный SSD был разработан для потребительского рынка, результаты вполне приемлемые, так как вы вряд ли будете подвергать твёрдотельный накопитель подобным тяжёлым нагрузкам ввода/вывода.
Производительность ввода/вывода
Производительность ввода/вывода у накопителя Samsung PB22-J SSD намного уступает уровню, который показывают продукты Intel, но хорошая новость заключается в том, что накопитель всё равно быстрее любого жёсткого диска, да и производительность ввода/вывода оказалась стабильной на протяжении нашего тяжёлого тестирования. Мы не обнаружили заметных падений производительности.
Заключение
Наше тестирование фокусируется на трёх самых мощных SSD на флэш-памяти от Intel и Samsung, при этом мы постарались проанализировать влияние на производительность изменения интенсивных нагрузок. Проблема становится всё более актуальной, поскольку алгоритмы распределения износа и оптимизации производительности пытаются подстроить работу накопителя под определённые типы нагрузки, иногда приводя к тому, что он начинает работать медленнее предполагаемого уровня. Фрагментация на уровне блоков остаётся основной проблемой, поскольку SSD на флэш-памяти хранят данные блоками по-иному, чем ваша файловая система, да и традиционные жёсткие диски.
Проблемы производительности
В наших циклах тестирования мы меняли традиционную нагрузку последовательной пропускной способности с нагрузкой ввода/вывода три раза, после чего добавили ещё три теста последовательной пропускной способности, чтобы посмотреть, способны SSD или нет возвратиться со спада производительности на высокий уровень пропускной способности, который можно было ожидать от SSD. Как и предполагалось, все твёрдотельные накопители показали падение производительности, но только у двух продуктов на основе флэш-памяти MLC падение можно назвать серьёзным. Влияние на производительность ввода/вывода обычно невелико и приемлемо, хотя пропускная способность у двух SSD на MLC-памяти от Intel и Samsung пострадала довольно сильно.
Intel X25-M остаётся самым быстрым твёрдотельным накопителем потребительского уровня, но только если вы
И решения
Мы считаем, что обновление прошивки твёрдотельных накопителей станет не менее популярным занятием, чем в случае BIOS материнских плат. Производительность подобных накопителей ещё есть, куда оптимизировать, и серьёзные производители SSD могут выжать ещё больше скорости. Поэтому имеет смысл устанавливать последнюю версию прошивки, не только чтобы избежать серьёзных падений производительности при изменении нагрузки, но и чтобы гарантировать максимальную скорость работы накопителя.
Среди других решений можно отметить следующее. Убедитесь, что нагрузка на ваш MLC-накопитель не будет часто меняться, поскольку это приведёт к заметному падению производительности. Среди подобной нагрузки можно отметить интенсивное скачивание/отдачу файлов через пиринговые приложения, а также любую активность, приводящую к фрагментации. Если фрагментация на файловом уровне, с которой вы наверняка знакомы, для SSD на основе флэш-памяти проблем не представляет, то от фрагментации на уровне блоков не уйти. В таком случае SSD приходится хранить данные по множеству ячеек флэш-памяти; это требует частого считывания, стирания и записи, что у большинства накопителей на MLC-памяти отнимает большую часть времени. Это происходит внутри SSD, на данный процесс не может повлиять контроллер SATA или операционная система. В то же время, следует избегать запуска традиционных утилит дефрагментации на SSD – они вроде как будут устранять дефрагментацию на файловом уровне, но на самом деле такие утилиты будут её увеличивать на уровне блоков.
Наконец, мы хотим напомнить, что флэш-накопители, которым не нужно реагировать на серьёзное изменение нагрузки, не покажут такое же падение производительности, как в нашем случае. Временные файлы и схожая работа со случайными данными не станут проблемой, если только они не будут представлять для SSD серьёзную нагрузку. Скоростные SSD, подобно тем, что мы использовали в данной статье, определённо быстрее, чем любой традиционный жёсткий диск.