dd если=/dev/ноль из=/mnt/data/testfile bs=1

dd если=/dev/ноль из=/mnt/data/testfile bs=1

Я тестирую тома 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 МБ

Попробуйте вместо этого следующее:

dd если=/dev/ноль из=/mnt/data/testfile bs=1M

Связанный контент