2012-06-07 15 views
32

मैं अपनी साइट की गति को अनुकूलित करने की कोशिश कर रहा हूं और मैं pingdom.com पर बेहतरीन टूल का उपयोग कर रहा हूं। फिलहाल, पृष्ठ लोड करने में 50% से अधिक समय नीचे स्क्रीनशॉट में दिखाए गए अनुसार "प्रतीक्षा करें" समय है। इसे कम करने के लिए मैं क्या कर सकता हूं? इसके अलावा, यह आंकड़ा कितना आम है? क्या इस पर बेंचमार्क हैं? धन्यवाद!सर्वर "प्रतीक्षा करें" समय को कैसे कम करें?

high server wait time

संपादित करें: ठीक है .. मुझे कुछ चीजों को स्पष्ट करते हैं। कोई सर्वर साइड स्क्रिप्ट या डेटाबेस कॉल चालू नहीं हैं। बस एचटीएमएल, सीएसएस, जेएस, और छवियों। मैंने समानांतर डाउनलोड प्राप्त करने के लिए बॉडी टैग के अंत में पुश जेएस जैसी कुछ चीजें पहले ही कर ली हैं। मुझे पता है कि js.js डाउनलोड के बाद सिंक्रनाइज़ किए जाने पर main.html और templates.html कुल प्रतीक्षा समय में जोड़ रहे हैं, यह समस्या नहीं है। मुझे आश्चर्य है कि प्रत्येक अनुरोध के लिए कितना "प्रतीक्षा" समय है। क्या सर्वर दूरी इस पर असर डालती है? किसी साझा सर्वर पर होने के बारे में क्या, क्या यह प्रतीक्षा समय को प्रभावित करता है? क्या उन मुद्दों का समाधान करने के लिए कोई कम फांसी वाला फल है?

enter image description here

+0

यह वास्तव में एक प्रोग्रामिंग से संबंधित प्रश्न नहीं है। Http://serverfault.com/ – Gerrat

उत्तर

-1

इस सर्वर में कोई समस्या है ... Pingdom के अनुसार, क्या "प्रतीक्षा करें" समय को परिभाषित करता है "वेब ब्राउज़र सर्वर से डेटा के लिए प्रतीक्षा कर रहा है"।

और भी बहुत कुछ है पर इसे ठीक करने के लिए एक जावास्क्रिप्ट या कोड छोर से कर सकते हैं नहीं है।

+3

आज़माएं यह प्रतीक्षा समय नहीं है। – ddlshack

1

प्रतीक्षा समय, जिसे time to first byte भी कहा जाता है, यह है कि कनेक्शन शुरू होने पर सर्वर को पहली बाइट भेजने में कितना समय लगता है। यदि यह उच्च है, तो इसका मतलब है कि आपके सर्वर को इसे भेजने से पहले पृष्ठ को प्रस्तुत करने के लिए बहुत सारे काम करना पड़ता है। पेज को प्रस्तुत करने के लिए आपकी साइट क्या कर रही है, इसके बारे में हमें और जानकारी चाहिए।

+0

बहुत अच्छा, यह आपके एचडीडी/RAID पर एक्सेस-टाइम के साथ भी करना पड़ सकता है। मेरे पास पहले बाइट (टीटीएफबी) के लिए कम समय के साथ एसएसडी-सर्वर हैं, और वेबसाइटें वास्तव में तेजी से लोड हो गईं। – Thom

+1

सर्वर को बहुत काम करना पड़ सकता है, लेकिन इसे समान रूप से बहुत इंतजार करना पड़ सकता है। सबसे बड़ी जीत के लिए क्या निपटना है, यह जानने से पहले आपको उस समय के अंतराल को तोड़ने की जरूरत है। – Jason

2

आप एक से अधिक सर्वर अनुरोधों, जो पृष्ठ पर इंतज़ार कर रहा है है, तो आप यह सुनिश्चित करें कि उन सर्वर अनुरोध समानांतर में अतुल्यकालिक रूप से भेजा जाता है, ताकि आप उन्हें serializing कर रहे हैं कर सकते हैं।

