Chrome नेटवर्क लॉग "स्टाल्ड" स्थिति को समझना


172

मैंने क्रोम में निम्नलिखित नेटवर्क लॉग किया है:

नेटवर्क लॉग

मुझे इसमें एक बात समझ में नहीं आती है: भरे हुए ग्रे बार और पारदर्शी ग्रे बार में क्या अंतर है।


2
मैं पिछले दो हफ्तों में इसे बहुत देख रहा हूं। जब मैं क्रोम में शिफ्ट-रिफ्रेश करता हूं तो मेरे पास 125 आइटम लोड होते हैं। हर एक समय में एक बार, उन फ़ाइलों में से 3-4 "स्टेल्ड" स्थिति में फंस जाएंगे। सभी फाइलें .png फाइलें हैं। एकमात्र समाधान टैब को बंद करना है, दूसरी तालिका को फिर से खोलना और देव उपकरणों को फिर से खोलना है। मैं इस समस्या के बिना एक साल से अधिक समय से इस कोड के आधार पर काम कर रहा हूं और इसमें कोई बदलाव नहीं हुआ है, जो मुझे लगता है कि पीएनजी फाइलों पर इस तरह के व्यवहार का कारण होगा।
ग्रेग ग्रेटर

जवाबों:


202

Google अपने DevTools दस्तावेज़ीकरण के नेटवर्क प्रदर्शन अनुभाग के मूल्यांकन में इन क्षेत्रों का टूटना देता है ।

संसाधन नेटवर्क समय से अंश :

ठप / ब्लॉक करना

समय के अनुरोध को भेजने से पहले प्रतीक्षा की जा रही है। यह समय प्रॉक्सी वार्ता में बिताए गए किसी भी समय का समावेश है। इसके अतिरिक्त, यह समय शामिल होगा जब ब्राउज़र क्रोम के अधिकतम छह टीसीपी कनेक्शन प्रति मूल नियम का पालन करते हुए पुनः उपयोग के लिए उपलब्ध होने के लिए पहले से ही स्थापित कनेक्शन की प्रतीक्षा कर रहा है ।

(यदि आप भूल जाते हैं, तो क्रोम में होवर टूलटिप में और "टाइमिंग" पैनल के तहत "स्पष्टीकरण" लिंक है।)

मूल रूप से, प्राथमिक कारण आपको यह दिखाई देगा, क्योंकि क्रोम केवल एक बार में 6 फाइलें प्रति-सर्वर डाउनलोड करेगा और अन्य अनुरोध तब तक रुके रहेंगे जब तक कि कनेक्शन स्लॉट उपलब्ध नहीं हो जाता।

यह आवश्यक नहीं है कि कुछ ठीक हो, लेकिन स्टाल की हुई स्थिति से बचने का एक तरीका कई डोमेन नाम और / या सर्वर पर फ़ाइलों को वितरित करना होगा, यदि आपकी आवश्यकताओं पर लागू होता है, तो CORS को ध्यान में रखते हुए , हालांकि HTTP2 शायद एक बेहतर विकल्प है आगे जा रहा है। रिसोर्स बंडलिंग (जैसे जेएस और सीएसएस कॉन्टैक्शन) भी रुके हुए कनेक्शन की मात्रा को कम करने में मदद कर सकते हैं।


1
क्या स्थानीय फ़ाइलों के लिए भी 6-फ़ाइल की सीमा है? मैं एक पेज लोड करते समय समय-समय पर रुकी हुई अवस्था का सामना करता हूंfile:///C:/...
इल्या कोगन

@IlyaKogan फ़ाइल सिस्टम से लोड करने पर 6-फ़ाइल की सीमा प्रतीत नहीं होती है, लेकिन "स्टाल्ड" चरण प्रतीत होता है। मेरा अनुमान यह होगा कि यह फ़ाइल सिस्टम पर फ़ाइल खोलने के लिए Chrome को लगने वाले समय का प्रतिनिधित्व करता है, और "सामग्री डाउनलोड" चरण उस समय का प्रतिनिधित्व करता है जिसमें सामग्री को मेमोरी में लोड करने में समय लगता है।
अलेक्जेंडर ओ'मैरा

4
FYI करें: क्रोम 42 पर, कतार में प्रतीक्षा समय को स्टोक्ड / ब्लॉकिंग खंड के रूप में गिना नहीं जाता है जैसा कि डॉक्स ने संकेत दिया है, लेकिन कुल में शामिल है। कतार में समय पाने के लिए, सभी वर्गों को कुल से घटाएँ। उम्मीद है कि वे अपने डॉक्स को अपडेट करें (या बग को ठीक करें)।
delrox

