latency와 throughput 이란

latency와 throughput 이란

2019, Oct 27    


  • latency (시간 단위) : 어떤 작업을 처리하는 데 걸리는 시간
  • throughput ( 단위) : 초당 처리하는 작업의 갯수


  • 기본적으로 latency와 throughput은 나타내는 단위가 다릅니다. latency는 작업이 걸리는 시간을 의미하는 데 반해 throughput은 초당 처리하는 작업의 수를 나타내기 때문입니다.
  • 따라서 latency는 작을수록 좋은것이고 throughput은 클 수록 좋은 것입니다.
  • 처리하는 프로세서의 자원은 한정되어 있기 때문에 latency 낮추려면 즉, 어떤 작업을 최대한 빨리 끝내려고 한다면 자원을 그 작업에 최대한 많이 할당해야 합니다. 그러면 latency를 낮출 수 있습니다.
  • 반면 어떤 작업에 자원이 몰리게 되면 한번에 할 수 있는 작업의 갯수는 줄어들게 됩니다. 이는 즉 throughput에 영향을 주게 됩니다.
  • 따라서 latency와 throughput은 서로 영향을 주게 됩니다.



Drawing


  • 예를 들어 SCV 10개가 있는데, 해야할 작업이 ① 미네랄 1,000모으기와 ② 배럭 5개 짓기라고 가정해 보겠습니다.
  • 각 작업의 latency를 낮추려면 미네랄 1,000모으기는 SCV 10개를 모두 동원하는 것이 좋습니다. 물론 배럭 5개 짓기도 5개 SCV를 이용하여 동시에 짓는 것이 latency를 줄일 수 있습니다.
  • throughput의 관점에서 보면 어떨까요? latency를 줄이기 위해서 한 작업에 SCV를 다 배정하는 것이 효율적일까요? 그것은 어떤 지점이 최적인 지 확인을 해봐야 합니다. throughput의 관점에서는 동시에 많은 일을 하는 것이 좋습니다. (물론 경우에 따라서는 한 작업, 한 작업씩 차례대로 끝내는게 나을 수도 있겠지만요..)
  • 여기서 중요한 것은 한정된 자원으로 인하여 lantency를 줄이는 것과 throughput을 최대로 한다는 것 이것은 서로 영향을 준다는 것입니다.
  • 관점을 바꿔서 보면 작업의 입장에서는 latency가 낮아지길 원합니다. 빨리 처리되기를 바라는 것입니다. 반면 시스템의 입장에서는 throughput이 커지길 원합니다. 즉, 전체적으로 최적의 상태로 작업이 처리되길 원하는 것입니다.


  • latencythroughput의 가장 효율적인 최적점을 찾는 것은 네트워크 프로그래밍이나 운영체제 문제에서 아주 중요한 문제입니다.
  • 따라서 이 두 지표를 잘 관리하는 것이 효율적인 프로그래밍을 하는 것의 기준이 될 수 있으니 참조 하시기 바랍니다.