fio로 스토리지 I/O 성능 테스트하기
설치
- Arch Linux
- Debian
sudo pacman -S fio
sudo apt install fio
옵션
- <int>- K, M, G, T, P는 1000 기준입니다.
- Ki, Mi, Gi, Ti, Pi는 1024 기준입니다.
- kb_base=1024 일때 k == Ki 입니다.
- D(day), H(hour), M(minute), s, ms, us
 
- <irange>- <int>-<int>[,<int>-<int>]범위를 나타냅니다.
- -대신- :,- ,대신- /를 사용할 수 있습니다.
 
Job 설정
Reference
- name=<name>
- loops=1: Job을 반복하는 횟수입니다.
- numjobs=1: 동시에 실행되는 Job의 수로 각각 다른 thread 또는 process에서 실행됩니다.
시간 관련 설정
Reference
- runtime=<int>- 단위가 생략되면 s 단위를 사용합니다.
- fio 실행 시간에 대한 제한입니다.
 
타겟 설정
Reference
- directory=./- 파일이 생성될 디렉토리입니다.
 
- filename_format=$jobname.$jobnum.$filenum- 생성되는 파일의 이름 형식입니다.
- $jobname,- $clientuid,- $jobnum,- $filenum변수를 활용할 수 있습니다.
 
- nrfiles=1- Job을 위해 사용될 파일 수입니다.
 
I/O type
Reference
- direct=0- 0: buffered I/O
- 1: direct I/O
 
- readwrite|rw=read[:<nr>]- read: 연속 읽기
- write: 연속 쓰기
- trim
- randread
- randwrite
- randtrim
- rw|readwrite
- randrw
- trimwrite
- randtrimwrite
 
Block size
Reference
- blocksize|bs=4k[,<int>][,<int>]- <readWriteTrim>
- <read>,<writeTrim>e.g.,- 8k,32k,- ,8k
- <read>,<write>,<trim>e.g.,- ,8k,
- 빈 값은 4k를 의미합니다.
 
I/O size
Reference
- size=<int>- 파일 I/O의 총 크기입니다.
- 기본값으로 주어진 파일 또는 디바이스의 크기를 사용합니다.
- n%를 사용하면 주어진 파일 또는 디바이스 크기의 n%를 사용합니다.
 
- filesize=<irange>- 각 파일의 크기입니다.
- size보다 우선합니다.
 
I/O engine
Reference
- ioengine=<engine>- libaio: Linux native aio,- direct=1or- buffered=0옵션과 함께 사용해야합니다.
 
I/O depth
Reference
- iodepth=<int>- 파일에 대해 동시에 실행되는 I/O 요청 수입니다.
- 비동기 I/O engine에서만 유효합니다.