Я тестирую тома EBS, пытаясь понять, как достичь заявленной скорости. Amazon утверждает, что тома io1 могут выдавать 1000 МБ/с или 64 000 IOPS при 16K. Я не вижу ничего выше 600 МБ/с. Это экземпляр m5n.2xlarge (с картой Nitro) с томом, выделенным для 1280 ГБ и 64 000 IOPS.
Когда я пишу нули с dd
, iostat
отображается постоянная 100% загрузка.
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
nvme1n1 0.00 0.00 0.00 2284.00 0.00 571.00 512.00 15.36 7.19 0.00 7.19 0.44 100.00
Я пробовал использовать файловую систему XFS на разделе, выровненном оптимально с помощью parted. Я также пробовал dd, записывая напрямую на блочное устройство nvme1n1. Производительность примерно одинаковая в обоих случаях.
Для этого теста я пишу с помощью dd, используя размер блока 1 МБ:
# dd if=/dev/zero of=/mnt/data/testfile bs=1M
Я не понимаю, почему я получаю почти тот же результат, если записываю блоки по 4К:
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
nvme1n1 0.00 0.00 0.00 2284.00 0.00 571.00 512.00 15.02 7.02 0.00 7.02 0.44 100.00
решение1
dd если=/dev/ноль из=/mnt/data/testfile bs=1
Прошло некоторое время с тех пор, как я использовал Linux, но я на 99% уверен, что аргумент bs в байтах. Так что я полагаю, что вы отправляете размер блока в 1 байт, а не 1 МБ
Попробуйте вместо этого следующее: