안녕하세요. 달소입니다.
이번글에서는 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로 가능합니다.
저는 zfs이므로 테스트할 풀 먼저 확인해보겠습니다.
테스트 경로 생성
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
확실히 raid를 묶으니 속도가 떨어지긴하네요 ㅠㅠ
Random 4K 읽기/쓰기 테스트
일단 밤이 늦었으니 대충,,,