SSD vs SAS

link

Имеем два подопытных кролика: 2x SAS, hw raid1 и 2x SSD, hw raid1. Машины идентичны:
CPU 2x AMD Opteron 6164 HE 12-Core
RAM 16x Gigabyte RAM
RAID-Controller HP SmartArrayP410
Barebone Hewlett Packard DL165 G7

SAS
Vendor: SEAGATE 
Product: ST3300657SS
User Capacity: 300 GB
Logical block size: 512 bytes

SSD
Product: Samsung 840 Pro
User Capacity: 128 GB
Logical block size: 512 bytes

Тест 1: линейная запись

Код:
dd if=/dev/zero of=/tmp/testfile.bin bs=256k count=2048

SAS: 717 MB/s
SSD: 682 MB/s

Тест 2: линейное чтение

Код:
dd of=/dev/null if=/tmp/testfile.bin bs=512k count=1024

SAS: 1.7 GB/s
SSD: 2.1 GB/s

Тест 3:

Код:
hdparm -tT /dev/sda

Timing cached reads:*SAS 2438.26 MB/s; SSD 2484.01 MB/s
Timing buffered disk reads: SAS 2293.67 MB/s; SSD 219.26 MB/s

Тест 4: fio

Код:
[global]
bs=4k
size=256M
filename=test.file
direct=1
buffered=0
ioengine=libaio
iodepth=16

[seq-read]
rw=read
stonewall
name=Sequential reads

[rand-read]
rw=randread
stonewall
name=Random reads

[seq-write]
rw=write
stonewall
name=Sequential writes

[rand-write]
rw=randwrite
stonewall
name=Random writes

Sequential reads: SAS 161.82 MB/s 41426 iops; SSD 120.3 MB/s 30796 iops
Random reads: SAS 245.68 MB/s 62894 iops; SSD 125.8 MB/s 32204 iops
Sequential writes: SAS 225.75 MB/s 57791 iops; SSD 202.85 MB/s 51930 iops
Random writes: SAS 218.43 MB/s 55918 iops; SSD 187.82 MB/s 48082 iops

Тест 5: линейная запись (с другими параметрами)

Код:
dd if=/dev/zero of=testfile bs=64k count=16k conv=fdatasync

SAS: 205 MB/s
SSD: 61.8 MB/s

Тест 6: линейное чтение после очистки кэша

Код:
echo 3 > /proc/sys/vm/drop_caches
dd if=testfile of=/dev/null bs=64k

SAS: 389 MB/s
SSD: 192 MB/s

Тест 7: Unixbench
File Copy 1024 bufsize 20000 maxblocks: SAS 452 MB/s; SSD 477.71 MB/s
File Copy 256 bufsize 500 maxblocks: SAS 130.52 MB/s; SSD 136.72 MB/s
File Copy 4096 bufsize 8000 maxblocks: SAS 804.79 MB/s; SSD 686.22 MB/s
System Banchmarks Index Score: SAS 645.7; SSD 637.3

Тест 8: мои наработки
SAS: 628.14 MB/s, 40200.95 request/s
SSD: 552.33 MB/s, 35348.85 requests/s

Последние два теста привел только для сравнения. Приветствуются ваши варианты тестов дисковых систем но только понятными, открытыми тестами, а не с «птичками».

Искренне прошу поделится вашими тестами — самими командами. Теория не интересует вовсе, только практические понятные тесты. Ну и разумеется ваше мнение на этот счет. Если считаете что указанные выше тесты некорректны — укажите почему и ваш вариант тестов.

Очень прошу не гадить в теме постами: «ssd лучше», «а птички битрикса показывают другое».

Полагаю тема будет полезна всем, а именно ее конечный результат.

Далее продолжу тесты с разными параметрами утилиты fio.

Однопоточный тест fio для SAS
Sequential reads: bw=7196.3KB/s, iops=14392
Random reads: bw=7009.4KB/s, iops=14018
Sequential writes: bw=6800.2KB/s, iops=13601
Random writes: bw=6209.0KB/s, iops=12418

Однопоточный тест fio для SSD
Sequential reads: bw=3045.1KB/s, iops=6091
Random reads: bw=1604.2KB/s, iops=3209
Sequential writes: bw=3059.5KB/s, iops=6118
Random writes: bw=3067.2KB/s, iops=6134

SAS опережает SSD в два раза.

===============================

Тест fio в 24 потока для SAS
Sequential reads: bw=31256KB/s, iops=62511
Random reads: bw=29228KB/s, iops=58455
Sequential writes: bw=28823KB/s, iops=57645
Random writes: bw=27450KB/s, iops=54899

