Chrome 네트워크 로그 '중지'상태 이해


172

크롬에 다음 네트워크 로그가 있습니다.

네트워크 로그

채워진 회색 막대와 투명 회색 막대의 차이점은 무엇입니까?


2
나는 지난 2 주 동안 이것을 많이보고있다. 크롬에서 Shift-Refresh를 수행하면 125 개의 항목이로드됩니다. 가끔씩, 해당 파일 중 3-4 개가 "중지됨"상태로 고정됩니다. 모든 파일은 .png 파일입니다. 유일한 해결책은 탭을 닫고 다른 테이블을 다시 연 다음 개발 도구를 다시 여는 것입니다. 나는이 문제 없이이 코드베이스에서 1 년 이상 일해 왔으며 png 파일에서 이러한 동작을 일으킬 것으로 생각되는 변경 사항은 없습니다.
Greg

답변:


202

Google은 DevTools 설명서의 네트워크 성능 평가 섹션 에서 이러한 필드를 세분화 합니다.

자원 네트워크 타이밍 에서 발췌 :

실속 / 차단

요청이 전송되기 전에 대기 한 시간입니다. 이번에는 대리 협상에 소요 된 시간을 포함합니다. 또한이 시간에는 브라우저가 이미 설정된 연결을 재사용 할 수있을 때까지 기다릴 때까지 포함되며 Chrome 은 원래 규칙 당 최대 6 개의 TCP 연결을 준수 합니다.

잊어 버린 경우 Chrome의 풍선 도움말 및 '타이밍'패널 아래에 '설명'링크가 있습니다.

기본적으로 이것이 표시되는 주된 이유는 Chrome에서 한 번에 서버 당 6 개의 파일 만 다운로드하고 연결 슬롯을 사용할 수있을 때까지 다른 요청이 중단되기 때문입니다.

이것은 반드시 수정이 필요한 것은 아니지만 정지 상태를 피하는 한 가지 방법은 여러 도메인 이름 및 / 또는 서버에 파일을 배포 하여 필요에 따라 CORS 를 염두에 두는 것이지만 HTTP2가 더 나은 옵션 일 것입니다 앞으로. JS 및 CSS 연결과 같은 리소스 번들링은 연결이 중단되는 양을 줄이는 데 도움이 될 수 있습니다.


1
로컬 파일에도 6 파일 제한이 있습니까? 페이지를로드 할 때 때때로 정지 상태가 발생합니다.file:///C:/...
Ilya Kogan

@IlyaKogan 파일 시스템에서로드 할 때 6 파일 제한이없는 것으로 보이지만 "중지"단계가있는 것 같습니다. 내 생각에 이것은 Chrome이 파일 시스템에서 파일을 여는 데 걸리는 시간을 나타내고 "콘텐츠 다운로드"단계는 내용을 메모리에로드하는 데 걸린 시간을 나타냅니다.
Alexander O'Mara

4
참고 : 크롬 42에서 대기열에서 대기하는 시간은 표시된 문서에 따라 중단 / 차단 섹션으로 계산되지 않지만 총계에 포함됩니다. 대기열에 시간을 확보하려면 총계에서 모든 섹션을 빼십시오. 다행스럽게도 문서를 업데이트하거나 버그를 수정하기를 바랍니다.

20
그러나 흰색 막대와 회색 막대의 차이점은 무엇입니까?
Kat

동시성을 높이기위한 도메인 샤딩은 권장되지 않습니다. 대신 HTTP2를 사용하십시오. 참조 : youtube.com/watch?v=yURLTwZ3ehk
호머 6

13

DevTools : [네트워크] 빈 막대 선행 요청 설명

더 조사한 결과 스톨 범위와 큐 범위 사이에 큰 차이가 없음을 확인했습니다. 둘 다 넷 스택 또는 렌더러에서 제공되는 것이 아니라 다른 타임 스탬프의 델타에서 계산됩니다.


현재 소켓을 사용할 수있게되기를 기다리는 경우 :

  • 프록시 협상이 발생하면 멈추게됩니다
  • 프록시 / ssl 작업이 필요하지 않은 경우이를 큐잉이라고합니다.

6

https://developers.google.com/web/tools/chrome-devtools/network-performance/understanding-resource-timing

이것은 Chome-devtools의 공식 사이트에서 제공되며 도움이됩니다. 여기 내가 인용 :

  • 요청이 큐에 있으면 다음을 나타냅니다.
    • 요청이 중요한 리소스 (예 : 스크립트 / 스타일)보다 우선 순위가 낮기 때문에 렌더링 엔진에서 요청을 연기했습니다. 이것은 종종 이미지에서 발생합니다.
    • 사용 가능한 TCP 소켓이 해제되기를 기다리는 요청이 보류되었습니다.
    • 브라우저가 HTTP 1에서 원 본당 6 개의 TCP 연결 만 허용하기 때문에 요청이 보류되었습니다. 디스크 캐시 항목을 작성하는 데 소요 된 시간 (일반적으로 매우 빠름)
  • 중단 / 차단 요청을 보내기 전에 대기하는 데 걸린 시간입니다. 큐잉에 대해 설명 된 이유 중 하나를 기다릴 수 있습니다. 또한이 시간에는 프록시 협상에 소요 된 시간이 포함됩니다.

1

제 경우는 페이지가 열릴 때 페이지가 다른 매개 변수로 여러 요청을 보내는 것입니다. 그래서 대부분은 "중지"되고 있습니다. 다음 요청이 즉시 전송되면 "중지"됩니다. 불필요한 요청을 피하는 것이 더 좋을 것입니다 (게으른 ...).


1

많은 사람들이 느린 웹 사이트를 디버깅하기 위해 여기에 도착했기 때문에 Google 설명 중 어느 것도 해결하는 데 도움이되지 않은 제 사건에 대해 알려 드리고자합니다. 연결을 처리하기에 작업자 스레드가 너무 적은 Windows에서 Apache를 실행하여 대기 시간이 길어지면서 엄청난 지연 시간 (때로는 1 분)이 발생했습니다.

아파치 로그에 다음과 같은 메모가있는 경우이 내용이 적용될 수 있습니다.

Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting

이 문제는 Apache httpd.conf에서 해결되었습니다. 주석 해제 : conf / extra / httpd-mpm.conf 포함

그리고 httpd-mpm.conf를 편집하십시오

<IfModule mpm_winnt_module>
   ThreadLimit              2000
   ThreadsPerChild          2000
   MaxConnectionsPerChild   0
</IfModule>

2000 개의 스레드가 필요하지 않거나 더 필요할 수 있습니다. 2000은 괜찮습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.