학습자료/리눅스 2013. 4. 15. 19:59
  • dd란?

dd 커맨드의 설명은 다음과 같다.

 

dd copies a file (from standard input to standard output, by default) with a changeable I/O block size, while optionally performing conversions on it

dd는 가변적인 I/O block size의(디폴트로는 표준입력부터 표준출력까지) 파일의 변환을 수행하는 동안 카피한다.

 

 

  • 디스크 속도 측정하기 (or  Disk IO 부하주기)

예)

dd if=/dev/zero of=/disk1/t1 bs=65536 count=2000 oflag=direct
while true;do sudo dd if=/dev/zero of=testfile bs=10M count=100;done

결과)

2000+0 records in

2000+0 records out

131072000 byte (131 MB) copied, 0.658386 s, 199 MB/s

원래는 카피용으로 쓰는 커맨드인데, 카피 시간과 속도가 함께나와 디스크 속도 측정으로도 많이 쓰는것 같다.

 

초당 199 MB를 읽고 쓸수 있다.  설명은 아래 옵션 설명 이용.

 

  • 옵션 설명

if=file  : 표준입력 대신에 지정한 file을 입력 대상으로 한다.

of=file : 표준출력 대신에 지정한 file을 출력 대상으로 한다.

bs=byte : 한번에 bytes 씩 읽고 쓴다.  (ibs, obs 값 무시)

count=blocks : 출력 시작에서 bolcks 단위 만큼 ibs 크기를 건너띈다.

oflag=flag : 표준출력 파일에 사용되는  flag 옵션

(flag가 direct 시, output 파일에 buffer cache를 사용하지 않고 다이랙트로 I/O를 한다)

 

direct flag 옵션 원문

Use direct I/O for data, avoiding the buffer cache. Note that the kernel may impose restrictions on read or write buffer sizes. For example, with an ext4 destination file system and a linux-based kernel, using ‘oflag=direct’ will cause writes to fail with EINVAL if the output buffer size is not a multiple of 512.

 

 

 

 

  • 간단 추가 설명

ibs=bytes : 한번에 bytes 바이트씩 읽는다.

obs=bytes : 한번에 bytes 바이트씩 쓴다.

bs=bytes : 한번에 bytes 바이트씩 읽고 쓴다.

cbs=bytes : 한번에 bytes 바이트씩 변환한다.

 

위와같이 옵션에 따라 다양하게 결과값을 낼수 있다.



  • disk io 부하주기
dd if=/dev/zero of=testfile bs=1M

 


 

  • 참고 내용 :

1. 옵션 별 설명 : http://www.gnu.org/software/coreutils/manual/html_node/dd-invocation.html

 

2. man 페이지 보셔도 나옴니다.

 

 

 * (심심하면, )dd & hdparm 사용법 설명 : http://zzara.tistory.com/12



 

 

 

 

 

posted by cozyboy
: