dd 명령어로 IO 테스트 시의 결과 관련 의문점
안녕하세요.
dd 로 디스크의 IO 퍼포먼스를 테스트 해보고 있는데요,
궁금한게 있어 여기에 글을 남깁니다.
dd 로 테스트를 할때, bs를 크게 주는 것과 작게 주었을때 나오는 결과를 어떻게 해석해야 하는지 궁금합니다.
테스트를 해보면 OS 캐쉬를 쓰지 않고 바로 쓰는 옵션으로 bs 사이즈가 클수록 IO 가 잘 나오고, bs 가 적어질 수록 IO 가 안나오는 모습을 보여줍니다.
아래 시스템에 사항은 아래와 같습니다.
$ blockdev --report
RO RA SSZ BSZ StartSec Size Device
rw 256 512 4096 0 107374182400 /dev/sdb
rw 256 512 4096 0 107374182400 /dev/sda
rw 256 512 4096 0 107374182400 /dev/dm-3
bs 값은 SSZ 의 배수가 되어야 하므로, 512 의 배수가 될수 있죠.
그럼 테스트를 아래와 같이 했을 때 결과는 다음과 같습니다.
$ dd if=/dev/zero of=/test_iscsi/testfile08 bs=1M count=1000 oflag=direct
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 10.5851 s, 99.1 MB/s
$ dd if=/dev/zero of=/test_iscsi/testfile08 bs=8192 count=1000 oflag=direct
1000+0 records in
1000+0 records out
8192000 bytes (8.2 MB) copied, 0.472577 s, 17.3 MB/s
$ dd if=/dev/zero of=/test_iscsi/testfile08 bs=4096 count=1000 oflag=direct
1000+0 records in
1000+0 records out
4096000 bytes (4.1 MB) copied, 0.434166 s, 9.4 MB/s
$ dd if=/dev/zero of=/test_iscsi/testfile08 bs=1024 count=1000 oflag=direct
1000+0 records in
1000+0 records out
1024000 bytes (1.0 MB) copied, 0.408893 s, 2.5 MB/s
$ dd if=/dev/zero of=/test_iscsi/testfile08 bs=512 count=1000 oflag=direct
1000+0 records in
1000+0 records out
512000 bytes (512 kB) copied, 0.398817 s, 1.3 MB/s
데이터 bs 에 따른 count 가 동일하여 쓰는 데이터 량이 적어져서 그런가 해서 count 를 비슷한 용량을 쓰도록 맞춰봐도 결과는 비슷 했습니다.
왜 이런 결과를 보이는건지...
댓글 달기