Сравнение дисковых подсистем: SATA, SAS, SSD

в 8:35, , рубрики: linux, sas, SATA, ssd, диски, Железо, производительность, метки: , , , ,

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

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

Тест 1

Создание файлов

В течении восьми циклов генерировалось создание небольших файлов с хаотическим содержанием и с постепенным ростом количества файлов на цикл. По каждому циклу измерялось время выполнения.
Сравнение дисковых подсистем: SATA, SAS, SSD
Из графика видно что большую скорость создания файлов имеют SSD KINGSTON SV300S3 и почти не зависят от их количества. Также стоит отметить что именно эти диски имеют более прямолинейную шкалу
По SAS дискам в Hardware RAID видно что скорость зависит от типа рейда, но совсем не зависит от количества дисков.
Но больше времени тратится не на создание файлов, как оказалось, а на их перезапись. По этому перейдем к второму тесту.

Тест 2

Перезапись файлов

Повторялись те что операции что в первом тесте, но файлы не создавались новые каждый раз, а использовался один и тот же файл, в который записывалась каждый раз новая информация.
Сравнение дисковых подсистем: SATA, SAS, SSD
Сразу бросается в глаза ужасная картина по дискам SATA 7,200 rpm MB2000GCVBR. Медленная запись и по 2x 300GB SAS SEAGATE. По этому решил выбросить их из графика для наглядности по остальным.
Сравнение дисковых подсистем: SATA, SAS, SSD
Самой быстрой подсистемой оказался одиночный 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).

Сравнение дисковых подсистем: SATA, SAS, SSD
И снова наблюдаем ту же картину что во втором тесте.
Сравнение дисковых подсистем: SATA, SAS, SSD

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

Тест 4

Линейная запись (создание файлов)

Сравнение дисковых подсистем: SATA, SAS, SSD
Видно что лучшие показатели имеются у всех вариациях с SSD KINGSTON SV300S3, а также у 8x SEAGATE ST3300657SS в RAID10. Очень хорошо просматривается рост скорости с увеличение количества дисков SAS.
Здесь тот самый момент, где отлично видно что SSD совершенно разные бывают. Разница в 4 раза!

Тест 5

Линейная запись (перезапись файлов)

Сравнение дисковых подсистем: SATA, SAS, SSD
Лидеры все те же. Если сравнивать 2x SSD от INTEL и 2x SAS разницы практически никакой.

Тест 6

Линейное чтение

Сравнение дисковых подсистем: SATA, SAS, SSD
Здесь же видим чуть иную картину. Лидируют 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

Рандомное чтение

Сравнение дисковых подсистем: SATA, SAS, SSD
В лидерах все SSD:
— 4x KINGSTON RAID10;
— 2x KINGSTON RAID1, 2x INTEL RAID1;
— 1 KINGSTON.

Всех остальных скопировал на следующий график для наглядности.
Сравнение дисковых подсистем: SATA, SAS, SSD
Наивысшую скорость среди этих имеет естественно 8x SAS RAID10, но скорость резко падает. Но исходя из данных по 2x SAS и 4x SAS предположу что с дальнейшем ростом объемом скорость стабилизируется.

Тест 8

Рандомная запись

Сравнение дисковых подсистем: SATA, SAS, SSD
Отличные показатели имеет 2x 120GB SSD INTEL SSDSC2CT12 Hardware RAID1 SAS1068E со стабильной скоростью 30 Мбит/сек. По KINGSTON с ростом количества дисков скорость, как ни странно, падает. На четвертом месте 8x SAS SEAGATE.

Тест 9

Комбинированные операции рандомного чтения и записи

Все мы знаем, что ни на одном сервере нету только чтения или только записи. Всегда выполняются обе операции. И в большинстве случаев это как раз рандомные операции, а не линейные. И так, посмотрим, что у нас получилось.
Сравнение дисковых подсистем: SATA, SAS, SSD
За счет отличной скорости записи с большим отрывом идет 2x SSD INTEL, за которым следует SSD KINGSTON. Третье место разделили 2x SSD KINGSTON и 8x SAS SEAGATE.

Тест 10

После проведения всех этих тестов я решил что будет удобно вывести зависимость скорости от соотношения операций рандомного чтения и рандомной записи.
Сравнение дисковых подсистем: SATA, SAS, SSD
У кого рост скорости, у кого падение, а у 8x SAS RAID10 прямая линия.

Тест 11

Произвел также сравнение больших массивов из SAS дисков, по которому видно, что от скорости диска больше зависит, чем от их количества.
Сравнение дисковых подсистем: SATA, SAS, SSD

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

  1. С ростом количества SAS дисков в массиве все показатели только улучшаются.
  2. Для MySQL медленные подсистемы это SATA RAID1 и SAS RAID1. По остальным отличия есть, но они не столь существенны.
  3. Для линейно записи хороши как большие массивы из SAS дисков в RAID10, так и SSD. Смысла использовать массивы из SSD нет. Стоимость растет, а производительность на месте.
  4. Для линейного чтения хороши любые большие массивы. Но на практике лин. чтение без записи у нас почти не встретить.
  5. Рандомное чтение за SSD одиночными или в Software RAID.
  6. Для рандомной записи лучше использовать Hardware RAID из SSD, хотя не сильно поступаются и одиночные SSD.
  7. Рандомные чтение/запись, то есть один из самых важных показателей, имеют лучшие результаты на Hardware RAID из SSD.
  8. Обобщая все вышесказанное, для большинства задач лучше использовать большие массивы (>=8) из SAS или Hardware RAID из SSD. Но для некоторых задач корректнее будет использовать одинарные SSD.
  9. Исходя из объемов SSD, которые преимущественно предлагаются на нашем рынке, под VDS-ноды стоит использовать максимальной производительности процессоры в паре с большими SAS массивами или же средненькие процессоры и одинарные SSD. Считаю что использование hw raid для двух SSD будет дороговато.
  10. Если вам необходима быстрая система и нет необходимости в большом дисковом пространстве 2x SSD в Hardware RAID будет лучшим выбором. Если желаете немного сэкономить в ущерб производительности, тогда можно взять одинарный SSD или два SSD в софтовом рейде.

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

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

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

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

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

  1. vds4you за предоставление большого числа виртуальных машин, на основании которых производилась калибровка тестов;
  2. PlusServer за предоставление четырех первых тестируемых машин на SSD/SAS, которые довольно таки продолжительное время тестировались. К сожалению в данные графики они попали. А также двух SATA из текущих тестов;
  3. FastVPS за предоставление всех серверов с SSD KINGSTON;
  4. ServerClub за предоставление машин с SSD INTEL Hardware RAID, а также всех машин с SAS дисками;
  5. всем кто принимал участие в обсуждении первоначальных тестов, в частности на форуме searchengines

Автор: WapGraf

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js