Hiểu biết về nhật ký mạng Chrome Nhà nước bị đình trệ


172

Tôi đã đăng nhập mạng sau đây bằng chrome:

nhật ký mạng

Tôi không hiểu một điều trong đó: sự khác biệt giữa thanh màu xám đầy và thanh màu xám trong suốt.


2
Tôi đã thấy điều này rất nhiều trong hai tuần qua. Tôi có 125 mục đang tải khi thực hiện dịch chuyển làm mới trong chrome. Thỉnh thoảng, 3-4 trong số các tệp đó sẽ bị kẹt trong trạng thái "Bị đình trệ". Tất cả các tệp là tệp .png. Cách khắc phục duy nhất là đóng tab, mở lại một bảng khác và mở lại các công cụ dev. Tôi đã làm việc trên cơ sở mã này trong hơn một năm mà không gặp sự cố này và không có bất kỳ thay đổi nào mà tôi tin rằng sẽ gây ra hành vi như vậy trên các tệp png.
Greg Grater

Câu trả lời:


202

Google phân tích các trường này trong phần Đánh giá hiệu suất mạng trong tài liệu DevTools của họ.

Trích từ thời gian mạng tài nguyên :

Bị đình trệ / Chặn

Thời gian yêu cầu dành chờ đợi trước khi nó có thể được gửi. Thời gian này là bao gồm bất kỳ thời gian dành cho đàm phán proxy. Ngoài ra, thời gian này sẽ bao gồm khi trình duyệt đang chờ kết nối đã được thiết lập sẵn để sử dụng lại, tuân theo sáu kết nối TCP tối đa của Chrome cho mỗi quy tắc gốc.

(Nếu bạn quên, Chrome có liên kết "Giải thích" trong công cụ di chuột và trong bảng "Thời gian".)

Về cơ bản, lý do chính bạn sẽ thấy điều này là do Chrome sẽ chỉ tải xuống 6 tệp trên mỗi máy chủ tại một thời điểm và các yêu cầu khác sẽ bị đình trệ cho đến khi có khe cắm kết nối.

Đây không nhất thiết là thứ cần sửa, nhưng một cách để tránh trạng thái bị đình trệ là phân phối các tệp trên nhiều tên miền và / hoặc máy chủ, lưu ý CORS nếu có thể áp dụng cho nhu cầu của bạn, tuy nhiên HTTP2 có thể là một lựa chọn tốt hơn tiến về phía trước. Gói tài nguyên (như ghép nối JS và CSS) cũng có thể giúp giảm số lượng kết nối bị đình trệ.


1
Có giới hạn 6 tệp cho các tệp cục bộ không? Thỉnh thoảng tôi gặp trạng thái bị đình trệ khi tải một trang từfile:///C:/...
Ilya Kogan

@IlyaKogan Dường như không có giới hạn 6 tệp khi tải từ hệ thống tệp, nhưng dường như có một giai đoạn "Bị đình trệ". Tôi đoán đây sẽ là thời gian Chrome cần để mở tệp trên hệ thống tệp và giai đoạn "Tải xuống nội dung" biểu thị thời gian cần để tải nội dung vào bộ nhớ.
Alexander O'Mara

4
FYI: Trên chrome 42, thời gian chờ trong hàng đợi không được tính là phần Ngừng / Chặn như các tài liệu đã chỉ ra, nhưng được bao gồm trong tổng số. Để có thời gian trong hàng đợi, hãy trừ tất cả các phần trong tổng số. Hy vọng họ cập nhật tài liệu của họ (hoặc sửa lỗi).
delrox

20
Nhưng sự khác biệt giữa các thanh màu trắng và màu xám là gì?
Kat

Không nên sử dụng tên miền để đạt được đồng thời cao hơn. Sử dụng HTTP2 thay thế. Xem: youtube.com/watch?v=yURLTwZ3ehk
Homer6

13

DevTools: [mạng] giải thích các thanh trống có sẵn yêu cầu

Điều tra thêm và đã xác định rằng không có sự khác biệt đáng kể giữa phạm vi bị đình trệ và xếp hàng của chúng tôi. Cả hai đều được tính từ đồng bằng của các dấu thời gian khác, thay vì được cung cấp từ netstack hoặc renderer.


Hiện tại, nếu chúng tôi đang chờ một ổ cắm có sẵn:

  • chúng tôi sẽ gọi nó bị đình trệ nếu một số cuộc đàm phán proxy xảy ra
  • chúng tôi sẽ gọi nó là xếp hàng nếu không yêu cầu công việc proxy / ssl.

6

https://developers.google.com/web/tools/chrom-devtools/network-performance/under Hiểu-resource-testing

Điều này đến từ trang web chính thức của Chome-devtools và nó giúp. Ở đây tôi trích dẫn:

  • Xếp hàng Nếu một yêu cầu được xếp hàng, nó chỉ ra rằng:
    • Yêu cầu đã bị hoãn bởi công cụ kết xuất vì nó được coi là mức độ ưu tiên thấp hơn các tài nguyên quan trọng (như tập lệnh / kiểu). Điều này thường xảy ra với hình ảnh.
    • Yêu cầu đã bị hoãn để chờ ổ cắm TCP không khả dụng sắp giải phóng.
    • Yêu cầu đã bị hoãn vì trình duyệt chỉ cho phép sáu kết nối TCP trên mỗi nguồn gốc trên HTTP 1. Thời gian dành cho việc tạo các mục trong bộ đệm đĩa (thường rất nhanh.)
  • Bị đình trệ / Chặn thời gian yêu cầu đã chờ đợi trước khi có thể được gửi. Nó có thể chờ đợi bất kỳ lý do nào được mô tả cho Xếp hàng. Ngoài ra, thời gian này bao gồm bất kỳ thời gian nào trong đàm phán proxy.

1

Trường hợp của tôi là trang đang gửi nhiều yêu cầu với các tham số khác nhau khi nó được mở. Vì vậy, hầu hết đang bị "đình trệ". Các yêu cầu sau đây được gửi ngay lập tức bị "đình trệ". Tránh các yêu cầu không cần thiết sẽ tốt hơn (lười biếng ...).


1

Vì nhiều người đến đây gỡ lỗi trang web chậm của họ, tôi muốn thông báo cho bạn về trường hợp của tôi mà không có giải thích nào của google giúp giải quyết. Thời gian bị đình trệ khổng lồ của tôi (đôi khi là 1 phút) là do Apache chạy trên Windows có quá ít luồng công nhân để xử lý các kết nối, do đó chúng bị xếp hàng.

Điều này có thể áp dụng cho bạn nếu nhật ký apache của bạn có ghi chú sau:

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

Vấn đề này được giải quyết trong Apache httpd.conf. Uncomment: Bao gồm conf / thêm / httpd-mpm.conf

Và chỉnh sửa httpd-mpm.conf

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

Lưu ý rằng bạn có thể không cần 2000 chủ đề, hoặc có thể cần nhiều hơn. 2000 là OK cho trường hợp của tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.