Linux, disk I/O 측정 - fio
- SSD가 설치된 가상머신에서 fio를 이용해 disk 성능 측정 (Update: Apr 14, 2021)
환경 구성
- OS: Ubuntu 20.04
- fio: v3.16 with apt install
- SSD: WD Black NVMe SSD
1. fio 설치
;구글링 결과 많은 분들은 소스파일을 컴파일하여 사용하였지만 간단히 패키지 관리자로 진행했습니다.
USER1@SVR1 ~]$ sudo apt install fio
2. fio 실행 결과
;각 옵션들은 아래 fio man 페이지를 참고
USER1@SVR1 ~]$ mkdir /home/USER1/fio
USER1@SVR1 ~/fio]$ fio --directory=/home/USER1/fio --name fio_test_file --direct=1 --rw=randwrite --bs=4K --size=1G --numjobs=16 --time_based --runtime=180 --group_reporting --norandommap --rwmixread 30
fio_test_file: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1
...
fio-3.16
Starting 16 processes
fio_test_file: Laying out IO file (1 file / 1024MiB)
(...생략...)
fio_test_file: Laying out IO file (1 file / 1024MiB)
Jobs: 11 (f=11): [E(1),w(2),E(1),w(1),E(3),w(8)][100.0%][w=564MiB/s][w=144k IOPS][eta 00m:00s]
fio_test_file: (groupid=0, jobs=16): err= 0: pid=1321467: Wed Apr 14 17:37:11 2021
write: IOPS=124k, BW=485MiB/s (508MB/s)(85.2GiB/180002msec); 0 zone resets
clat (usec): min=27, max=374097, avg=127.44, stdev=655.51
lat (usec): min=27, max=374097, avg=127.65, stdev=655.53
clat percentiles (usec):
| 1.00th=[ 53], 5.00th=[ 68], 10.00th=[ 74], 20.00th=[ 83],
| 30.00th=[ 89], 40.00th=[ 95], 50.00th=[ 102], 60.00th=[ 111],
| 70.00th=[ 120], 80.00th=[ 133], 90.00th=[ 155], 95.00th=[ 184],
| 99.00th=[ 338], 99.50th=[ 529], 99.90th=[ 5604], 99.95th=[ 8455],
| 99.99th=[14615]
bw ( KiB/s): min= 7392, max=708956, per=99.85%, avg=495814.75, stdev=8677.22, samples=5754
iops : min= 1848, max=177239, avg=123953.01, stdev=2169.32, samples=5754
lat (usec) : 50=0.64%, 100=46.31%, 250=51.12%, 500=1.39%, 750=0.21%
lat (usec) : 1000=0.05%
lat (msec) : 2=0.06%, 4=0.08%, 10=0.11%, 20=0.02%, 50=0.01%
lat (msec) : 100=0.01%, 250=0.01%, 500=0.01%
cpu : usr=2.10%, sys=14.40%, ctx=22732938, majf=0, minf=185
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,22346101,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=485MiB/s (508MB/s), 485MiB/s-485MiB/s (508MB/s-508MB/s), io=85.2GiB (91.5GB), run=180002-180002msec
Disk stats (read/write):
sda: ios=0/22343488, merge=0/320596, ticks=0/2183495, in_queue=233588, util=100.00
3. 진행하며 알게된 것
- 설치와 테스트는 쉽지만 신뢰도 높은 비교 자료가 없어 다른 테스트를 더 해봐야 알 것 같다.
- 구글링 경험으로는 기본적인 How to는 쉽게 찾을 수 있지만 보다 더 의미있는 매개변수 설정이나 결과 해석은 찾아보기 어려웠다.
4. 참고
- fio - Flexible I/O tester rev. 3.26
- fio(1) - Linux man page
- FIO test - NVMe / SSD / HDD 속도 테스트
- LINUX - fio 사용법, Disk BandWidth, IOPS 측정하기
- 스토리지 fio - 리눅스 디스크 성능 측정 툴
5. 그 외 추가로 알게된 것들
; fio 테스트를 하며 알게된 것으로 다음에 확인하기 위해 남김