up
ГлавнаяБлогБезопасностьЖелезоПрограммированиеАдминистрирование
BashHTMLPHPSSDRAMFreeBSDBenchmarkDebianCPUMySQLHDDLinuxPerlCentOS

Популярные статьи
Категория “Железо

Сравнение носителей SATA, SAS, SSD и RAID-массивов с ними

Всем известны параметры производительности дисковых подсистем в теории. Но что на практике? Многие задают этот вопрос, некоторые строят свои гипотезы. Я решил провести серию тестов и определить "Who is who". Приступил к тестированию всеми известными утилитами dd, hdparm, далее перешел к fio, sysbench. Также был произведен ряд тестов используя UnixBench и несколько других аналогов. Было построено ряд графиков, но по мере дальнейшего тестирования было обнаружено что большинство этого ПО непригодно для адекватного сравнения разных дисков.
С помощью fio можно было составить сравнительную таблицу или график для SAS, SATA, но при тестировании SSD оказалось, что полученные результаты вовсе непригодны. Я конечно уважаю разработчиков этого всего софта, но в этот момент было принято решение создать ряд не синтетических тестов, а более близких к реальной обстановке.

Сразу скажу, что параметры теста и сами машинки были подобраны таким образом, чтобы результаты теста не были искажены типом процессора, его частотой или другими параметрами.

Тест 1
Создание файлов
В течении восьми циклов генерировалось создание небольших файлов с хаотическим содержанием и с постепенным ростом количества файлов на цикл. По каждому циклу измерялось время выполнения.
http://habr.habrastorage.org/post_images/216/74e/dcd/21674edcd4c5660cad003f61eec0fe90.png
Из графика видно что большую скорость создания файлов имеют SSD KINGSTON SV300S3 и почти не зависят от их количества. Также стоит отметить что именно эти диски имеют более прямолинейную шкалу
По SAS дискам в Hardware RAID видно что скорость зависит от типа рейда, но совсем не зависит от количества дисков.
Но больше времени тратится не на создание файлов, как оказалось, а на их перезапись. По этому перейдем к второму тесту.

Тест 2
Перезапись файлов
Повторялись те что операции что в первом тесте, но файлы не создавались новые каждый раз, а использовался один и тот же файл, в который записывалась каждый раз новая информация.
http://habr.habrastorage.org/post_images/054/6be/c1e/0546bec1e8293fb9d59957155db29802.png
Сразу бросается в глаза ужасная картина по дискам SATA 7,200 rpm MB2000GCVBR. Медленная запись и по 2x 300GB SAS SEAGATE. По этому решил выбросить их из графика для наглядности по остальным.
http://habr.habrastorage.org/post_images/61e/339/9ba/61e3399ba28264ef83d590a436a3ad58.png
Самой быстрой подсистемой оказался одиночный SSD KINGSTON. Второе и третье место заняли 8x SEAGATE ST3300657SS и 4x SEAGATE ST3300657SS. Также видим что с ростом количества SSD в массиве скорость немного падает.

Тест 3
MySQL. Комбинирование sql-запросов INSERT, SELECT, UPDATE, DELETE
Была создана InnoDB таблица со следующей структурой:

CREATE TABLE `table` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`time` int(11) NOT NULL,
`uid` int(11) NOT NULL,
`status` varchar(32) NOT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;

Одновременно генерировалось несколько запросов:
- INSERT;
- UPDATE с выборкой по PRIMARY KEY;
- UPDATE с выборкой по FULLTEXT (поиск по 4 символам из 24-х): WHERE `status` LIKE '%(string)%';
- DELETE FROM  с выборкой по PRIMARY KEY;
- DELETE FROM  с выборкой без использования ключа: WHERE `time`>(int);
- SELECT  с выборкой без использования ключа: WHERE `time`>(int);
- SELECT с выборкой по PRIMARY KEY;
- SELECT с выборкой по FULLTEXT (поиск по 4 символам из 24-х): WHERE `status` LIKE '%(string)%';
- SELECT с выборкой без использования ключа: WHERE `uid`>(int).

http://habr.habrastorage.org/post_images/b85/efd/6e1/b85efd6e1de25b354db662a68983a6fa.png
И снова наблюдаем ту же картину что во втором тесте.
http://habr.habrastorage.org/post_images/e18/e22/bc7/e18e22bc7b57e43816671e5b64be33c0.png

