Storage

성능 지표(IOPS) 를 알아보자(1)

abc94 2024. 6. 6. 13:25

1. IOPS(Input/Output Operations Per Second)

 

스토리지 성능 평가 시, 중요하게 사용되는 지표 입니다.

스토리지 장치가 초당 수행할 수 있는 입출력 작업의 수를 나타냅니다.

 

각 작업의 평균 대기 시간(T)을 통해 IOPS를 계산할 수 있습니다:

IOPS = 1/T(초 단위)

 

입출력 작업이란, 서버와 스토리지 간에 읽기 또는 쓰기 작업을 의미합니다.

 

IDC 상에서 많이 사용되고 있는 디스크의 IOPS를 살펴보겠습니다.

 

- SSD : 10,000 - 100,000 IOPS

 

VMWARE ESXI 환경에서, 스토리지 성능 측정 시 HCI Bench를 많이 이용합니다. 간단하게 사용 예제를  보면서 해당 개념을 이해해봅시다.

HCI Bench 는 성능 지표로 사용될 VM 들을 클러스터로 묶어서 스토리지와 Block I/O 를 일으킵니다.

 

Number of Disks to Test : VM 에 할당된 디스크의 수

Number of Threads Per Disk : IO 를 발생시킬 쓰레드의 수

 

Block Size : 블록 크기 설정

      - 4 KB : 데이터베이스 트랜잭션

      - 64 KB : 혼합된 I/O 패턴, 일반적인 파일 서버

      - 1 MB : 대용량 파일 전송

 

 

 

 

 

HCI Bench 는 위 사진처럼 스토리지 성능 테스트의 워크로드를 설계하고, 실제 테스트 수행은 VM 내, FIO 가 수행하게 됩니다.

 

3,000 IOPS 를 제공하는 EBS 볼륨을 대상으로 진행했습니다. 

 

#1. block size = 4K

fio --name=small_block_test --filename=testfile --rw=randread --bs=4k --size=1G --numjobs=1 --runtime=60 --group_reporting --ioengine=libaio --iodepth=32

 

#2. blcok size = 1M

fio --name=small_block_test --filename=testfile --rw=randread --bs=1M --size=1G --numjobs=1
 --runtime=60 --group_reporting --ioengine=libaio --iodepth=32

 

결과 비교

  Throuput(KiB/s) IOPS
block size = 4K 6800 1700
blcok size = 1M 55296 64

 

일반적으로, 블록 사이즈의 크기의 반비례하게 IOPS 가 측정됩니다.


오늘의 결론!

성능의 좋다/나쁘다를 판가름할 시,  IOPS 수치만 고려하는게 아닌, 애플리케이션의 I/O 블록 크기도 같이 고려해야겠죠?

다음 시간에는 latency 에 대해 공부해보고, 어느정도의 수치가 사용자가 느끼기에 느리다고 생각할지?? 에 대해 알아보겠습니다.

 

감사합니다.