[google-chrome] Chrome 네트워크 로그 ‘중지’상태 이해

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

네트워크 로그

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



답변

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

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

실속 / 차단

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

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

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

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


답변

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

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


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

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

답변

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

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


  • 요청이 큐에 있으면 다음을 나타냅니다.

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

답변

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


답변

많은 사람들이 느린 웹 사이트를 디버깅하기 위해 여기에 도착했기 때문에 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은 괜찮습니다.


답변