대기 시간이란 무엇일까요?
대기 시간
대기 시간(latency)
- 하나의 데이터 패킷이 출발지에서 도착지까지 가는 데 걸리는 시간
- 일반적으로 사용자가 요청을 한 시점부터 해당 사용자에게 요청에 대한 응답을 받기까지 걸리는 시간
- 네트워크나 인터넷 연결의 지연 시간
- 대기 시간을 줄이는 것이 성능 향상의 주요 목표 중 하나
첫 번째 요청
- 14KB 만큼
- DNS 조회
- TCP handshake
- 보안 TLS 협상
- 등의 과정을 거치기 때문에 대기 시간이 긺
- 이후의 후속 요청은 서버에 대한 연결이 이미 설정되어 있으므로 대기 시간이 줄어듦
웹사이트는 일반적으로 여러 개의 요청을 포함
- HTML은 여러 개의 CSS, 스크립트, 미디어 파일에 대한 요청으로 이루어짐
- 이런 요청의 개수와 크기가 커질수록 높은 대기 시간이 사용자 경험에 미치는 영향 또한 커짐
대기 시간의 측정
- 데이터가 네트워크의 한 지점에서 다른 지점으로 이동하는 속도를 측정해 얻을 수 있음
- 자원에 대한 요청을 보내는 데 걸리는 시간
- 자원에 대한 브라우저의 요청이 다시 브라우저로 돌아오기까지 왕복 시간
네트워크 스로틀링
개발자 도구를 사용해 저대역폭 네트워크 연결 전환 가능
모방되는 특성
- 다운로드 속도
- 업로드 속도
- 최소 대기 시간
네트워크 시간 측정
Blocked
- 요청이 대기열에 있으면 네트워크 연결을 기다리는 동안 blocked(차단)된 것으로 간주
- 하나의 서버에 동시에 너무 많은 HTTP 연결을 맺으려 할 때 발생
- 모든 연결이 사용 중이면 브라우저는 다른 연결이 해제될 때까지 자원을 다운로드하지 못함
- 이를 두고 요청과 자원이 차단되었다고 함
DNS resolution
- DNS lookup을 수행하는 데 걸린 시간
- hostname의 개수가 많을수록 DNS lookup의 수행 횟수도 증가
Connecting
- TCP handshake를 완료하는 데 걸린 시간
- DNS resolution처럼 필요로 하는 서버 연결의 개수가 많을수록 서버와의 연결을 생성하는 데 걸리는 시간도 증가
TLS setup
- 보안 연결을 수립하는 데 걸린 시간
Sending
- HTTP 요청을 서버로 전송하는 데 걸린 시간
Waiting
- 디스크 대기 시간으로, 서버가 응답을 완료하는 데 걸린 시간
- 서버가 수행해야 하는 일의 복잡도에 따라 문제가 될 수 있음
Receiving
- 자원을 다운로드 받는 데 걸린 시간
- 네트워크 용량, 자원 파일의 크기에 따라 결정
- 이미지가 캐싱되었다면 즉시 완료될 수 있음
- 스로틀링이 걸렸다면 43초가 걸렸을 수 있음
대기 시간 측정
Network latency
- 데이터 요청이 요청을 작성하는 컴퓨터에서 응답하는 컴퓨터에 도달하는 데 걸리는 시간
- 데이터가 응답하는 컴퓨터에서 요청한 컴퓨터로 다시 돌아오는 시간을 포함
- 일반적으로 왕복 지연으로 측정됨
Disk latency
- 컴퓨터(일반적으로 서버)가 요청을 수신한 시점부터 응답을 반환하기까지 걸린 시간