본문 바로가기

리눅스

[draft] 디스크의 속도를 측정하는 방법

728x90

디스크의 읽기/쓰기 속도를 측정하는 방법

리눅스 환경에서는 다양한 도구를 이용하여 디스크의 읽기/쓰기 속도를 측정할 수 있습니다.

1. dd 사용

dd는 리눅스에서 사용 가능한 유틸리티로 파일 복사 등 다양한 용도로 사용됩니다. dd를 이용하여 디스크의 읽기/쓰기 속도를 측정할 수 있습니다.

 

쓰기 속도 테스트

dd if=/dev/zero of=/tmp/testfile bs=1G count=1 oflag=direct
$ dd if=/dev/zero of=/tmp/testfile bs=1G count=1 oflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 7.81464 s, 137 MB/s

위 명령어는 1GB 크기의 파일을 생성하면서 쓰기 속도를 측정합니다.

  • if=/dev/zero : 입력으로 0이 채워진 파일을 사용
  • of=/tmp/testfile : /tmp 디렉토리에 파일 생성
  • bs=1G : 블록 크기를 1GB로 지정
  • count=1 : 한 번만 실행
  • oflag=direct : 커널 캐시를 사용하지 않도록 설정하여 실제 디스크 성능을 측정

읽기 속도 테스트

dd if=/tmp/testfile of=/dev/null bs=1G count=1 iflag=direct
$ dd if=/tmp/testfile of=/dev/null bs=1G count=1 iflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.906793 s, 1.2 GB/s

위 명령어는 생성된 파일을 읽으면서 읽기 속도를 측정합니다.

 

** 주의 : dd는 간단한 테스트에 유용하지만 실제 워크로드를 반영하지는 않기 때문에 성능이 왜곡될 수 있습니다.

2. hdparm 사용

hdparm은 디스크의 버퍼드, 비버퍼드 읽기 속도를 테스트하는 도구입니다. 주의할 점은 이 도구가 쓰기 테스트는 지원하지 않는다는 점입니다.

sudo hdparm -Tt /dev/sda
$ sudo hdparm -Tt /dev/sda

/dev/sda:
 Timing cached reads:   21072 MB in  1.99 seconds = 10589.18 MB/sec
 Timing buffered disk reads: 1266 MB in  3.00 seconds = 421.84 MB/sec
  • -T : 디스크 캐시 성능을 테스트
  • -t : 실제 디스크의 읽기 속도를 테스트
  • /dev/sdX : 테스트할 디스크 장치

** 주의 : hdparm은 디스크 장치에 직접 접근하여 속도를 측정하므로 운영체제의 캐싱 영향을 받지 않습니다.

3. fio 사용

fio는 다양한 I/O 패턴으로 디스크 성능을 테스트할 수 있는 강력한 벤치마크 도구입니다. 실제 워크로드와 비슷한 환경을 시뮬레이션할 수 있습니다.

 

쓰기 속도 테스트

fio --name=write_test --filename=/tmp/testfile --size=1G --bs=4k --rw=write --iodepth=64 --numjobs=4 --direct=1

읽기 속도 테스트

fio --name=read_test --filename=/tmp/testfile --size=1G --bs=4k --rw=read --iodepth=64 --numjobs=4 --direct=1
  • --name=write_test : 작업 이름을 write_test로 지정
  • --filename=/tmp/testfile : 테스트할 파일
  • --size=1G : 테스트 파일 크기
  • --bs=4k : 블록 크기
  • --rw=write 또는 --rw=read : 읽기 또는 쓰기 작업 선택
  • --iodepth=64 : 요청 깊이 설정
  • --numjobs=4 : 작업 수 (스레드 수)
  • --direct=1 : 캐시를 사용하지 않음

** 참고 : fio는 다양한 I/O 시나리오와 설정을 통해 실제 사용 환경에 가까운 벤치마크를 수행할 수 있습니다.

 

dd, hdparm, fio 등 다양한 도구를 이용하여 디스크의 읽기/쓰기 속도를 측정할 수 있습니다.

 

728x90