На одном из наших проектов нам перестало хватать производительности дисковой подсистемы на сервере БД. Одним из решений было начать использовать дисковый массив с большим количеством шпинделей, но звучали аргументы против. Во-первых, дисковый массив + HBA (external SATA у сервера нет) стоит как 2 новых сервера. Во-вторых, дисковый массив занимает как минимум 2U. В-третьих, дисковый массив предоставит терабайты, которые, строго говоря, не нужны (размер БД + временные таблицы укладываются в 40 гигабайт максимум).

Поэтому мы подумали, почему бы не попробовать SSD. И взяли 4 Intel X25-E по 32Gb каждый. Объеденили их в 2 массива RAID0 (из-за специфики проекта мы готовы мириться с потерей данных при выходе из строя одного из устройств) и посмотрели что получилось.

Получилось следующее:

Скорость линейной записи, мерялась
time bash -c 'dd if=/dev/zero of=bigfile bs=16K count=256K; sync'
Результаты трех запусков: 14.318 сек., 14.732 сек., 14.687 сек.
Что в среднем нам дает 280 мегабайт в секунду.

Скорость линейного чтения, мерялась
echo 3 > /proc/sys/vm/drop_caches; time bash -c 'cat bigfile > /dev/null'
Результаты трех запусков: 10.586 сек., 9.626 сек., 9.643 сек.
В среднем получаем 411 мегабайт в секунду.

Сам Intel заявляет скорость записи/чтения 170/250 мегабайт в секунду. Учитывая RAID0 и наш «детский» бенчмарк, цифры более-менее сходятся.

На самом деле, самое интересное — это посмотреть на случайные, нелинейные операции IO, т.к. SSD не приходится ждать «поворота» диска.

Продолжение