인용

(책) 데이터 중심 애플리케이션 설계

  • 14쪽.

지연 시간(latency)과 응답 시간(response time)
지연 시간과 응답 시간을 종종 같은 뜻으로 사용하지만 동일하지는 않다. 응답 시간은 클라이언트 관점에서 본 시간으로, 요청을 처리하는 실제 시간(서비스 시간) 외에도 네트워크 지연과 큐 지연도 포함한다. 지연 시간은 요청이 처리되길 기다리는 시간으로, 서비스를 기다리며 휴지(latent) 상태인 시간을 말한다.

(책) 러닝 HTTP/2

  • 36쪽.

지연 시간이란 IP 패킷이 한 지점에서 다른 지점으로 이동하는 데 걸리는 시간을 말한다. 이와 관련된 것으로 왕복 시간(Round-Trip Time, RTT)이라는 것이 있으며, 지연 시간의 2배를 의미한다. 지연 시간은 성능의 주요 병목점이며, 서버까지 많은 왕복이 이루어지는 HTTP와 같은 프로토콜에서 특히 더 그러하다.

  • 91쪽.

지연 시간에 영향을 미치는 요인은 많지만, 그중 가장 큰 영향을 미치는 두 가지는 두 지점 사이의 거리와 사용하는 전송 매체의 속도다. 유선 네트워크는 보통 광섬유나 구리선으로 전송 매체를 만드는 반면에, 모바일/무선 네트워크는 무선 전파를 활용한다. 두 지점 사이의 이론적인 최소 지연 시간을 계산하려면, 해당 전송 매체에서의 빛의 속도와 두 지점 사이의 전송선의 길이를 고려해야 한다. 예를 들어, 광섬유에서의 빛의 속도는 진공에서의 약 2/3, 즉 초당 약 200,000,000m 다. 따라서 광섬유 케이블을 약 8,500km 거리인 샌프란시스코에서 런던까지 잇는다면, 최소 지연 시간은 약 43ms가 될 것이다. 지연 시간을 줄이는 유일한 방법은 양 끝점을 더 가까이 두는 것이다(또는 더 빠른 전송 매체를 개발해야 한다).
물론 실제로 지연 시간을 측정해보면 이렇게 낮은 지연 시간을 얻지 못할 것이다. 그 이유로, 첫째, 네트워크가 일직선으로 놓여 있지 않기 때문이다. 둘째, 데이터가 A에서 B로 가는 동안 통과해야 하는 여러 게이트웨이, 라우터, 스위치, 기지국 등이 지연을 유발하기 때문이다.

(책) 시스템 성능 분석과 최적화

  • 20쪽.

지연시간(latency)은 기다리느라 소모한 시간을 재는 척도로 널리 사용된다. 이 용어는 어떤 연산이 완료될 때까지 걸리는 시간을 의미할 수도 있다. 이런 연산으로는 애플리케이션 요청, 데이터베이스 질의, 파일 시스템 연산 등이 있다.

  • 32쪽.

지연시간은 어떤 연산이 수행되기 전에 기다려야 하는 시간을 의미한다. 이 예제에서 연산은 데이터 전송을 위한 네트워크 서비스 요청이다. 이 연산이 일어나기 전에 시스템은 네트워크 연결이 만들어지기를 기다려야 한다. 이에 걸리는 시간이 바로 이 연산의 지연시간이다. 지연시간과 연산시간을 합친 시간이 응답시간이다.
지연시간은 서로 다른 부분에서 측정할 수 있기 때문에 어떤 요소에서 해당 지연이 발생했는지를 함께 표시하곤 한다. 예를 들어, 웹사이트를 로딩하는 데 걸리는 시간은 DNS 지연시간과 TCP 연결 지연시간, 그리고 TCP 데이터 전송 시간으로 이뤄질 것이다. DNS 지연시간은 전체 DNS 연산에 걸리는 시간을 말한다. TCP 연결 지연시간은 초기화(TCP 핸드세이크)에 걸리는 시간만을 의미한다.
더 높은 수준에서 볼 때 TCP 데이터 전송시간을 포함한 이 모든 시간을 다른 어떤 것의 지연시간으로 간주할 수도 있다. 예를 들어, 사용자가 웹사이트 링크를 클릭한 다음 결과 페이지가 모두 화면에 나타날 때까지 걸리는 시간을 지연시간으로 볼 수 있다. 이러한 경우, 지연시간에는 앞의 모든 시간과 브라우저가 웹 페이지를 렌더링하는 시간이 들어간다.

  • 359쪽.