В следующих тестах использую утилиту sysbench, которая генерирует файлы большого объема:
128 файлов, общим размером 10 Гб, 30 Гб и 50 Гб.
Размер блока 4 Кб.
Сразу хочу обратить внимание, что на некоторых графиках, по некоторым серверам нету данных на 10 Гб. Это связано с тем что на данных машинах имеется оперативной памяти более 10 Гб и выполняется кэширование данных. Отсутствие некоторых результатов на 50 Гб обусловлено нехваткой дискового пространства, в случае с SSD KINGSTON SV300S3.

Тест 4
Линейная запись (создание файлов)
http://habr.habrastorage.org/post_images/585/c25/a60/585c25a606bc1605b63b410f83f47f0a.png
Видно что лучшие показатели имеются у всех вариациях с SSD KINGSTON SV300S3, а также у 8x SEAGATE ST3300657SS в RAID10. Очень хорошо просматривается рост скорости с увеличение количества дисков SAS.
Здесь тот самый момент, где отлично видно что SSD совершенно разные бывают. Разница в 4 раза!

Тест 5
Линейная запись (перезапись файлов)
http://habr.habrastorage.org/post_images/07e/fdb/fbe/07efdbfbec5f2095b3d6755edf7dbf1d.png
Лидеры все те же. Если сравнивать 2x SSD от INTEL и 2x SAS разницы практически никакой.

Тест 6
Линейное чтение
http://habr.habrastorage.org/post_images/f05/dee/b60/f05deeb6056de14193a7ab4fa69447a7.png
Здесь же видим чуть иную картину. Лидируют 4x SSD KINGSTON RAID10, с минимальным изменением результатов при увеличении объема файлов, и 8x SEAGATE в RAID10, с постепенным спадом скорости, на скоростях 700 Мбит/сек и 600 Мбит/сек.
Линии по 1x SSD KINGSTON и 2x SSD KINGSTON RAID1 совпали. Проще говоря для линейного чтения лучше брать или RAID10 или одиночный диск. Использование RAID1 не оправдано.
Хорошо видно что показали 2x SAS RAID1 и 4x SAS RAID10 очень похожи. Но при увеличении количества дисков в два раза просматривается огромный прирост скорости.
2x SSD Intel RAID1 имеет не малое падение скорости на промежутке 10 Гб - 30 Гб, а далее идут на одной скорости с SATA RAID1.

Тест 7
Рандомное чтение
http://habr.habrastorage.org/post_images/df2/950/5a2/df29505a23c6ec0161cc2929d7f19576.png
В лидерах все SSD:
- 4x KINGSTON RAID10;
- 2x KINGSTON RAID1, 2x INTEL RAID1;
- 1 KINGSTON.

Всех остальных скопировал на следующий график для наглядности.
http://habr.habrastorage.org/post_images/cb3/2f9/297/cb32f9297627c216f801203ab347164f.png
Наивысшую скорость среди этих имеет естественно 8x SAS RAID10, но скорость резко падает. Но исходя из данных по 2x SAS и 4x SAS предположу что с дальнейшем ростом объемом скорость стабилизируется.

Тест 8
Рандомная запись
http://habr.habrastorage.org/post_images/c76/27f/47e/c7627f47e4ab397c406923c8c7d744a0.png
Отличные показатели имеет 2x 120GB SSD INTEL SSDSC2CT12 Hardware RAID1 SAS1068E со стабильной скоростью 30 Мбит/сек. По KINGSTON с ростом количества дисков скорость, как ни странно, падает. На четвертом месте 8x SAS SEAGATE.

Тест 9
Комбинированные операции рандомного чтения и записи
Все мы знаем, что ни на одном сервере нету только чтения или только записи. Всегда выполняются обе операции. И в большинстве случаев это как раз рандомные операции, а не линейные. И так, посмотрим, что у нас получилось.
http://habr.habrastorage.org/post_images/932/1bb/dfe/9321bbdfe2bbbd1cf595c4f17472d38a.png
За счет отличной скорости записи с большим отрывом идет 2x SSD INTEL, за которым следует SSD KINGSTON. Третье место разделили 2x SSD KINGSTON и 8x SAS SEAGATE.