20
लेकिन सफेद और ग्रे सलाखों के बीच अंतर क्या है?
कैट

उच्च संगामिति प्राप्त करने के लिए डोमेन शार्किंग की सिफारिश नहीं की जाती है। इसके बजाय HTTP2 का उपयोग करें। देखें: youtube.com/watch?v=yURLTwZ3ehk
होमर 6

13

DevTools: [नेटवर्क] अनुरोध से पहले खाली सलाखों की व्याख्या करें

आगे जांच की गई और पता चला कि हमारी स्टाल्ड और क्यूइंग रेंज के बीच कोई महत्वपूर्ण अंतर नहीं है। दोनों की गणना नेटस्टैक या रेंडरर से उपलब्ध कराने के बजाय अन्य टाइमस्टैम्प के डेल्टा से की जाती है।


वर्तमान में, यदि हम एक सॉकेट के उपलब्ध होने की प्रतीक्षा कर रहे हैं:

  • यदि कुछ प्रॉक्सी वार्ता हुई तो हम इसे रोक देंगे
  • यदि कोई प्रॉक्सी / ssl कार्य आवश्यक नहीं था, तो हम इसे कतारबद्ध कहेंगे।

6

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

यह चोम-डैटूल की आधिकारिक साइट से आता है और यह मदद करता है। यहाँ मैं बोली:

  • कतार एक अनुरोध कतारबद्ध जाता है तो यह है कि संकेत दिया:
    • अनुरोध को रेंडरिंग इंजन द्वारा स्थगित कर दिया गया था क्योंकि इसे महत्वपूर्ण संसाधनों (जैसे स्क्रिप्ट / शैली) से कम प्राथमिकता दी जाती है। ऐसा अक्सर छवियों के साथ होता है।
    • अनुरोध अनुपलब्ध टीसीपी सॉकेट के लिए प्रतीक्षा करने के लिए होल्ड पर रखा गया था जो कि खाली होने वाला है।
    • अनुरोध को रोक दिया गया क्योंकि ब्राउज़र केवल HTTP पर प्रति उत्पत्ति छह टीसीपी कनेक्शन की अनुमति देता है। डिस्क कैश प्रविष्टियां बनाने में समय व्यतीत होता है (आमतौर पर बहुत जल्दी।)
  • ठप / अवरुद्ध समय अनुरोध भेजे जाने से पहले प्रतीक्षा में बिताया गया। यह क्युइंग के लिए वर्णित किसी भी कारण की प्रतीक्षा कर सकता है। इसके अतिरिक्त, यह समय प्रॉक्सी वार्ता में बिताए किसी भी समय के समावेशी है।

1

मेरा मामला यह है कि पृष्ठ खुले होने पर विभिन्न मापदंडों के साथ कई अनुरोध भेज रहा है। तो ज्यादातर "ठप" हो रहे हैं। निम्नलिखित अनुरोधों को तुरंत "रोक दिया" जाता है। अनावश्यक अनुरोधों से बचना बेहतर होगा (आलसी होने के लिए ...)।


1

चूंकि बहुत से लोग अपनी धीमी वेबसाइट पर डिबगिंग के लिए यहां पहुंचते हैं, इसलिए मैं आपको अपने मामले के बारे में सूचित करना चाहूंगा, जिसे किसी भी Google स्पष्टीकरण ने हल करने में मदद नहीं की। मेरा विशाल स्टाल्ड समय (कभी-कभी 1 मिनट) अपाचे के कारण विंडोज पर चल रहा था जो कनेक्शनों को संभालने के लिए बहुत कम कार्यकर्ता सूत्र रखते थे, इसलिए उन्हें कतारबद्ध किया जा रहा था।

यदि आप अपाचे लॉग निम्नलिखित नोट करते हैं तो यह आपके लिए लागू हो सकता है:

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

यह समस्या Apache httpd.conf में हल हो गई है। Uncomment: conf / extra / httpd-mpm.conf शामिल करें

और httpd-mpm.conf को एडिट करें

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

ध्यान दें कि आपको 2000 थ्रेड्स की आवश्यकता नहीं हो सकती है, या अधिक की आवश्यकता हो सकती है। 2000 मेरे मामले के लिए ठीक था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.