파일 시스템 지연시간은 파일 시스템 성능의 주요 지표다. 이는 논리적인 파일 시스템 요청이 완료될 때까지 걸리는 시간으로 측정할 수 있다. 이 시간에는 파일 시스템, 커널의 디스크 I/O 하위시스템, 그리고 디스크 서비스 대기 시간(즉, 물리적 I/O 시간) 등이 들어간다. 애플리케이션 스레드는 종종 파일 시스템 요청이 완료될 때까지 블록되곤 한다. 이러한 경우 파일 시스템 지연시간은 직접적으로, 그리고 비례적으로 애플리케이션 성능에 영향을 끼친다.

  • 521쪽.

네트워크 지연시간은 어떤 메시지가 두 끝점 사이를 왕복하는 데 걸린 시간 또는 연결(connection)을 맺는 데 걸린 시간이다(예: TCP 핸드셰이크(handshake)). 연결 뒤에 오는 데이터 전송 시간은 포함하지 않는다.

(책) TCP/IP 완벽 가이드

  • 2 . 네트워크 성능 문제와 개념. 35쪽.

지연 시간(Latency)은 매우 중요하지만 종종 간과되는 용어로 통신 채널이나 네트워크에서 데이터 전송 시간을 의미한다. 지연 시간의 중요한 요소로 특정 데이터 요청 시간부터 응답 데이터 수신 시간까지의 간격을 들 수 있다. 또 다른 요소로 데이터를 언제 송신할지를 장비가 얼마나 제어할 수 있는지, 그리고 특정 기간 동안 데이터를 지속적으로 보낼 수 있도록 네트워크를 구성하는 것이 가능한지 등이 있다. 지연 시간이 짧은 것(Low latency)은 긴 것(High latency)보다 좋다.

  • 2 . 네트워크 성능 문제와 개념. 36쪽.

일반적으로 속도(Speed), 대역폭(Bandwidth), 처리율(Throughput)은 많은 관심을 받지만 지연 시간은 별다른 주목을 받지 못한다. 하지만 지연 시간은 스트리밍 오디오나 비디오, 대화형 게임과 같은 여러 실시간 애플리케이션에서 매우 중요한 고려사항이다. 사실 그러한 애플리케이션에서는 지연 시간이 기본 대역폭보다 더 중요하다.
예를 들어 시골 별장에 놀러갔을 때 인터넷에 접근할 수 있는 수단은 28.8Kbps 모뎀 연결 또는 고급 위성 인터넷 정도가 될 것이다. 위성 인터넷 제공 회사는 자사의 네트워크가 ‘브로드밴드’이며 속도가 400Kbps 이상 나온다고 광고할 것이다. 그들은 “전화 접속보다 10배 이상 빠르다”는 것을 자랑하며 많은 비용을 청구할 것이다. 위성 인터넷은 과연 그렇게 멋진 기술일까?
아니다. 위성 인터넷 연결은 대역폭은 크지만 신호가 위성까지 오고 가는 데 걸리는 시간 때문에 지연 시간이 길다. 물론 마이크로소프트에서 제공한 150MB 패치를 다운로드할 때는 위성 인터넷이 모뎀보다 훨씬 편리할 것이다. 하지만 인터넷을 통해 친구와 최신 온라인 비디오 게임을 할 때는 위성 인터넷이 모뎀 연결보다 좋을 수가 없다. 왜냐하면 대기 시간이 길기 때문이다.

참고문헌

  • 데이터 중심 애플리케이션 설계 / 마틴 클레프만 저/정재부,김영준,이도경 역 / 위키북스 / 2018년 04월
  • 러닝 HTTP/2 / 스티븐 루딘, 하비에르 가르사 저/강재준 역 / 한빛미디어 / 2018년 01월 22일
  • 시스템 성능 분석과 최적화 / 브렌든 그레그 저 / 오현석, 서형국 공역 / 위키북스 / 2015년 12월 15일
  • TCP/IP 완벽 가이드 / 찰스 M. 코지에록 저/강유, 김진혁, 민병호, 박선재 역 / 에이콘출판사 / 2007년 01월 25일 / 원제 : The TCP/IP Guide: A Comprehensive, Illustrated Internet Protocols Reference

See Also

  • [[bandwidth]]{대역폭(Bandwidth)}