Тест fio в 24 потока для SSD
Sequential reads: bw=25881KB/s, iops=51761
Random reads: bw=23734KB/s, iops=47468
Sequential writes: bw=26600KB/s, iops=53200
Random writes: bw=25136KB/s, iops=50272

Получается что с ростом числа потоков SAS и SSD почти сравнились.

Однопоточный тест fio для SAS, 10 тыс. файлов общим весом 255MB
Sequential reads: bw=1901.4KB/s, iops=3802
Random reads: bw=3915.8KB/s, iops=7830
Sequential writes: bw=4358.4KB/s, iops=8716
Random writes: bw=575671B/s, iops=1124

Однопоточный тест fio для SSD, 10 тыс. файлов общим весом 255MB
Sequential reads: bw=1189.9KB/s, iops=2379
Random reads: bw=2080.8KB/s, iops=4160
Sequential writes: bw=2494.1KB/s, iops=4988
Random writes: bw=1893.8KB/s, iops=3787

======================================================

Тест fio в 24 потока для SAS, 10 тыс. файлов общим весом 255MB
Sequential reads: bw=2466.5KB/s, iops=4932
Random reads: bw=5280.9KB/s, iops=10560
Sequential writes: bw=18156KB/s, iops=36311
Random writes: bw=768665B/s, iops=1501

Тест fio в 24 потока для SSD, 10 тыс. файлов общим весом 255MB
Sequential reads: bw=15546KB/s, iops=31092
Random reads: bw=18836KB/s, iops=37672
Sequential writes: bw=17351KB/s, iops=34702
Random writes: bw=11904KB/s, iops=23807

Вот тут у SAS’а начались проблемы.

Однопоточный тест fio разными блоками (от 512б до 16Кб) для SAS
Sequential reads: bw=7196.3KB/s, iops=14392
Random reads: bw=7009.4KB/s, iops=14018
Sequential writes: bw=6800.2KB/s, iops=13601
Random writes: bw=6209.0KB/s, iops=12418

Однопоточный тест fio разными блоками (от 512б до 16Кб) для SSD
Sequential reads: bw=43603KB/s, iops=5298
Random reads: bw=15858KB/s, iops=2690
Sequential writes: bw=42736KB/s, iops=5193
Random writes: bw=31301KB/s, iops=5293

SSD не любит разброс размера блоков? Какова вероятность этого?

=================================================

Тест fio в 24 потока разными блоками (от 512б до 16Кб) для SAS
Sequential reads: bw=458294KB/s, iops=55692
Random reads: bw=322044KB/s, iops=54643
Sequential writes: bw=410884KB/s, iops=49931
Random writes: bw=286496KB/s, iops=48451

Тест fio в 24 потока разными блоками (от 512б до 16Кб) для SSD
Sequential reads: bw=395391KB/s, iops=48048
Random reads: bw=268590KB/s, iops=45573
Sequential writes: bw=408324KB/s, iops=49619
Random writes: bw=241830KB/s, iops=40897

=================================================

Исходя из всех тестов делаю заключение, что SSD имеет преимущество только если в системе огромное число файлов, которые обрабатываются одновременно. Никаких других преимуществ не вижу.

———- Добавлено 05.10.2013 в 09:46 ———-

Беремся потихоньку за MySQL

Подготовим innoDB таблицу на 500 тыс. записей и выполним тест в 128 поток выполнил 100 тыс. запросов.

Код:
sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=500000 --db-driver=mysql prepare
sysbench --test=oltp --num-threads=128 --max-requests=100000 --oltp-table-size=500000 --db-driver=mysql run

SAS

Цитата:
transactions: 100046 (3718.79 per sec.)
deadlocks: 1 (0.04 per sec.)
read/write requests: 1900890 (70657.54 per sec.)
other operations: 200093 (7437.61 per sec.)
total time: 26.9029s

SSD

Цитата:
transactions: 100032 (2709.75 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 1900608 (51485.16 per sec.)
other operations: 200064 (5419.49 per sec.)
total time: 36.9156s

SSD пасет задних.

==============================================
Аналогичный тест для MyISAM но с параметрами таблиц попроще:
SAS

Цитата:
transactions: 1000 (126.60 per sec.)
read/write requests: 19000 (2405.31 per sec.)
other operations: 2000 (253.19 per sec.)
total time: 7.8992s

SSD

Цитата:
transactions: 1000 (123.59 per sec.)
read/write requests: 19000 (2348.17 per sec.)
other operations: 2000 (247.18 per sec.)
total time: 8.0914s

Ну попробуйте убедить меня что теория права. Пока только один тест это подтвердил и то это должен быть какой то файловый хостинг или в этом роде.