एकाधिक अनुरोध लाने का सबसे धीमा संभव तरीका एक अनुरोध भेजना है, इसकी प्रतिक्रिया का इंतजार करना है, अगला अनुरोध भेजें, इसकी प्रतिक्रिया के लिए प्रतीक्षा करें, आदि ... यह सभी अनुरोधों को असीमित रूप से भेजने के लिए बहुत तेज़ होता है और फिर सभी को संसाधित करता है प्रतिक्रिया के रूप में वे आते हैं। इससे सभी अनुरोधों के संचयी प्रतीक्षा समय की बजाय किसी एक अनुरोध के लिए सबसे लंबे समय तक प्रतीक्षा समय तक कुल प्रतीक्षा समय कम हो जाता है।

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

49

अपाचे के मामले में यह सबसे सामान्य कारण DNS उत्क्रमण लुक के उपयोग है। इसका अर्थ यह है कि सर्वर प्रत्येक बार जब आप अनुरोध करते हैं, तो यह पता लगाने की कोशिश करता है कि आपकी मशीन का नाम क्या है। इसमें कई सेकंड लग सकते हैं, और यह बताता है कि आपके पास लंबे समय तक WAIT समय क्यों है और फिर एक बहुत तेज़ लोड है, क्योंकि मामला बैंडविड्थ के बारे में नहीं है।

इस के लिए स्पष्ट समाधान हालांकि ... यह आमतौर पर पर्याप्त नहीं है /etc/httpd/conf/httpd.conf

HostnameLookups Off 

में hostnamelookup निष्क्रिय करने के लिए है। तथ्य यह है कि कई मामलों में, अपाचे अभी भी एक उलटा लुकअप करता है जब भी आपने होस्ट नाम लुकअप अक्षम कर दिया है, इसलिए आपको अपनी अपाचे कॉन्फ़िगरेशन की प्रत्येक पंक्ति पर सावधानीपूर्वक ध्यान रखना होगा। विशेष रूप से, इसके लिए सबसे आम कारणों में से एक LOGS हैं।कई लाल टोपी - सेंटोस इंस्टॉलेशन पर डिफ़ॉल्ट रूप से, लॉग प्रारूप में% h शामिल होता है जो "होस्टनाम" के लिए खड़ा होता है, और रिवर्स लुकअप करने के लिए अपाचे की आवश्यकता होती है। आप इसे यहां देख सकते हैं:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
LogFormat "%h %l %u %t \"%r\" %>s %b" common 

आपको इस समस्या को हल करने के लिए% h के लिए उन% h को बदलना चाहिए।

+1

धन्यवाद दोस्त .. इस तरह की युक्तियों के लिए कोई स्रोत सिफारिश? –

+0

@ ÜnsalKorkmaz यहां आप http://httpd.apache.org/docs/2.2/mod/mod_log_config.html संपादित करें: क्षमा करें, मैं गलत पढ़ता हूं। सोचा था कि आपने कहा "कोई संसाधन सिफारिश"। – ConnectedSystems

+1

'' होस्टनाम लुकअप ''' बंद था लेकिन' 'लॉगफॉर्मैट' 'अपराधी था। मुझे% h से% ए बदलकर 50% सुधार मिला। – Birla

0

टीटीएफबी सीधे ब्राउज़र और सर्वर के बीच "भौतिक" दूरी से प्रभावित है। सीडीएन प्रॉक्सी कहा दूरी कम करने का सबसे अच्छा तरीका है। यह देशी कैशिंग क्षमताओं के साथ मिलकर, निकटतम पीओपी (प्लेसमेंट बिंदु) स्थान से कैश किए गए ऑब्जेक्ट को लोड करके तेज प्रतिक्रिया प्रदान करने में मदद करेगा।

प्रभाव उपयोगकर्ता भू-स्थान और सीडीएन के प्रसार पर निर्भर करेगा। फिर भी, आप significant improvement, 50% -70% या उससे अधिक की उम्मीद कर सकते हैं।

अनुभव से बात करते हुए, मैंने उन मामलों को देखा जिनमें 90% सामग्री को कैश किया गया था और दुनिया के दूसरी तरफ से एक अलग महाद्वीप पर सीधे प्रॉक्सी से वितरित किया गया था।

संबंधित मुद्दे