dd if=/dev/zero of=/mnt/data/testfile bs=1

dd if=/dev/zero of=/mnt/data/testfile bs=1

광고된 속도를 달성하는 방법을 알아내려고 EBS 볼륨을 테스트하고 있습니다. Amazon은 io1 볼륨이 16K에서 1000MBps 또는 64,000 IOPS를 수행할 수 있다고 말합니다. 600MBps 이상은 보이지 않습니다. 이는 1280GB 및 64000 IOPS용으로 프로비저닝된 볼륨을 갖춘 m5n.2xlarge 인스턴스(Nitro 카드 포함)입니다.

dd로 0을 쓰면 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

나는 parted와 최적으로 정렬된 파티션에서 XFS 파일 시스템을 사용해 보았습니다. 또한 블록 장치 nvme1n1에 직접 dd 쓰기를 시도했습니다. 성능은 어느 쪽이든 거의 동일합니다.

이 테스트에서는 1MB 블록 크기를 사용하여 dd를 작성합니다.

# dd if=/dev/zero of=/mnt/data/testfile bs=1M

내가 이해하지 못하는 것은 4K 블록을 작성하면 거의 동일한 결과를 얻는 이유입니다.

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 if=/dev/zero of=/mnt/data/testfile bs=1

Linux를 사용한 지 꽤 시간이 지났지만 bs 인수가 바이트 단위라는 것을 99% 확신합니다. 그래서 당신은 1MB가 아닌 1바이트 블록 크기를 전송하고 있다고 생각합니다.

대신 이것을 시도해 보세요:

dd if=/dev/zero of=/mnt/data/testfile bs=1M

관련 정보