반응형
디스크 I/O 성능 테스트(iops)
fio 설치
Ubuntu
sudo apt-get update
sudo apt-get install -y fio
Amazon Linux 2
sudo yum install -y fio
fio 명령어 기본 구문
fio를 사용하려면 테스트를 정의하는 설정 파일을 작성해야 합니다. 설정 파일은 JSON 또는 INI 형식으로 작성할 수 있습니다.
주요 옵션
- filename: 테스트할 파일의 경로와 이름을 지정합니다.
- size: 테스트 파일의 크기를 지정합니다.
- bs: 블록 크기를 지정합니다.
- iodepth: 동시에 실행할 I/O 요청의 깊이를 지정합니다.
- numjobs: 병렬 작업 수를 지정합니다.
- rw: 읽기 및 쓰기 작업의 비율을 지정합니다.
- direct: 직접 I/O를 사용할지 여부를 지정합니다.
블록 사이트 확인
ex4
tune2fs -l /dev/nvme0n1p1 | grep -i 'block size'
$ tune2fs -l /dev/nvme0n1p1 | grep -i 'block size'
Block size: 4096
xfs
xfs_info /dev/nvme0n1p1
$ xfs_info /dev/nvme0n1p1
meta-data=/dev/nvme0n1p1 isize=512 agcount=11, agsize=524159 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1 spinodes=0
data = bsize=4096 blocks=5242363, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
728x90
사용 예시
fio 설정 파일 작성
- 이 파일은 4KB 크기의 랜덤 읽기 작업을 수행합니다.
sudo vim test.fio
[global]
name=my_test
[read]
filename=/path/to/testfile
size=1G
blocksize=4k
ioengine=libaio
iodepth=16
direct=1
rw=randread
fio 실행
- fio를 실행합니다.
fio test.fio
fio는 설정 파일을 읽고 테스트를 수행한 다음 결과를 표시합니다.
결과 분석
fio 실행 후에 나타나는 결과에는 디스크 대역폭과 IOPS에 대한 정보가 포함됩니다. 주요 결과 중 일부는 다음과 같습니다.
- read: 읽은 데이터 양과 대역폭.
- write: 쓴 데이터 양과 대역폭.
- iops: 읽기 및 쓰기 작업당 IOPS.
fio 테스트
Random read/write performance(랜덤 읽기/쓰기 성능)
fio --name=test --directory=/tmp --filename=random_read_write.fio \
--gtod_reduce=1 --randrepeat=1 --ioengine=libaio --direct=1 \
--rw=randread --bs=4k --iodepth=64 --size=1G --numjobs=2 \
--time_based --runtime=180 --norandommap --readwrite=randrw --rwmixread=75
fio 명령의 옵션
- --name=test: 테스트의 이름을 "test"로 설정합니다.
- --directory=/tmp: 테스트를 수행할 디렉토리를 /tmp로 설정합니다.
- --filename=random_read_write.fio: 테스트 파일의 이름을 "random_read_write.fio"로 설정합니다.
- --gtod_reduce=1: 기본 타임스탬프 오버헤드를 줄이기 위한 옵션입니다.
- --randrepeat=1: 랜덤 데이터 반복 사용을 1로 설정하여 재생산 가능한 결과를 얻을 수 있습니다.
- --ioengine=libaio: I/O 엔진을 libaio로 설정합니다.
- --direct=1: 직접 I/O를 사용하도록 설정합니다.
- --rw=randread: 테스트에서 수행할 읽기 작업의 패턴을 무작위 읽기(randread)로 설정합니다.
- --bs=4k: 블록 크기를 4KB로 설정합니다.
- --iodepth=64: 동시에 실행할 I/O 요청의 깊이를 64로 설정합니다.
- --size=1G: 테스트 파일의 크기를 1GB로 설정합니다.
- --numjobs=2: 병렬 작업 수를 2로 설정합니다.
- --time_based: 테스트 시간을 기반으로 수행하도록 설정합니다.
- --runtime=180: 테스트의 실행 시간을 180초로 설정합니다.
- --norandommap: 랜덤 데이터 맵을 사용하지 않도록 설정합니다.
- --readwrite=randrw: 테스트에서 수행할 읽기 및 쓰기 작업의 패턴을 무작위 읽기 및 쓰기(randrw)로 설정합니다.
- --rwmixread=75: 읽기와 쓰기 작업의 밸런스를 75% 읽기로 설정합니다.
이 명령은 주어진 옵션으로 디스크에서 무작위 읽기 및 쓰기 작업을 1GB 크기의 파일에 180초 동안 2개의 작업 스레드로 실행합니다. 결과는 디스크의 IOPS 및 대역폭에 대한 정보를 제공할 것입니다.
반응형
'리눅스' 카테고리의 다른 글
ZABBIX Disk read/write request responses 임계치 변경 (0) | 2021.04.02 |
---|---|
CentOS 7에서 OpenSSL을 최신 버전으로 업그레이드하는 방법 (0) | 2021.03.31 |
운영체제 버전 정보 확인 (0) | 2021.03.29 |
Redis 모니터링을 위한 Zabbix 템플릿을 설정하는 방법 (1) | 2021.03.19 |
CentOS 7에서 PHP Redis 확장 모듈을 설치하는 방법 (0) | 2021.03.16 |