Как мне максимизировать производительность nvme RAID0(md) (в Linux)?
Производительность чтения (и записи) Nvme RAID0 иногда хуже, чем производительность одного отдельного базового диска.
hdparm -t /dev/md0 :
Timing buffered disk reads: 7054 MB in 3.00 seconds = 2350.46 MB/sec
hdparm -t /dev/nvme0n1 :
Timing buffered disk reads: 7160 MB in 3.00 seconds = 2386.32 MB/sec
Это устройство, размещенное в центре обработки данных, с голым металлом, диски и сервер охлаждаются должным образом, поэтому нет теплового регулирования из-за высоких температур.
В среднем диски имеют температуру около 45 C, как показано на рис.
Что-то не так с этими низкими скоростями массива, и я хочу понять, что именно. Вот полные характеристики:
Epyc 7502p [2nd gen Rome 32cores/64threads]
128 GB DDR4 32x4 3200mhz
3x 3.8 TB samsung nvme pcie3 enteprise SSDs
Raid0 software created with mdadm
xfs filesystem on top of md0 created with defaults 'mkfs.xfs /dev/md0'
debian 10 64bit with latest updates and stock kernel (no tinkering)
Что я делаю не так ? Что я вообще не делаю? Я знаю, что отдача от любого рейда снижается, когда дело касается скорости, но это плохо.
PS: на первый взгляд, какую скорость чтения RAID0 вы ожидаете от этой системы?
1 ответ
Майкл Хэмптон и Стука правы: используйте fio для сравнительного анализа. Например:
fio --filename=/dev/md0 --direct=1 --rw=read --bs=64k --ioengine=libaio --iodepth=64 --runtime=120 --numjobs=4 --time_based --group_reporting --name=seq_read