Computer System/Storage

[스토리지] fio 사용법 - 리눅스 디스크 성능 측정 툴

해리팍 2017. 9. 6. 15:04
반응형

리눅스의 디스크 성능 측정 툴인 fio 사용 방법입니다.


1. 설치


직접 소스를 받아 컴파일해줍니다.


소스를 받기 전 git, gcc가 필요합니다.


libaio 엔진을 사용하기 위해서는 libaio-devel 도 설치해줍니다.



# yum install git gcc libaiodevel



git을 통해 소스를 받은 후, 컴파일 해주고, 설치해줍니다.



# git clone https://github.com/axboe/fio.git

# cd fio

# ./configure

# make

# make install



2. 실행 방법


(1) 스크립트 미사용


fio 테스트_설정_파라미터



(2) 스크립트 사용


fio 테스트_스크립트_명




3. 테스트 스크립트 작성 방법


테스트 스크립트의 기본 형태는


[global]

global 파라미터 1=value

global 파라미터 2=value

global 파라미터 3=value

.

.

.

[1st test]

stonewall

1st_test 파라미터 1=value

1st_test 파라미터 2=value

1st_test 파라미터 3=value

.

.

.

[2nd test]

stonewall

.

.

.


입니다.


[global] 에는 모든 테스트에서 공통으로 사용하는 파라미터를 입력하면 되고,


그 이후에는 테스트 각각에 개별적으로 적용되는 파라미터를 입력해주시면 됩니다.



4. 파라미터


fio에는 파라미터가 너무 많습니다...


대표적인 것들만 적어보겠습니다.


(참고 - [file_size] 의 경우 파일 사이즈 포맷 입니다. 숫자+단위 로 작성 가능합니다. ex - 8k, 1024k, 1m 등)


* name=[string] : 테스트 이름


* filename=[filename or raw_device] : 테스트 디바이스 or 파일 경로 (여러 경로를 동시에 사용할 때에는 콜론 ':' 으로 연결)


* directory=[dir경로] : 디렉토리 경로


* nrfiles=[int] : job 당 파일 수


* size=[file_size] : job 당 총 파일 사이즈


* filesize=[irange] : 파일 1개 당 사이즈 (범위로 지정 가능, 범위  지정 시 fio가 랜덤으로 지정)


* bs=int,[int] : Block 사이즈 (복수 지정 가능, 복수 지정 시 fio가 랜덤으로 지정)


* blocksize_range=[irange] : Block 사이즈의 범위 (범위 지정 시 fio가 랜덤으로 지정)


* rw=[I/O 종류] : write / read / randwrite / randread / readwrite (rw) / randrw


* numjobs=[int] : job 수 (동일한 워크로드를 동시에 실행, multi processes / threads)


* --thread : thread 생성 시 fork 대신 pthread_create를 사용


* ioengine=[i/o 방법] : I/O 관련 정보는 http://harryp.tistory.com/663 참고


* ramp_time=[int] : 각 테스트 사이의 여유 시간


* iodepth=[int] : Queue Depth


* runtime=[int] : 테스트 진행 시간 (초 단위)


* time_based : runtime 시간 만큼 I/O 를 실행 (파일 사이즈가 필요 없음)


* direct=[bool] : True 일 경우 Direct I/O로 수행. False 일 경우 Buffered I/O로 수행.


* norandommap : Random 워크로드 시 I/O 위치를 과거 I/O 위치를 고려하지 않음.


* group_reporting : Job 별 리포팅이 아닌 그룹 별 리포팅.


* stonewall

반응형