ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Throughput (쓰루풋) 오해와 진실
    성능, 오해와 진실 2021. 1. 4. 22:02

    "Throughput = MB/s" 로만 알고 있는 사람들이 많다.

     

    또한, 성능 비교 시 MB/s만 보며, 이 수치로 성능의 우위를 판단하는 이들도 많다. 심지어, IOPS는 Throughput이 아닌 것으로 생각하는 경우도 흔하다. 아마도 MB/s가 가장 이해하기 쉽고 익숙하기 때문이리라. 엄밀히 말하면, 해당 제품이 제공하는 대역폭을 충분히 확인했다면 MB/s는 크게 신경 쓰지 않아도 되는 지표이다.

     

    물론, Throughput이 MB/s이라는 사실이 틀린 것은 아니다. 쓰루풋은 우리말로 처리량이고, BPS (Bytes per Second)는 데이터 전송률을 나타내는 단위이므로, 초당 처리한 바이트의 양인 B/s, KB/s, MB/s는 쓰루풋이 맞다.

     

    그런데, 이 쓰루풋을 MBPS (MB/sec)의 개념으로만 알고 있는 이들이 너무 많다. (스토리지 업계 종사자는 거의 대부분으로 보인다.) Throughput은 엄밀히, 각 시스템이나 장치에 따라 사용되는 용어가 따로 있다. (performance.tistory.com/4 참조)

    스토리지의 쓰루풋은 뭐니 뭐니 해도 IOPS이나, 많은 사람들이 스토리지의 성능 지표를 Throughput, IOPS, Latency로 말하고 있다. (물론, 제조사의 표현 방식 때문이다.) 이것이 틀린 것은 아니나, 표현의 정확성 면에서 일부 혼선과 어색함을 띄고 있다. 왜냐하면, IOPS 역시 Throughput의 하나이기 때문이다. 그러므로, MB/s의 의미로 쓰인 Throughput은 Bandwidth로 바꾸는 것이 보다 적절하다. 굳이, Throughput으로 표현하고자 한다면 "Throughput (MB/s)"와 같이 뒤에 단위를 써주는 것이 좋다.

     

    혼동 없는 Throughput의 표현은 다음과 같다.

    • Throughput (MB/s)
    • Throughput (IO/s)

     

    그러면, 왜 MB/s 대신 IO/s를 Throughput으로 하지 않고, 굳이 IOPS로 표현할까란 질문이 있을 수 있다. 그것은 IOPS가 스토리지의 가장 대표적인 성능 지표이기 때문이다. 가장 중요한 성능 팩터이다 보니 단위 자체가 대표성을 띄며 고유 명사처럼 사용된 것으로 이해하면 쉬울 것 같다. 일례로, 기업의 정보시스템의 처리량도 Throughput 대신 TPS로 표기하는 것과 같다. 그런데, 정보시스템에서는 쓰루풋 개념으로 MB/s를 사용하지 않는다. 왜냐하면 MB/s가 시스템 처리량을 대표할 수 없기 때문이다.

     

    그 이유는, MB/s는 Data Transfer Rate (데이터 전송률)으로서, 초당 많은 데이터를 보낸다고 하여, 많은 트랜잭션 처리를 한 것과 동일시할 수 없고, 업무에 따라 데이터 사이즈가 큰 객체의 전송은 MB/s가 높아질 수밖에 없으므로 트랜잭션 처리 또는 I/O 처리와는 개념이 구분되기 때문이다.

     

    데이터 전송률 = TPS * Data size

     

    아래의 그림을 보자.

    두 시스템의 평균 성능 지표를 보면, A 시스템은 7400 IOPS, 170MB/s를, B 시스템은 4600 IOPS, 280MB/s를 나타낸다. I/O가 많은 시스템이 더 높은 MB/s를 나타내지 않는다. 두 업무의 서비스 유형이 다르기 때문이다. (내부 업무와 웹페이지) 

     

    스토리지도 마찬가지다. 블록 스토리지는 얼마나 많은 Block I/O를 처리하느냐가 관건이지, 큰 Block을 처리하여 높은 MB/s를 기록하는 것이 큰 의미가 있는 것은 아니기 때문이다. 즉, MB/s가 스토리지의 성능을 대변하지 못한다. 그러므로, 실제 애플리케이션을 통해 스토리지를 테스트할 경우, MB/s의 결과로써 스토리지 성능을 평가하는 우를 범해선 안된다.

     

    데이터 전송률 = IOPS * Block size

     

    IOPS = MB/sec * 1024 (KB) / Block size (KB)

     

    다시 돌아와, Throughput과 IOPS의 표현이 애매모호하게 된 이유를 보면, 그도 그럴 것이, 많은 성능 대시보드에서 그렇게 인식할 수 있도록 표현되어 있다. 아래의 그림을 참조해보자. (4개 제품에서 IOPS와 Throughput으로 표시)

     

    그러나, 아래의 대시보드와 문서의 내용을 보면 두 용어 (IOPS와 Bandwidth)가 구분되어 사용된다. 즉, IOPS가 스토리지의 Throughput으로 표현된다. (역시, 4개 제품에서 IOPS와 Bandwidth로 표시)

     

    정리

    • Throughput의 의미는 MB/s로 한정되지 않는다.
    • 일반적으로 말하는 Throughput (MB/s)은 네트워크 대역폭 측면에서의 데이터 전송률을 의미한다.
    • 스토리지에서의 MB/s는 프론트엔드 또는 백엔드의 채널 용량을 나타내는 대역폭의 사용량을 의미한다.
    • 데이터 전송률/대역폭 사용량 (MB/s)이 일반 블록 스토리지의 성능을 대변하지 않는다.
    • 스토리지의 프론트엔드/백엔드 대역폭을 검증하였다면, MB/s는 성능 지표로서 큰 의미가 없다. (MB/s는 NAS 또는 Backup 성능 지표로 유용하다.)
    • 스토리지의 Throughput은 IOPS로서, 스토리지 성능을 대표한다.
    • IOPS와 Bandwidth로 사용하는 것이 혼선이 적고, 더 정확한 표현이다.

     

     

    댓글

Designed by Tistory.