IOPS
Input/Output Operations Per Second
IOPS는 HDD, SDD 또는 NVMe등 저장장치의 속도를 나타내는데 사용도는 측정 단위로, MB/s, MiB/s 또는 GB/s, GiB/s 등과 같이 초당 전송량과 함께 많이 최근 들어 많이 사용되고 있는 단위이다.
측정 방법
IOPS 측정값은 세부적으로 초당 전송량과 같이 임의 접근(Random Acess)과 순차접근(Sequential Acess)에 따라 다르고, 읽기 및 쓰기 동작에 따라 다르다. 이외의 성능 측정 프로그램과 CPU 와 메모리에 상황에 따라 차이가 나게 측정되기도 한다.
순차 접근의 경우 데이터를 쓰거나 읽기 위해서 순차적으로 접근하기 때문에 데이터 및 위치 검색 등의 오버헤드가 없기 속도가 빠르다. 하지만 임의 접근의 경우 데이터에 접근하기 위해서 추가적으로 접근, 검색하기 때문에 순차 접근과 비교했을 경우 속도가 많이 느린 것이 일반적이다.
IOPS 계산 방법
주어진 IOPS 값에서 초당 데이터 전송량을 계산하는 방법은 아래와 같다.
초당 데이터 전송량 = IOPS * 블럭크기(단위 데이터 용량)
만약 블럭 크기 등 단위 데이터 용량에서 IOPS 를 계산하기 위해서는 아래의 공식을 이용한다.
IOPS = 초당 데이터 전송량 / 블럭크기(단위 데이터 용량)
블럭 크기인 단위 데이터 용량과 초당 데이터 전송량의 단위가 차이가 날 경우 추가 계산이 필요할 수 있다. 아래의 예제를 통해서 실제 계산 방법에 대해 알아보자.
계산 예제
AWS에서 호스팅되고 있는 EBS 볼륨 유형의 IOPS 값을 이용하여, 이해하기 쉬운 초당 전송량을 계산해 보도록 하겠다.
Amazon EBS 볼륨 유형
위에서 나타나 있는 최대 IOPS 값에서 범용 SSD(gp2) 값의 16,000 IOPS 가 초당 얼마만큼의 데이터를 전송 할 수 있는지 계산해 보도록 하겠다. IOPS 값에서 초당 전송량을 계산하기 위해서는, IOPS 수치가 나타내는 단위 크기의 값을 알아야 한다.
같은 페이지에서 찾아보면 IOPS 블럭 크기를 확인할 수 있다. 블럭 크기를 알려주지 않으면 계산이 불가능하므로, 보통은 IOPS에 곱할 수 있는 기준값을 같이 보여주는게 일반적이다. 아마존에서 안내한 블럭 사이즈는 아래와 같이 되어 있다.
** 16KiB I/O 크기 기준 gp/io1, 1MiB I/O 크기 기준 st1/sc1
SSD(gp2) 가 16KiB 이기 때문 이 값을 이용하여 계산해 보도면 다음과 같이 최대 처리량(초당 데이터 전송률)250MiB/s (256,000 KiB/s) 으로 계산된다.
16,000 IOPS * 16KiB = 256000 KiB/s = 256000 / 1024 = 250MiB/s