dd는 duplication of disk, 즉, 디스크를 복제하는 명령입니다.

이 명령을 사용해 파일 시스템 성능을 측정해보겠습니다.

우선 다음과 같이 1 기가 바이트의 파일을 생성하고, 그 시간을

timex 명령을 이용해 측정해 봅시다.

$ timex dd if=/dev/zero of=1gig bs=32k count=32000 
32000+0 레코드 입력
32000+0 레코드 출력

real       13.28
user        0.04
sys         3.21

32kb 블럭을 32000번 써서 1024000kb(약 1기가) 파일을 만들고, 그 시간을

측정한 결과 13.28초가 소요되었습니다.

그래서 쓰기 성능은 1024000kb/13.28초 = 75.3MB/초 입니다.


이번엔 읽기 성능을 측정해봅시다.

첫 번째 시험을 완료하면 1gig란 파일이 생기는데, 이번엔 이 파일을 한 번

읽어봅시다.

$ ll 1gig
-rw-rw-r--   1 koym777    users      1048576000 9월 25일 14:28 1gig

$ timex dd if=1gig of=/dev/zero bs=32k 
32000+0 레코드 입력
32000+0 레코드 출력

real        5.28
user        0.04
sys         2.01

읽기 성능은 1024000kb/5.28초 = 189.4MB/초 입니다.

동일한 시험을 한 번 더 해봅시다.

$ timex dd if=1gig of=/dev/zero bs=32k
32000+0 레코드 입력
32000+0 레코드 출력

real        1.03
user        0.04
sys         0.98

앗, 동일한 시험인데 시간이 급격히 줄어들었네요.

여기서의 읽기성능은 무려 970.8MB/초에 달하는군요.

왜 그럴까요? 아시는 분은 다 아시겠지만, OS 자체에서 파일시스템에

대한 버퍼캐시를 메모리에 유지하고 있기 때문에, 최근에 액세스한

디스크블럭은 처음 읽을 때 보다 훨씬 빨리 읽게됩니다.

그래서 파일 시스템 성능 측정시에는 이 캐시에 대한 효과를 항상

염두에 두어야 합니다.

[출처] dd명령을 이용한 파일시스템 성능 측정|작성자 즐거운맨

아래는 dd의 bs 옵션에 따른 성능 테스트에 관련된 글
- dd의 bs value는 반드시 sector size의 배수가 되어야 한다.
  어떤 row device의 sector size가 512 라면, bs 값은 512, 1024, 2048 등의 값이어야 error가 발생하지 않는다.

- sector size는 blockdev 를 이용해서 확인할 수 있다. (SSZ column 값)

 
# blockdev --report
RO  RA   SSZ   BSZ   StartSec       Size        Device
rw   256   512  4096          0         16777216  /dev/hda
rw   256   512  1024         63            256977  /dev/hda1
rw   256   512  4096     257040    11261565  /dev/hda2
rw   256   512  4096   11518605    2104515  /dev/hda3
rw   256   512  1024   13623120                2  /dev/hda4
rw   256   512  1024   13623183      208782  /dev/hda5
rw   256   512  1024   13832028      208782  /dev/hda6

< Test 환경 >
IBM x3650 서버
SAS 15000 prm 146GB Disk * 2EA

< Test 결과 >

Test 1) no bs option
# dd if=/dev/sda of= /dev/sda

result : 14400 sec = 240분,   10.2 MB/s
            정상 부팅 및 서비스 정상 작동

Test 2) bs=4096
# dd if=/dev/sda of= /dev/sda bs= 4096

result : 50분,   46.8 MB/s
            정상 부팅 및 서비스 정상 작동
           
Test 3) bs=16384
# dd if= /dev/sda of= /dev/sda bs= 16384

result : 22분,   109 MB/s
            정상 부팅 및 서비스 정상 작동

dd명령을 이용한 파일시스템 성능 측정

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다