Throughput, Bandwidth 그리고 Latency

zito·2024년 10월 7일
post-thumbnail

위 그림은 Throughput, Latency 그리고 Bandwidth를 잘 보여주는 그림입니다.

Throughput은 출력입니다. 위 파이프에서 물을 초당 얼마만큼의 출력으로 내보낼 수 있는지를 뜻합니다.

Bandwidth는 파이프의 크기입니다. 위 파이프의 크기 자체를 뜻합니다. 파이프(Bandwidth)가 클수록 초당 보낼 수 있는 물의 최대값이 커질 것입니다.

Latency는 물이 목적지 까지 가는 시간입니다. 위 파이프 좌측에서 우측으로 물을 보낼때, 물을 보냈을 때 부터 도착할때 까지의 시간. 그것이 Latency 입니다.

아래에서 좀 더 자세히 살펴보겠습니다.

Throughput

Throughput이란, 얼마나 많은 데이터단위시간 내에 목적지에 전달될 수 있는지에 해당하는 지표입니다.
즉, 네트워크의 '출력'에 해당하는 지표입니다.

기본적으로 Throughput의 단위로 아래 단위를 사용합니다.

  • bps(bits per second)
  • data packet per second
  • Mbps (Megabits per second)
  • Gbps (Gigabits per second)

예를들어 1초동안 1byte를 목적지에 전달할 경우, 800bps가 되는 것입니다.
(1 byte = 8 bits)

Throughput의 특징

Throughput은 시간에 따라 가변적인 값 입니다.
따라서 시스템의 Throughput을 명시할때는, Average Throughput을 사용합니다.

지표로서의 Throughput

Throughput은 네트워크 성능을 평가하는 중요한 지표중 하나입니다.

특별한 이유 없이 Throughput이 떨어진다면 Packet이 유실되거나 혹은 출력을 담당하는 네트워크 요소가 문제가 있을 수 있음을 알립니다.

반면, Throughput이 계속 증가한다면 System의 증대를 고려해야 할 것입니다.

Bandwidth

Bandwidth는 Network가 단위시간 내 전달할 수 있는 최대 크기의 전달 용량입니다.
Bandwidth가 클수록 많은 Data가 Network에 실려서 전달될 수 있습니다.

Bandwidth 자체는 속도에는 크게 관계없습니다. Capacity(용량)에 가까운 개념입니다.

Bandwidth도 결국 단위시간당 전달할 수 있는 용량이므로 Throughput과 같은 단위를 사용합니다.

  • bps(bits per second)
  • data packet per second
  • Mbps (Megabits per second)
  • Gbps (Gigabits per second)

Bandwidth의 설정

단위 시간 내 보내야할 Data가 많다면 Bandwidth를 많이 확보해야 할 것입니다.
하지만, 무작정 크게 설정할 경우 Cost가 너무 커질 수 있습니다.
때문에 적당한 Bandwidth를 찾는 것이 중요합니다.

Throughput와 Bandwidth

앞에서 비유했듯, Throughput은 물의 출력에 Bandwidth는 파이프의 크기에 비유할 수 있습니다.

단위시간동안 많은 물(Data)를 보내기 위해서는 어떻게 해야할까요?
당연히 Bandwidth(파이프 크기)와 Throughput(출력)이 모두 커야할 것입니다.

만약 Bandwidth가 크고 Throughput이 작다면, Bandwidth과 비용이 낭비됩니다.
반대로 Bandwidth가 작고 Throughput이 크다면, 네트워크 출구에서 대기하는 Data가 많아져 서비스의 성능이 떨어질 것입니다.

때문에, IT 서비스를 잘 분석하고 Throughput, Bandwidth의 예상치를 올바르게 측정하여 예산 낭비 없이 IT Service를 원활하게 제공할 수 있게 하는 것이 중요합니다.

AWS에서 Bandwidth

EC2의 Instance Type 마다 Network Bandwidth가 다릅니다.
즉 파이프의 크기가 다른 것입니다.
때문에 EC2를 활용한 아키텍처를 구상할 경우, 서비스를 면밀하게 분석한 후 Instance Type을 지정해야 합니다.

Latency

Latency는 Network에서 데이터가 한 지점에서 다른 지점으로 이동하는데 걸리는 시간을 뜻합니다.

예를 들어, 사용자가 Network나 웹 어플리케이션에서 작업을 수행한 시점부터 응답을 받는데 까지의 시간이 Latency입니다.

일반적으로 Latency는 ms(1/1000 second) 단위를 사용하여 측정합니다.

Latency와 Throughput

서비스의 성능 향상을 위해서는 Latency를 낮추고 Throughput을 키워야합니다.
직관적으로 당연합니다. 서비스의 응답이 빠르고(Latency가 낮고) 서비스의 초당 출력(Throughput)이 크면 성능이 좋으니까요.

하지만, 둘은 선형적인 관계는 아니며 Trade Off가 필요할 수도 있습니다.

결론적으로 Throughput과 Latency는 Network에서 중요한 지표입니다. 때문에 두 지표 모두 최적화 하는 것이 효율적인 서비스와 Network의 핵심입니다.


출처
https://www.totalphase.com/blog/2022/09/how-does-latency-throughput-affect-speed-system/
https://www.learnaws.org/2019/08/31/comparing-m5-r5-c5/
https://blog.naver.com/techtrip/221719292177

profile
DevOps Engineer를 희망하는 Network Engineer입니다.

0개의 댓글