대용량 데이터 파이프라인에서 필요 대역폭을 계산하는 것은 반드시 필요하다.
사실 가장 좋은 방법은 미리 넉넉한 네트워크 대역폭을 확보 및 실제 운영 환경에서 예상되는 peak 시간 대의 데이터를 발생시킨 뒤 모니터링 툴에 나오는 대역폭으로 설정을 하면 되긴 하지만 이런 인프라적인 요소가 갖춰지지 않았을 경우 직접 계산해보는 것도 좋은 방법이다.
30개의 운영 서버에서 하루에 총 1TB의 데이터가 생성되고, 모든 데이터는 서버마다 설치된 수집 agent를 통해 Kafka cluster로 유입이 된다고 가정하자. 1TB / 24(시간) / 60(분) / 60(초) = 약 11MB가 나온다. 즉, 평균 1초에 11MB의 데이터가 전송되는 것이며 이를 bit 단위로 변환하면 88Mbps가 된다.
최근에는 가정용 네트워크 대역폭도 500Mbps 이상이기 때문에 사실상 회사에서 카프카를 운영할 때 하루에 1TB정도는 네트워크 이슈로 인해 클러스터에 문제가 생길일은 없다고 생각하면 된다. (보통 대역폭의 70~80% 이상 사용하면 latency가 크게 증가하는데 회사에서 100Mbps만큼 지원하지는 않을 듯)
bps(bit per second) / Bps(byte per second) / pps(packet per second)
bps, Bps, pps는 단위의 차이일 뿐이다.
pps의 경우 1초당 처리할 수 있는 패킷 수로 보통 라우터의 성능을 표현할 때 사용한다.
네트워크 뿐만 아니라 항상 성능에 대해 광고할 때는 클수록 좋아보이는 효과가 있기 때문에 작은 단위를 사용한다. (Bps가 아닌 bps를 자주 쓰는 이유)
pps 또한 마찬가지인데, 사실 packet의 사이즈는 매번 다르지만 가장 최소 값으로 packet 사이즈를 가정해서 표현한다. (최소값이 64Byte임)
'Network' 카테고리의 다른 글
라우팅 테이블과 네트워크 인터페이스 (0) | 2020.12.17 |
---|---|
TCP connection에 관하여 (0) | 2020.12.17 |
[Network] VPN / Forward Proxy / Reverse Proxy 차이 (0) | 2020.09.18 |
[Network] NAT vs Portforwarding 개념 및 차이점 (0) | 2020.08.20 |