Memahami status log jaringan Chrome "Stalled"

172

Saya sudah memiliki log jaringan berikut di chrome:

log jaringan

Saya tidak mengerti satu hal di dalamnya: apa perbedaan antara bar abu-abu diisi dan bar abu-abu transparan.

setec
sumber
2
Saya sering melihat ini selama dua minggu terakhir. Saya memiliki 125 item yang dimuat ketika saya melakukan shift-refresh di chrome. Sesekali, 3-4 dari file-file itu akan terjebak dalam keadaan "terhenti". Semua file adalah file .png. Satu-satunya perbaikan adalah dengan menutup tab, buka kembali meja lain dan buka kembali alat dev. Saya telah bekerja pada basis kode ini selama lebih dari setahun tanpa masalah ini dan belum ada perubahan yang saya percaya akan menyebabkan perilaku seperti itu pada file png.
Greg Grater

Jawaban:

202

Google memberikan rincian bidang ini di bagian Mengevaluasi kinerja jaringan dari dokumentasi DevTools mereka.

Kutipan dari waktu jaringan Sumber Daya :

Terhenti / terblokir

Waktu permintaan dihabiskan menunggu sebelum dapat dikirim. Waktu ini sudah termasuk waktu yang dihabiskan dalam negosiasi proxy. Selain itu, kali ini akan termasuk ketika browser menunggu koneksi yang sudah ada tersedia untuk digunakan kembali, mematuhi maksimum enam koneksi TCP Chrome per aturan asal.

(Jika Anda lupa, Chrome memiliki tautan "Penjelasan" di ujung tooltip dan di bawah panel "Waktu".)

Pada dasarnya, alasan utama Anda akan melihat ini adalah karena Chrome hanya akan mengunduh 6 file per server sekaligus dan permintaan lainnya akan terhenti hingga slot koneksi tersedia.

Ini belum tentu sesuatu yang perlu diperbaiki, tetapi salah satu cara untuk menghindari keadaan terhenti adalah dengan mendistribusikan file di beberapa nama domain dan / atau server, mengingat CORS jika berlaku untuk kebutuhan Anda, namun HTTP2 mungkin merupakan pilihan yang lebih baik maju. Kumpulan sumber daya (seperti gabungan JS dan CSS) juga dapat membantu mengurangi jumlah koneksi yang terhenti.

Alexander O'Mara
sumber
1
Apakah batas 6 file juga berlaku untuk file lokal? Saya mengalami keadaan terhenti dari waktu ke waktu saat memuat halaman darifile:///C:/...
Ilya Kogan
@IlyaKogan Tampaknya tidak ada batas 6 file saat memuat dari sistem file, tetapi tampaknya ada fase "Stalled". Dugaan saya, ini menunjukkan waktu yang dibutuhkan Chrome untuk membuka file di sistem file, dan fase "Content Download" menunjukkan waktu yang diperlukan untuk memuat konten ke dalam memori.
Alexander O'Mara
4
FYI: Pada chrome 42, waktu menunggu dalam antrian tidak dihitung sebagai bagian yang terhenti / diblokir seperti yang ditunjukkan dokumen, tetapi termasuk dalam total. Untuk mendapatkan waktu dalam antrian, kurangi semua bagian dari total. Semoga mereka memperbarui dokumen mereka (atau memperbaiki bug).
delrox
20
Tapi apa perbedaan antara batang putih dan abu-abu?
Kat
Sharding domain untuk mencapai konkurensi yang lebih tinggi tidak disarankan. Gunakan HTTP2 sebagai gantinya. Lihat: youtube.com/watch?v=yURLTwZ3ehk
Homer6
13

DevTools: [jaringan] menjelaskan bilah kosong yang mendahului permintaan

Selidiki lebih lanjut dan telah mengidentifikasi bahwa tidak ada perbedaan yang signifikan antara rentang Stalled dan Antrian kami. Keduanya dihitung dari delta timestamps lain, bukan dari netstack atau renderer.


Saat ini, jika kami sedang menunggu soket tersedia:

  • kami akan menyebutnya macet jika beberapa negosiasi proxy terjadi
  • kami akan menyebutnya antrian jika tidak ada pekerjaan proxy / ssl diperlukan.
Naga Kiran
sumber
6

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

Ini berasal dari situs resmi Chome-devtools dan ini membantu. Di sini saya kutip:

  • Mengantri Jika permintaan diantrikan, itu menunjukkan bahwa:
    • Permintaan ditunda oleh mesin rendering karena dianggap prioritas lebih rendah daripada sumber daya kritis (seperti skrip / gaya). Ini sering terjadi pada gambar.
    • Permintaan ditunda untuk menunggu soket TCP yang tidak tersedia yang akan dibebaskan.
    • Permintaan ditunda karena browser hanya mengizinkan enam koneksi TCP per asal pada HTTP 1. Waktu yang dihabiskan membuat entri cache disk (biasanya sangat cepat.)
  • Waktu terhenti / diblokir , permintaan dihabiskan untuk menunggu sebelum dikirim. Itu bisa menunggu salah satu alasan yang dijelaskan untuk Mengantri. Selain itu, waktu ini sudah termasuk waktu yang dihabiskan dalam negosiasi proxy.
briefy
sumber
1

Kasus saya adalah halaman mengirim beberapa permintaan dengan parameter berbeda saat dibuka. Jadi sebagian besar sedang "mandek". Permintaan berikut yang segera dikirim akan "terhenti". Menghindari permintaan yang tidak perlu akan lebih baik (menjadi malas ...).

Kevin .NET
sumber
1

Karena banyak orang yang tiba di sini men-debug situs web mereka yang lambat, saya ingin memberi tahu Anda tentang kasus saya yang tidak satupun dari penjelasan google membantu untuk menyelesaikannya. Waktu macet saya yang sangat besar (kadang-kadang 1 menit) disebabkan oleh Apache yang berjalan di Windows karena terlalu sedikit utas pekerja untuk menangani koneksi, oleh karena itu mereka sedang antri.

Ini mungkin berlaku untuk Anda jika log apache Anda memiliki catatan berikut:

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

Masalah ini diselesaikan di Apache httpd.conf. Tanda komentar: Sertakan conf / extra / httpd-mpm.conf

Dan edit httpd-mpm.conf

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

Perhatikan bahwa Anda mungkin tidak perlu 2.000 utas, atau mungkin perlu lebih banyak. 2000 adalah OK untuk kasus saya.

Renno K
sumber