Nginx इतनी जल्दी क्यों है?


31

रैम्बलर जैसी साइट इतनी तेजी से गतिशील सामग्री कैसे प्रदान करती है? याहू की तुलना में भी तेज (जो मेरे देश में एक सर्वर है- एसई एशिया; रैम्बलर नहीं करता है)।

क्या यह विशुद्ध रूप से Nginx की क्षमता है? मुझे ऐसी क्षमताओं के बारे में जानने के लिए कहां देखना चाहिए?

यहाँ बहुत ज्यादा नौसिखिया है, मुझे विश्वास है कि अगर Nginx से सेवा की जाती है तो serverfault.com IIS 7 से अधिक तेज़ होगा (दोनों ही स्थिति में db का एक्सेस समय समान होने का अनुमान)। क्या यह उचित धारणा है?

संपादित करें:

IIS7 के सामने Nginx का उपयोग करके कार्ल से पोस्ट करें


ध्यान दें कि serverfault.com पहले से ही Nginx ( Wappalyzer के अनुसार ) का उपयोग करता है । : पी
विल्स

जवाबों:


26

आप इस प्रस्तुति को nginx internals के अवलोकन के लिए देख सकते हैं । अपाचे के रूप में धागे का उपयोग करने के बजाय अनुरोधों का मुख्य अंतर अतुल्यकालिक हैंडलिंग है। आप इस दस्तावेज़ पर भी नज़र डाल सकते हैं ।


2
Nginx की वास्तुकला और C10K समस्या के रूप में अच्छा जवाब। हालाँकि, मुझे समझ में आता है कि ओप्स प्रश्न कथित पेज लोड स्पीड के बारे में है, जिसका नगनेक्स के साथ बहुत कम संबंध है।
जेसपर एम

"अतुल्यकालिक" वास्तव में क्या मतलब है? मैं हमेशा सोचता रहा हूं कि इसका मतलब एक अलग धागे में निष्पादित है।
इवान

एसिंक्रोनस का अर्थ है कि Nginx हमेशा एक प्रॉक्सी के रूप में कार्य करता है, यहां तक ​​कि Php के साथ: Nginx को HTTP अनुरोध प्राप्त होता है, Php सर्वर को BUT doesnt लॉक भेजें / HTTP प्रतिक्रिया भेजने के लिए प्रतीक्षा करें। इसलिए आपको उच्च ट्रैफ़िक वेब साइट के लिए एक गति (गति, CPU / RAM) अंतर दिखाई देता है। लेकिन कुछ अनुरोधों के लिए कोई प्रदर्शन लाभ नहीं है (जो कि इंटरनेट का 95% चिंता का विषय है ....), लेकिन नग्नेक्स शांत है;;
थॉमस डेकाक्स

21

रैम्बलर जैसी साइट इतनी तेजी से गतिशील सामग्री कैसे प्रदान करती है? ... क्या यह विशुद्ध रूप से Nginx की क्षमता है? मुझे ऐसी क्षमताओं के बारे में जानने के लिए कहां देखना चाहिए?

इसका उपयोग वेब सर्वर के साथ कुछ भी नहीं करना है - दोनों nginx, IIS और Apache 'तेज पर्याप्त' हैं जो आमतौर पर मिलीसेकेंड के भीतर अपना काम करते हैं। Apgin की तुलना में nginx बहुत तेज़ है, लेकिन इसका मतलब यह है कि साइट के मालिक को वेब सर्विंग पार्ट के लिए कम सर्वरों की आवश्यकता होगी - nginx आपके लिए तेज़ी से डेटा स्थानांतरित नहीं करता है।

कम महत्वपूर्ण हिस्सा सर्वर-साइड गति है , यानी HTML बनाने में समय लगता है। अधिक महत्वपूर्ण हिस्सा 'फ्रंटएंड' प्रदर्शन है , जिसके द्वारा मेरा मतलब है कि HTML, CSS, जावास्क्रिप्ट और छवियाँ, इनमें से संख्या, इनका आकार और इनमें से उचित वितरण (HTTP कम्प्रेशन, कैशिंग)।

बेशक सर्वर-साइड की गति अभी भी महत्वपूर्ण है, मैं यह नहीं कह रहा हूं कि इसे अनदेखा किया जाना चाहिए या यह कोई फर्क नहीं पड़ता। लेकिन आम तौर पर यह अंत उपयोगकर्ता की गति का सबसे छोटा हिस्सा है - सर्वरसाइड का काम अक्सर 500 मिलीसेकंड से कम में किया जाता है, लेकिन पेज 3,000 से पहले तैयार नहीं है - 5,000 मिलीसेकंड बीत चुके हैं। इस समय का बल्क फ्रंटेंड रिसोर्स (CSS, Javascript, Images) डाउनलोड करने के लिए जाता है।

याहू में रहते हुए स्टीव सॉडर्स ने मूल काम किया, अब वह Google में काम कर रहे हैं। उनकी पहली पुस्तक "हाई परफॉर्मेंस वेबसाइट्स" फास्ट वेबसाइट बनाने के बारे में अधिक जानने के लिए सबसे अच्छा शुरुआती बिंदु है। उनकी पुस्तक में वही सामग्री है जो इस वीडियो वार्ता और इन डिज़ाइन नियमों में मिल सकती है । हालांकि, मुझे लगता है कि पुस्तक पढ़ने के लिए जल्दी है, और समझने में बहुत आसान है।

आप WebPageTest.org के टेस्टर के माध्यम से साइटों को चला सकते हैं - जो आपको इन साइटों के सामने वाले हिस्से के लिए एक अच्छा एहसास देगा, और वे तेज या धीमे क्यों हैं।