Тест 10
После проведения всех этих тестов я решил что будет удобно вывести зависимость скорости от соотношения операций рандомного чтения и рандомной записи.
http://habr.habrastorage.org/post_images/11b/1fe/36b/11b1fe36bbaa607c246cca419c27391c.png
У кого рост скорости, у кого падение, а у 8x SAS RAID10 прямая линия.

Тест 11
Произвел также сравнение больших массивов из SAS дисков, по которому видно, что от скорости диска больше зависит, чем от их количества.
http://habr.habrastorage.org/post_images/39a/f68/bcb/39af68bcbf8d0270d3ef6cc351daa0c5.png

Пришло время подвести итоги.
Машин было много, но не достаточно. К сожалению мне не удалось определить являются ли показатели по SSD INTEL SSDSC2CT12 их особенностью или же особенностью рейдового контроллера. Но полагаю, что таки контроллера.

  • С ростом количества SAS дисков в массиве все показатели только улучшаются.

  • Для MySQL медленные подсистемы это SATA RAID1 и SAS RAID1. По остальным отличия есть, но они не столь существенны.

  • Для линейно записи хороши как большие массивы из SAS дисков в RAID10, так и SSD. Смысла использовать массивы из SSD нет. Стоимость растет, а производительность на месте.

  • Для линейного чтения хороши любые большие массивы. Но на практике лин. чтение без записи у нас почти не встретить.

  • Рандомное чтение за SSD одиночными или в Software RAID.

  • Для рандомной записи лучше использовать Hardware RAID из SSD, хотя не сильно поступаются и одиночные SSD.

  • Рандомные чтение/запись, то есть один из самых важных показателей, имеют лучшие результаты на Hardware RAID из SSD.

  • Обобщая все вышесказанное, для большинства задач лучше использовать большие массивы (>=8) из SAS или Hardware RAID из SSD. Но для некоторых задач корректнее будет использовать одинарные SSD.

  • Исходя из объемов SSD, которые преимущественно предлагаются на нашем рынке, под VDS-ноды стоит использовать максимальной производительности процессоры в паре с большими SAS массивами или же средненькие процессоры и одинарные SSD. Считаю что использование hw raid для двух SSD будет дороговато.

  • Если вам необходима быстрая система и нет необходимости в большом дисковом пространстве 2x SSD в Hardware RAID будет лучшим выбором. Если желаете немного сэкономить в ущерб производительности, тогда можно взять одинарный SSD или два SSD в софтовом рейде.

Вопросы, которые остались без ответов:

  • Что происходит при увеличении количества SSD в Hardware RAID?

  • Что дешевле под виртуальные сервера: дорогие машинки и один большой массив из SAS или же несколько средненьких серверов с одинарными SSD? В этом вопросе также следует учесть надежность/долговечность SAS и SSD, так как по последним ходят разные слухи.

Кроме перечисленных тестов и серверов было еще множество, но они не попали в результаты, так как на них проводилась "калибровка" тестов и многие их них были признаны некорректными.
Также производилось тестирование RAMDisk. Показатели были довольно хорошие, но не лучшие. Вероятно из-за того что это была виртуальная машина.

Все тесты, кроме последнего, производились только на выделенных серверах.

Благодарности:

  • vds4you за предоставление большого числа виртуальных машин, на основании которых производилась калибровка тестов;

  • PlusServer за предоставление четырех первых тестируемых машин на SSD/SAS, которые довольно таки продолжительное время тестировались. К сожалению в данные графики они попали. А также двух SATA из текущих тестов;

  • FastVPS за предоставление всех серверов с SSD KINGSTON;

  • ServerClub за предоставление машин с SSD INTEL Hardware RAID, а также всех машин с SAS дисками;

  • всем кто принимал участие в обсуждении первоначальных тестов, в частности на форуме searchengines

По материалам статьи из habrahabr

Monday, 18 August 2014, 09:20Прочитано 58 раз
Ссылка на страницу:

comments powered by Disqus

Чаще всего ищут

Статистика блога
Статтей: 177
Безопасность: 9
Железо: 19
Программирование: 14
Администрирование: 134