IOPS

IT위키

Input/Output Operations Per Secon

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 볼륨 유형

Aws-ebs-types.png

위에서 나타나 있는 최대 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

참고 문헌[편집 | 원본 편집]