मेरा मानना ​​है कि अगर Nginx से सेवा की जाती है तो serverfault.com IIS 7 से बहुत तेज होगा (दोनों ही स्थिति में db का एक्सेस समय समान होने के कारण)। क्या यह उचित धारणा है?

नहीं, यह गलतफहमी है। :-)


18

Nginx का उपयोग अक्सर अन्य अनुप्रयोगों / सर्वरों को संतुलित करने और पूर्ण सर्वर के रूप में उपयोग किए जाने वाले स्थिर सामग्री की सेवा के लिए किया जाता है।

उदाहरण के लिए, आप कई अजगर रूपरेखाओं में से एक का उपयोग करके एक ऐप लिख सकते हैं, और nginx उस के कई उदाहरणों के लिए अग्र-छोर हो सकता है (शायद कई मशीनों में फैल गया)। इस मामले में nginx सर्वर दो उद्देश्य हैं: यह सीधे छवियों और स्टाइलशीट जैसी स्थिर सामग्री के अनुरोधों को संभालता है (और इसके डिजाइन के कारण यह बहुत जल्दी ऐसा करता है ), और यह उन सभी उदाहरणों के बीच लोड को फैलाने वाले एप्लिकेशन के लिए गतिशील अनुरोधों को पार करता है जिनके बारे में यह जानता है । रूबी ऑन रेल समुदाय में भी यह बहुत लोकप्रिय विन्यास है।

स्थानीय याहू सेवा की तुलना में रामब्लर आपके लिए तेजी से प्रकट हो सकने वाले दो अन्य सकारात्मक कारण हैं। सबसे पहले स्थानीय याहू PoP के पास पर्याप्त संसाधन उपलब्ध नहीं हो सकते हैं जो किसी भी अनुरोध को प्राप्त करने के लिए शीघ्रता से उपलब्ध हो इसलिए शायद और अधिक हार्डवेयर जोड़ना (सॉफ्टवेयर स्केल को इस तरह से ग्रहण करना) इसे गति देगा (लेकिन, संभवतः, अंतर नहीं है अतिरिक्त किट को बनाए रखने की लागत के लायक या याहू ने ऐसा किया होगा)। अन्य बड़ा अंतर वेब सर्वर के बैक-एंड में हो सकता है - दो सेवाओं में कोई संदेह नहीं होगा बहुत अलग डेटाबेस व्यवस्था है और भले ही वे वास्तव में एक ही तरह के प्रश्नों के चलने की संभावना नहीं है (और राशि की राशि) डेटाबेस अभिलेखागार के लिए समर्पित हार्डवेयर का एक महत्वपूर्ण प्रभाव भी होगा)।

यह विश्लेषण करना कि एक सेवा दूसरे की तुलना में तेज़ क्यों है (आम तौर पर या विशिष्ट परिस्थितियों में) आमतौर पर एक ही सरल उत्तर में परिणाम नहीं निकलता है - एक ऐप को डिज़ाइन करने के कई तरीके हैं जो कई हजारों उपयोगकर्ताओं को स्केल करने का इरादा है, प्रत्येक इसके साथ है स्वयं के लाभ, समस्याएं और समझौते और यहां तक ​​कि अगर आप उन सभी मतभेदों को एक साइट से अलग करते हैं, तो एक अलग उपयोगकर्ता-आधार गतिशील होगा, साथ ही डिजाइनरों के नियंत्रण से परे नेटवर्क के मुद्दे भी हैं।


3

nginx संभवतः, लेकिन स्थिर सामग्री सर्वर / गतिशील सामग्री जनरेटर के सामने उचित लोड संतुलन के साथ अधिक स्केलेबल आर्किटेक्चर। यदि आप वास्तव में महान अंत-उपयोगकर्ता अनुभव प्राप्त करना चाहते हैं, तो आपको संभवतः सामग्री को 'नेत्रगोलक' के करीब ले जाना चाहिए - कुछ सीडीएन का उपयोग करें।

यदि आप इस विषय में रुचि रखते हैं - यह और यह देखें और .. अच्छी तरह से - Google; -]


2

सर्वश्रेष्ठ साइटें एप्लिकेशन त्वरक का उपयोग करती हैं जैसे कि ज़ीउस के ZXTMs - वे कई मामलों में गतिशील प्रतिक्रियाओं को कैश कर सकते हैं जो स्पष्ट रूप से बहुत लाभ है।



0

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

लोड समय और विलंबता के साथ स्पष्ट समस्याओं में से अधिकांश सर्वर और अंतिम उपयोगकर्ता के बीच से आता है और वास्तविक सर्वर प्रदर्शन नहीं करता है (जब तक कि किसी ने कुछ गलत आकार या डिज़ाइन नहीं किया है)। अलग-अलग साइटों को अलग-अलग तरीके से रूट किया जा सकता है और इस बात की बड़ी संभावना है कि मेरे लिए एक देश-स्थानीय साइट पूरे ग्रह की तुलना में एक बड़ी विलंबता है - यह सब इतने सारे चर पर निर्भर करता है कि आप यह नहीं कह सकते हैं कि यह सिर्फ एक सेवा से ही संभव है उन्नयन / स्विच जब तक आप यह नहीं जानते कि एक विशिष्ट उपयोग (r) के लिए समस्या कहाँ है ...

जाहिर है कि सर्वर पर विभिन्न प्रकार के कैशिंग से बहुत फर्क पड़ता है लेकिन ये सभी साइटें पहले से ही ऐसा करती हैं जहां तक ​​मुझे पता है।

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