Linux / Proxmox에서 디스크 벤치마크하기.

 

안녕하세요. 달소입니다.

 

이번글에서는 Linux 환경에서의 디스크 벤치마크 방법입니다. 

 

스토리지 벤치마크 툴인 fio에 대해서 알려주세요.

fio

 

fio는 Linux 및 유닉스 계열 운영 체제용 오픈 소스 스토리지 벤치마크 툴입니다. 스토리지 디바이스, 파일 시스템, 네트워크 첨부 스토리지(NAS)의 성능을 측정하고 평가하는 데 사용됩니다.

 

주요 특징:

 

  • 다양한 워크로드 생성: 순차적, 임의, 혼합 읽기/쓰기 워크로드를 포함한 다양한 워크로드를 생성할 수 있습니다.
  • 유연한 구성: 워크로드 크기, I/O 크기, I/O 깊이, 스레드 수 등 수많은 옵션을 사용하여 워크로드를 정밀하게 구성할 수 있습니다.
  • 광범위한 성능 지표: 처리량, 대기 시간, IOPS, 대역폭과 같은 다양한 성능 지표를 측정할 수 있습니다.
  • 그래픽 출력: 벤치마크 결과를 시각화하는 그래프를 생성합니다.
  • 스크립팅 인터페이스: 벤치마크를 자동화하고 복잡한 시나리오를 테스트하는 데 사용할 수 있는 스크립팅 인터페이스를 제공합니다.
  • 교차 플랫폼 지원: Linux, macOS, Windows를 포함한 다양한 플랫폼에서 실행됩니다.

 

사용 사례:

 

  • 스토리지 디바이스 벤치마킹: SSD, HDD, NVMe 드라이브의 성능 비교
  • 파일 시스템 성능 평가: 다양한 파일 시스템의 속도와 효율성 테스트
  • NAS 성능 측정: NAS 디바이스의 대역폭, 대기 시간, 처리량 평가
  • 워크로드 최적화: 특정 애플리케이션 또는 워크로드에 대해 스토리지 구성을 최적화
  • 성능 문제 디버깅: 스토리지 시스템의 성능 병목 현상 식별 및 해결

 

사용 방법:

 

fio는 명령줄 인터페이스를 사용하여 실행됩니다. 워크로드를 정의하는 구성 파일을 생성해야 하며, fio 이진 파일에 이 파일을 전달하여 벤치마크를 실행할 수 있습니다.

 

설치 및 환경셋팅 

 

fio 설치는 apt install fio로 가능합니다.

image.png.jpg

 

저는 zfs이므로 테스트할 풀 먼저 확인해보겠습니다.

 

image.png.jpg

 

테스트 경로 생성 

mkdir -p /rpool/fio_test

  

순차 읽기/쓰기 테스트

 -filename 쪽만 사용하는 디스크의 디렉터리/파일경로를 넣어주시면됩니다.

 

fio --ioengine=libaio --direct=1 --sync=1 --rw=read --bs=4K --numjobs=1 --iodepth=1 --runtime=60 --time_based --name seq_read --filename=/rpool/fio_test/testfile --size=10G

 

image.png.jpg

 

확실히 raid를 묶으니 속도가 떨어지긴하네요 ㅠㅠ

Random 4K 읽기/쓰기 테스트

image.png.jpg

 

일단 밤이 늦었으니 대충,,,