Throughput and latency

Ahn9807 (토론 | 기여)님의 2023년 6월 8일 (목) 04:53 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)


개요

Throughput은 특정 단위 시간동안 처리하는 양을 말하며, Latency는 하나의 작업을 처리하는 동안 걸리는 시간을 말한다. Throughput은 Higher is better이고 Latency는 Lower is better이다.

예를 들어서, 하루동안 먹는 양은 Throughput이고 (kg/day)이고 식사시간은 Latency이다.

좀더 컴퓨터 과학으로 설명하면... File하나를 쓰는데 걸리는 시간은 Latency이며, 10초동안 쓰는 양은 Throughput이다.

Latency와 Throughput의 중요한 차이중에 하나가 바로 Latency는 Tail latency가 존재한다는 사실이다. 따라서 Latency는 이 Tail을 고려해야 하기 때문에 일반적으로 Throughput보다 Optimizing하기 더 어렵다.

경향

  • Throughput의 증가는 Latency와는 상관없다. 예를 들어서 배칭은 처리속도는 증가시키지만 각각의 Latency는 떨어지는 영향을 준다.
  • Latency가 올라가면 Throughput은 떨어지는 경향성이 있다.

Optimization

  • Latency의 성능향상을 위해서 Bottleneck을 찾고 그 바틀넥을 극복하는 것이다. 특히 Latency는 내가 처리하고자 하는 일이 주어진 시간안에 처리가능한지 아니면 수상한 Overhead가 있는지를 잘 파악하여야 한다. Latency 101참고.
  • Throughput의 성능향상은 Data path를 이해하고 불필요한 Data path는 없는지, Batching을 통해서 처리할 수 있는 일이 있는지와 같이 전반적인 알고리즘과 구현에 영향을 받는다. Latency와 마찬가지로 어느 Data path에서 느려지는지, 알고리즘의 개선을 가능하지 않은지와 같은 요소들을 파악하여야 한다.

같이 보기

  1. Latency 101