disk speed test

1 view
Skip to first unread message

Andrey Mundirov

unread,
Feb 27, 2020, 9:35:01 PM2/27/20
to
Здравствуй, All!

Чем сейчас в линуксе модно мерить производительность дисков? fio, iozone или
что-то еще?

Хочу сделать программный RAID1 из двух SSD и сравнить скорость с одиночным
диском. Вроде бы при чтении с рейда должен быть какой-то плюс, но что будет при
записи? И каков будет расход процессора на обслуживание программного рейда при
больших потоках данных? Это и предстоит выяснить.

С наилучшими пожеланиями, Andrey

Alexey Fayans

unread,
Feb 28, 2020, 6:55:02 AM2/28/20
to
Hello Andrey!

On Fri, 28 Feb 2020 at 03:44 +0300, you wrote to All:

AM> Чем сейчас в линуксе модно мерить производительность дисков? fio,
AM> iozone или что-то еще?

Есть ещё bonnie++ (https://en.wikipedia.org/wiki/Bonnie%2B%2B)

AM> Хочу сделать программный RAID1 из двух SSD и сравнить скорость с
AM> одиночным диском. Вроде бы при чтении с рейда должен быть какой-то
AM> плюс,

Прирост чтения может быть до 2x, при условии, что читаться будет несколько
файлов параллельно.

AM> но что будет при записи?

Никакого прироста, т.к. на оба диска будет писаться одновременно.

AM> И каков будет расход процессора на
AM> обслуживание программного рейда при больших потоках данных?

Настолько незначительный, что не стоит даже думать об этом.

Кстати, у софтверной реализации raid10 (mdadm) есть 2-дисковый вариант. То же
зеркало, только кусочками. В режиме f2 (2 far copies) скорость записи должна
быть получше, чем у обычного зеркала. Есть ещё более новый режим offset, но про
него ничего толком не видел в сети (не особо и искал). Где-то было написано,
что скорость записи должна быть не хуже, чем в режиме far, а чтение лучше. Но
это не точно. :) Возможно, всё это актуально только для обычных дисков, а в
случае с SSD разницы вообще никакой не будет.


... Music Station BBS | https://bbs.bsrealm.net | telnet://bbs.bsrealm.net

Andrey Mundirov

unread,
Feb 28, 2020, 10:45:02 AM2/28/20
to
Здравствуй, Alexey!

Ответ на сообщение Alexey Fayans (2:5030/1997) к Andrey Mundirov, написанное 28
фев 20 в 14:28:


AF> Прирост чтения может быть до 2x, при условии, что читаться будет
AF> несколько файлов параллельно.

AM>> но что будет при записи?

AF> Никакого прироста, т.к. на оба диска будет писаться одновременно.

А падения не будет?

AM>> И каков будет расход процессора на
AM>> обслуживание программного рейда при больших потоках данных?

AF> Настолько незначительный, что не стоит даже думать об этом.

Помню, во времена IDE дисков я укладывал дисковыми операциями сразу 2 ядра на
100%. И с тех пор юзал программный рейд только в малонагруженных местах. Но
сейчас не тот случай.

В любом случае, железо уже у меня в руках, буду тестить, о результатах
отпишусь.

С наилучшими пожеланиями, Andrey

Alexey Fayans

unread,
Feb 28, 2020, 12:30:01 PM2/28/20
to
Hello Andrey!

On Fri, 28 Feb 2020 at 18:20 +0300, you wrote to me:

AM>>> но что будет при записи?
AF>> Никакого прироста, т.к. на оба диска будет писаться одновременно.
AM> А падения не будет?

Если с железом проблем нет и скорость записи на один диск не зависит от того,
пишется ли что-то на другой, и наоборот, то не будет. Такие проблемы, кажется,
были только во времена IDE интерфейсов.. :)

AM>>> И каков будет расход процессора на
AM>>> обслуживание программного рейда при больших потоках данных?
AF>> Настолько незначительный, что не стоит даже думать об этом.
AM> Помню, во времена IDE дисков я укладывал дисковыми операциями сразу 2
AM> ядра на 100%. И с тех пор юзал программный рейд только в
AM> малонагруженных местах. Но сейчас не тот случай.

Возможно, когда всё работало в режиме PIO, это было реально. В режиме DMA проц
уже не нагружался.

AM> В любом случае, железо уже у меня в руках, буду тестить, о результатах
AM> отпишусь.

Окей. :)

Andrey Mundirov

unread,
Mar 2, 2020, 10:15:01 AM3/2/20
to
Здравствуй, All!

Ответ на сообщение Alexey Fayans (2:5030/1997) к Andrey Mundirov, написанное 28
фев 20 в 20:13:

AF> Hello Andrey!

AF> On Fri, 28 Feb 2020 at 18:20 +0300, you wrote to me:

AM>>>> но что будет при записи?
AF>>> Никакого прироста, т.к. на оба диска будет писаться
AF>>> одновременно.
AM>> А падения не будет?

AF> Если с железом проблем нет и скорость записи на один диск не зависит
AF> от того, пишется ли что-то на другой, и наоборот, то не будет. Такие
AF> проблемы, кажется, были только во времена IDE интерфейсов.. :)

AM>>>> И каков будет расход процессора на
AM>>>> обслуживание программного рейда при больших потоках данных?
AF>>> Настолько незначительный, что не стоит даже думать об этом.

Протестил, получил неожиданные результаты

