반응형

리눅스의 디스크 성능 측정 툴인 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

반응형
Posted by 해리팍
BLOG main image

Chanhyun Park (해리팍)
Software Engineer @ SK hynix

Contact Info.
parkch0708@hanmail.net
chanhyun0708@gmail.com
chanhyun.park@sk.com

카테고리

All (1513)
Profile (2)
Park's Life (601)
Smart Home (IoT) (4)
Computer System (165)
Computer Programming (39)
Computer Study (54)
Computer Etc. (189)
Scuba Diving (137)
Golf (8)
Traveling (250)
생활 정보 (13)
Pokemon GO (50)