Подопытные: два одинаковых Western Digital PC SN720 NVMe SSD

Тестировал командой:
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test
--filename=test --bs=4k --iodepth=64 --size=8G --readwrite=randrw
--rwmixread=75 --loops=10

ОС: CentOS 7.1908 LiveDVD

> Тест одного диска:

test: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B,
ioengine=libaio, iodepth=64
fio-3.7
Starting 1 process
Jobs: 1 (f=1): [m(1)][100.0%][r=689MiB/s,w=231MiB/s][r=176k,w=59.2k IOPS][eta
00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=4814: Fri Feb 28 17:48:47 2020
> read: IOPS=177k, BW=693MiB/s (726MB/s)(59.0GiB/88677msec)
bw ( KiB/s): min=671896, max=726344, per=100.00%, avg=709183.07,
stdev=9236.61, samples=177
iops : min=167974, max=181586, avg=177295.76, stdev=2309.12,
samples=177
> write: IOPS=59.2k, BW=231MiB/s (243MB/s)(20.0GiB/88677msec)
bw ( KiB/s): min=224008, max=243952, per=100.00%, avg=236823.12,
stdev=3447.63, samples=177
iops : min=56002, max=60988, avg=59205.78, stdev=861.91, samples=177
> cpu : usr=30.09%, sys=50.02%, ctx=2644759, majf=0, minf=30
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=15721450,5250070,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64

Run status group 0 (all jobs):
READ: bw=693MiB/s (726MB/s), 693MiB/s-693MiB/s (726MB/s-726MB/s), io=59.0GiB
(64.4GB), run=88677-88677msec
WRITE: bw=231MiB/s (243MB/s), 231MiB/s-231MiB/s (243MB/s-243MB/s), io=20.0GiB
(21.5GB), run=88677-88677msec

Disk stats (read/write):
nvme1n1: ios=15711850/5246888, merge=0/17, ticks=5307634/51745,
in_queue=5357697, util=99.92%


> Тест RAID1 из двух дисков, параметры RAID по умолчанию:

test: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B,
ioengine=libaio, iodepth=64
fio-3.7
Starting 1 process
Jobs: 1 (f=1): [m(1)][100.0%][r=609MiB/s,w=205MiB/s][r=156k,w=52.4k IOPS][eta
00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=5197: Fri Feb 28 18:44:32 2020
> read: IOPS=153k, BW=597MiB/s (626MB/s)(59.0GiB/102800msec)
bw ( KiB/s): min=427880, max=635832, per=100.00%, avg=611724.82,
stdev=29930.98, samples=205
iops : min=106970, max=158958, avg=152931.22, stdev=7482.75,
samples=205
> write: IOPS=51.1k, BW=199MiB/s (209MB/s)(20.0GiB/102800msec)
bw ( KiB/s): min=142866, max=212080, per=100.00%, avg=204281.47,
stdev=10302.75, samples=205
iops : min=35716, max=53020, avg=51070.36, stdev=2575.69, samples=205
> cpu : usr=27.76%, sys=63.37%, ctx=1430800, majf=0, minf=30
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=15721450,5250070,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64

Run status group 0 (all jobs):
READ: bw=597MiB/s (626MB/s), 597MiB/s-597MiB/s (626MB/s-626MB/s), io=59.0GiB
(64.4GB), run=102800-102800msec
WRITE: bw=199MiB/s (209MB/s), 199MiB/s-199MiB/s (209MB/s-209MB/s), io=20.0GiB
(21.5GB), run=102800-102800msec

Disk stats (read/write):
md0: ios=15695521/5241462, merge=0/0, ticks=0/0, in_queue=0, util=0.00%,
aggrios=7860725/5250263, aggrmerge=0/20, aggrticks=2942430/46197,
aggrin_queue=2986704, aggrutil=99.92%
nvme0n1: ios=7873231/5250263, merge=0/20, ticks=2971705/37500,
in_queue=3007131, util=99.92%
nvme1n1: ios=7848219/5250263, merge=0/20, ticks=2913155/54894,
in_queue=2966278, util=99.91%


Внезапно вместо прироста скорости чтения обнаружилось некоторое замедление.
Загрузка процессора тоже подросла, но не так сильно, как я ожидал. Наверно,
надо как-то тюнить рейд, изучать вопрос.

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


С наилучшими пожеланиями, Andrey

Alexey Vissarionov

unread,
Mar 2, 2020, 11:00:02 AM3/2/20
to
Доброго времени суток, Andrey!
02 Mar 2020 17:23:34, ты -> All:

AM> Внезапно вместо прироста скорости чтения обнаружилось некоторое
AM> замедление. Загрузка процессора тоже подросла, но не так сильно,
AM> как я ожидал. Наверно, надо как-то тюнить рейд, изучать вопрос.

Надо.
man mdadm
man blkdev

AM> И следующий вопрос - как с этой хрени загрузиться, но это я буду
AM> отдельно читать мануалы по UEFI и всему гемору, связанному с ним.

Отключаешь secure boot (ну, или создаешь свой CA и выписываешь сертификаты),
собираешь зеркало /dev/md0 (128...256 Мб, строго FAT32), кладешь syslinux.efi
как EFI/Boot/bootx64.efi и рядом с ним ldlinux.c32 libutil.c32 menu.c32, а в
корень этого раздела syslinux.cfg и сами ядра.


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

... Смайлики - тоже знаки препинания :-)
Reply all
Reply to author
Forward
0 new messages