नगनेक्स बनाम अपाचे - क्या कोई वास्तविक उपयोग तुलना और सांख्यिकीय हैं?


45

मेरे पास खेलने के लिए एक नया सर्वर है, और मैं एक खाली कैनवास देख रहा हूं। मैं उस पर जो चाहे कर सकता हूं। जबकि मैं अपाचे के साथ सहज हूं, मैं सुनता रहता हूं कि कैसे नगनेक्स 10, 100 के कारकों से, अपाचे की तुलना में बहुत अधिक यातायात को संभाल सकता है। इतना ही नहीं यह "बहुत तेज है।"

जब मैं लेखों की खोज करता हूं तो मुझे ड्रुपल से बहुत सारे सामान मिल सकते हैं। या, जब मैं एक Drupal से संबंधित लेख भर में आता हूं तो यह 1 है) किसी की कॉन्फ़िगरेशन फ़ाइल यह समझाने की त्वरित कोशिश के साथ कि इसे कैसे सेट किया जाए, या 2) यह कोई कह रहा है "नहीं, nginx का उपयोग न करें, PHP के साथ Apache के साथ जाएं। fcgid "लेकिन वहाँ क्यों के रूप में स्पष्टीकरण नहीं है।

तो, जब द्रुपाल की बात आती है, तो यहां वास्तविकता क्या है?

एक उदाहरण के रूप में, मैं इस 2bit.com लेख की तर्ज पर कुछ ढूंढ रहा हूं । यहाँ लेखक ने अपाचे mod_php बनाम अपाचे पर fcgid के साथ एक बहुत व्यापक रूप लिया है, प्रत्येक के पेशेवरों और विपक्षों का वजन किया है, और वास्तविक दुनिया में प्रभाव का वर्णन करने के लिए एक केस स्टडी प्रदान की है। इस लेख में मेरे लिए एक शिक्षित निर्णय लेने के लिए पर्याप्त जानकारी है कि मेरी स्थिति के लिए कौन सा दृष्टिकोण सबसे अच्छा होगा।

जबकि वह लेखक mod_php की तुलना fcgid से करता है, मैं उसी प्रकार की व्यापक, वास्तविक दुनिया की तलाश में हूँ, जो अपाचे बनाम नग्नेक्स में देख रहा हो।

किसी ने भी Nginx पर स्विच किया और इसे अपाचे की तुलना में किए गए अंतर से "उड़ा दिया गया"? यहां तक ​​कि अत्यधिक अनुकूलित वातावरण के लिए, जो पहले से ही APC, मेम्चे, और वार्निश जैसे आक्रामक कैशिंग का उपयोग कर रहे हैं, जब केवल चर जो बदलाव को अपाचे को नग्नेक्स के साथ बदल रहा है, इस नए, वैकल्पिक प्रौद्योगिकी में निवेश करने के लिए और में खुद को पर्याप्त अंतर देता है ?

इस सर्वर पर जाने वाली साइट को महीने में 2 मिलियन PV का लाभ मिलता है। LAMP स्टैक रनिंग सेंट OS 6. 4 कोर CPU विथ 8 गगस ऑफ़ रेम। मेमकाटेड और एपीसी मिक्स का हिस्सा होंगे। Drupal install के बारे में कुछ खास नहीं - लगभग 50 मॉड्यूल के साथ मूल रूप से वैनिला 7।


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

जवाबों:


60

सख्ती से बोलना, यह आपके द्वारा पूछे जा रहे सवाल का जवाब नहीं देता है। मुझे उम्मीद है कि यह वैसे भी उपयोगी है।

Apache / Nginx / Lighttpd / अन्य वेब सर्वर। क्या यह मायने रखता है कि मैं किसे चुनूं? संक्षेप में, नहीं

बहुत लंबा जवाब:

यदि , और केवल यदि, आपके पास अपने उपयोगकर्ताओं का बहुत बड़ा प्रतिशत लॉग इन हो रहा है, तो क्या आपको अपने वेब सर्वर के प्रदर्शन के बारे में ध्यान रखना चाहिए। यदि आपके उपयोगकर्ता अनाम हैं, तो कोई भी अंतर जो आप सैद्धांतिक रूप से अपने संसाधनों को बेहतर ढंग से उपलब्ध कराने की तुलना में उस तल पर निरपेक्ष ताल के अनुकूलन से प्राप्त कर सकते हैं। यदि आपकी सीएसएस फाइलों पर उचित कैश हेडर हैं, तो यूए दूसरी बार भी उनसे नहीं पूछेगा। वो मायने रखता है। यदि आप वार्निश या इसी तरह के सॉफ़्टवेयर समाधान में अपने पृष्ठों को कैश कर सकते हैं, तो उस पृष्ठ की सेवा एक हैश-लुकअप करने की बात है, और फिर रैम से डेटा का एक बड़ा हिस्सा सीधे वापस करना है। वो मायने रखता है। इन दोनों परिदृश्यों में, HTTP डेमॉन कभी भी शामिल नहीं होता है, PHP का उपयोग नहीं किया जाता है। Drupal बूटस्ट्रैप नहीं करता है। मॉड्यूल के किसी भी बड़े सेट को रैम में लोड नहीं किया जाना चाहिए, समय-समय पर डेटाबेस क्वेरीज़ निष्पादित नहीं की जाती हैं।

जब आप एक पूर्ण पृष्ठ लोड करते हैं, एक ठंडे कैश से, एक लॉग इन उपयोगकर्ता के लिए, एक जटिल पृष्ठ पर; बहुत सारी चीजें चल रही हैं। हां, वेब सर्वर आने वाले अनुरोध से निपटने, कुछ हेडर सेट करने और प्रतिक्रिया वापस देने में शामिल है। लेकिन जो समय लगता है, वह ड्रुपल के पूर्ण बूटस्ट्रैप को चलाने और उसकी प्रतिक्रिया के आउटपुट के संदर्भ में भी प्रासंगिक नहीं है। सैकड़ों डेटाबेस क्वेरीज़ निष्पादित की जा सकती हैं। PHP में अत्यधिक जटिल तर्क का मूल्यांकन पार्सर द्वारा किया जाता है। मॉड्यूल के बहुत सारे रैम में लोड किए जा रहे हैं। उन चीजों में से किसी के प्रदर्शन में सुधार, प्रदर्शन में गंभीर योगदान देने की अधिक संभावना है।

तर्क के लिए: मान लीजिए कि आपने हर चीज को अनुकूलित करने में बहुत समय बिताया है।

  1. आप एपीसी (या ऑप्टिमाइज़र + ) और PHP के नवीनतम और सबसे तेज़ संस्करण चलाते हैं ।
  2. DB- क्वेरीज़ कुछ हैं
  3. PHP का तर्क कम कर दिया गया है।
  4. आप वार्निश में आप जो कर सकते हैं उसे कैश करें।
  5. आपने अपनी पूरी साइट को फिर से संरचित किया है ताकि आप बहुत से ग्राहक को कैश कर सकें, और ईसीएमएस्क्रिप्ट में बहुत अधिक भार उठा सकें ।

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

उपर्युक्त तार्किक रूप से इस निष्कर्ष पर पहुंचने का एक प्रयास था कि वेब सर्वर के अनुकूलन के लिए समय व्यतीत करने का समय के खराब उपयोग की संभावना है। मैं ऊपर किसी को छेद करना पसंद करूंगा, हालांकि, मैं शायद इससे कुछ नया सीखूंगा। :)

कुछ अन्य नोट:

  1. के दौरान DrupalCon कोपेनहेगन मुख्य वक्ता के रूप , पीएचपी निर्माता रस्मुस लेर्दोर्फ़ , Nginx खुद का उपयोग कर, Drupal प्रदर्शन के विषय पर बोलते हुए कहा "लोग हमेशा मुझे वेब सर्वर के बारे में पूछने ... यह वास्तव में नहीं बात है, वेब सर्वर काफी अप्रासंगिक है करता है" । (वीडियो में मोटे तौर पर 26:30 बजे)
  2. फेसबुक ने '' औसत रूप से '' 100% तक PHP-code को तेज करने के लिए, Drupal की तुलना में कोड बेस, हिपहॉप लिखने में अनगिनत घंटे बिताए हैं । मैंने हिपहॉप की जांच की $ wc -l $(find . -type f | grep -v "^\.git" | grep -v "^\.hphp/third_party") | sort -nr | head -n1और इसे कोड की 1.512.481 लाइनों से युक्त पाया। यह PHP की गति में सुधार करने के लिए लगाए गए काम की एक बिल्कुल पागल राशि है। मैं अनुमान लगा रहा हूं क्योंकि PHP की गति उनके लिए बहुत मायने रखती है।
  3. क्या मैंने उल्लेख किया है कि अच्छा कैशिंग एक बहुत अधिक प्रभाव डालने वाला है जो वेब सर्वर को ट्यूनिंग करता है?
  4. अपाचे 2.4 की रिलीज़ के साथ, जिम जैगेल्स्की मूल रूप से दावा करते हैं कि अपाचे 2.4 घटना आधारित सर्वरों की तुलना में तेज़ है
  5. मैंने ड्रीम टीम के साथ ड्रुपल परफॉर्मेंस और स्केलेबिलिटी को अटेंड किया , जहां यह सवाल आया। उन सभी उत्तरों के बारे में जिन्हें चुनने के लिए, प्रदर्शन के लिए असंबंधित था। "कौन सा आप पहले से जानते हैं कि कैसे कॉन्फ़िगर करें", और "कौन सा आपको सबसे सरल प्रौद्योगिकी स्टैक का निर्माण करने की अनुमति देगा" जैसी चीजें, उन कारणों में से थीं, जिन्हें दूसरे पर लेने के लिए उल्लेख किया गया था। प्रदर्शन तस्वीर में प्रवेश नहीं किया ।

4
वेब सर्वर को कभी भी हिट करने से सीएसएस, जेएस और छवि अनुरोधों के विशाल बहुमत को रोकने के लिए सीडीएन के बारे में मत भूलना।
mpdonadio

बहुत बढ़िया बात! मुझे लगता है कि मुझे कुछ बिंदु पर drupal.stackexchange.com/questions/24180/… लिखना होगा। Apache / Nginx के बारे में एक चर्चा प्रदर्शन अनुकूलन की एक व्यापक सूची बनाने के लिए इष्टतम जगह की तरह नहीं लगती है।
लेट्रियन

1
यह एक बेहतरीन जवाब है। बस एक नाइटपिक: आपको "ईसीएमएस्क्रिप्ट" और "जावास्क्रिप्ट" का परस्पर उपयोग नहीं करना चाहिए। ECMAScript की तुलना में जावास्क्रिप्ट में बहुत अधिक है।

आप कह रहे हैं कि कैश वेबसर्वर की गति से कहीं अधिक महत्वपूर्ण है। अंदाज़ा लगाओ? यदि एक वेबसर्वर दूसरे की तुलना में कम मेमोरी का उपयोग करता है, तो आप कैशिंग के लिए अधिक रैम का उपयोग कर सकते हैं। इसलिए हम कह सकते हैं कि यह है अपने वेब सर्वर ठीक से तो धुन करने के लिए महत्वपूर्ण है कि यह अपने सभी रैम, सही खाना नहीं करता है?
pqnet

कम रैम का उपयोग करने के लिए अपने सर्वर को ट्यूनिंग करना बिल्कुल ठीक है, लेकिन यदि आप उच्च प्रदर्शन वाले क्षेत्र में जाने की कोशिश कर रहे हैं, तो आप एक समर्पित सर्वर पर वार्निश चला रहे होंगे, इसलिए आपका http सर्वर और कैश एक ही मेमोरी के लिए प्रतिस्पर्धा नहीं करेंगे।
लेटेरियन

32

ठीक है, हालांकि यह सवाल पहले से ही उत्तर दे रहा है, मैं एक बार फिर से चर्चा कर रहा हूं, मुख्य रूप से क्योंकि मुझे इन उत्तरों के निहितार्थ पसंद नहीं हैं कि इससे कोई फर्क नहीं पड़ता है, और क्योंकि एक वेब डेवलपर के रूप में, मैं एक जुनून के साथ कैशिंग से नफरत करता हूं ।

Apache और nginx के बीच का अंतर इतना नहीं है कि "कितनी तेजी से वे एक अनुरोध की सेवा कर सकते हैं" बल्कि कितने अनुरोधों पर वे एक ही राशि के हार्डवेयर (विशेष रूप से सीमित स्रोतों के साथ) पर सेवा कर सकते हैं, जो कुछ अलग बात है।

अपाचे एक प्रक्रिया-आधारित सर्वर है। मतलब यह हर अनुरोध के लिए एक प्रक्रिया की मांग करता है। Nginx एक ईवेंट आधारित सर्वर है, जिसका अर्थ है प्रक्रियाओं या थ्रेड्स के बजाय (अतुल्यकालिक) ईवेंट-लूप का उपयोग करना।

और जबकि एक प्रक्रिया-आधारित सर्वर (अपाचे की तरह) एक अतुल्यकालिक घटना-आधारित सर्वर (जैसे नेग्नेक्स) के साथ हल्के लोड के तहत भारी लोड के तहत कम या ज्यादा प्रदर्शन कर सकता है , उदाहरण के लिए 10'0000 साथ-साथ अनुरोधों के लिए, केवल कुछ ही रैम की मेगाबाइट्स, जबकि अपाचे को अकेले वेब सर्वर के लिए कई सौ मेगाबाइट्स की आवश्यकता होती है (वेब ​​एप्लिकेशन को शामिल नहीं करता है, जिसे स्वयं अधिक रेसर स्रोतों की आवश्यकता होती है), अगर यह बिल्कुल भी कर सकता है।

इसलिए भारी भार के तहत, आप देखेंगे कि अपाचे बहुत अधिक रैम का उपभोग करता है, जो अनिश्चित रूप से प्रदर्शन को काफी कम कर देता है।

अधिक महत्वपूर्ण रूप से, एक उच्च रैम खपत का मतलब है कि Apache nginx की तुलना में एक ही हार्डवेयर पर कम अनुरोधों को पूरा करने में सक्षम है, जिसका अर्थ है कि Apache को समान उपयोगकर्ताओं के लिए अधिक हार्डवेयर की आवश्यकता होती है, जिसका अर्थ है कि आपके पास TCO (स्वामित्व की कुल लागत) है नगनेक्स के साथ अपाचे के साथ, जो आपके आरओआई (निवेश पर वापसी) को कम करता है।

एक्स समवर्ती कनेक्शन द्वारा उपयोग की जाने वाली कुल मेमोरी (कम बेहतर है)

स्मृति उपयोग

अनुरोध जो हार्डवेयर के 1 सेट पर एक्स समवर्ती कनेक्शन पर प्रति सेकंड परोसा जा सकता है (अधिक बेहतर है)

प्रति सेकंड अनुरोध

स्रोत: ApacheBench, dreamhost.com द्वारा

इस डिजिटल ओशन रिटप को भी देखें ।
जाहिरा तौर पर, यह अपाचे के लिए आपके द्वारा चुने गए कनेक्शन हैंडलिंग आर्किटेक्चर पर निर्भर करता है।


6
आप नाखून को सिर पर मारते हैं "... न कि वे कितनी तेजी से एक अनुरोध की सेवा कर सकते हैं, लेकिन हार्डवेयर की समान मात्रा में वे कितने अनुरोधों को पूरा कर सकते हैं ..." वास्तव में अंततः मैं अपने हिरन के लिए सबसे बड़ा धमाका करना चाहता हूं । ठीक उसी हार्डवेयर और अन्य चर की एक मशीन को देखते हुए, अगर मैं एक दिन में 1,000,000 उपयोगकर्ताओं को nginx के साथ सेवा दे सकता हूं, जहां Apache केवल 200,000 ही सेवा दे सकती है, तो निश्चित रूप से एक लागत के दृष्टिकोण से सबसे अच्छा विकल्प nginx है। एक निश्चित हार्डवेयर विन्यास को देखते हुए, क्या आपने अपाचे की तुलना में नगीनक्स के बीच एक बड़ा अंतर देखा है?
ब्लू 928

2
Apache 2.4, वर्तमान रिलीज़, का एक इवेंट-आधारित मॉडल है: httpd.apache.org/docs/current/mod/event.html
ग्रेग

1
इसके अलावा, उन लोगों के लिए जो कहते हैं कि इससे कोई फर्क नहीं पड़ता क्योंकि "यह तब तक ठीक रहेगा जब तक आप सामान कैशिंग कर रहे हैं": आप जानते हैं कि आपको कैशिंग करने की क्या आवश्यकता है? आपको Free RAM चाहिए।
pqnet

मैं अक्सर "नग्नेक्स अधिक भयानक है" के इन सामान्य दावों को देखता हूं, हालांकि, मैं शायद ही कभी (कभी?) किसी को भी ठोस सबूत के साथ इसे वापस देखता हूं। यह हमेशा "मेरी अत्यधिक कॉन्फ़िगर की गई नग्नेक्स उदाहरण ने एक स्टॉक एपाचे सर्वर को हराया है इसलिए अब मैंने साबित कर दिया है कि मैं शांत हूं क्योंकि मैं अन्य शांत बच्चों की तरह नंगेक्स का उपयोग करता हूं"। Nginx मेरे सभी परिचितों के लिए अपाचे से बहुत बेहतर हो सकता है, लेकिन मुझे अभी तक किसी को भी सही मायने में यह देखना नहीं है कि यह मामला है।
सुस्ती

@Letharion: हो गया (dreamhost.com द्वारा), और आपके अनुरोध के अनुसार जोड़ा गया। जैसा कि आप इस बेंचमार्क परिणामों में देख सकते हैं, nginx स्पष्ट रूप से अधिक मेमोरी-कुशल है। यह भी संभवतः है: मेरे स्टॉक-नेग्नेक्स-इंस्टेंस ने एक ही बेंचमार्क पर मेरे स्टॉक-अपाचे-इंस्टेंस को उसी कंप्यूटर पर हराया।
Quandary

16

मैं कुछ महीने पहले अपाचे से नग्नेक्स / पीएचपी-एफपीएम पर स्विच करता हूं।

मैंने एक ड्रुपल वेबसाइट के साथ कुछ बेंचमार्क बनाया, और कई उपयोग के मामले का परीक्षण किया। वीपीएस सर्वर पर 1 सीपीयू और 512 एमओ रैम के साथ

केवल कैश के साथ Drupal

nginx

ab -n 100 -c 30 xxx
Server Software:        nginx
Document Path:          /
Document Length:        24902 bytes

Concurrency Level:      30
Time taken for tests:   2.775 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      2529500 bytes
HTML transferred:       2490200 bytes
Requests per second:    36.04 [#/sec] (mean)
Time per request:       832.394 [ms] (mean)
Time per request:       27.746 [ms] (mean, across all concurrent requests)
Transfer rate:          890.28 [Kbytes/sec] received


httperf --client=0/1 --server=xxx --port=80 --uri=/ --send-buffer=4096 --recv-buffer=16384 --num-conns=100 --num-calls=10
Maximum connect burst length: 1

Total: connections 100 requests 1000 replies 1000 test-duration 48.946 s

Connection rate: 2.0 conn/s (489.5 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 470.6 avg 489.5 max 522.2 median 488.5 stddev 9.5
Connection time [ms]: connect 0.2
Connection length [replies/conn]: 10.000

Request rate: 20.4 req/s (48.9 ms/req)
Request size [B]: 74.0

Reply rate [replies/s]: min 20.0 avg 20.4 max 20.8 stddev 0.2 (9 samples)
Reply time [ms]: response 46.8 transfer 2.1
Reply size [B]: header 450.0 content 24902.0 footer 2.0 (total 25354.0)
Reply status: 1xx=0 2xx=1000 3xx=0 4xx=0 5xx=0

CPU time [s]: user 6.50 system 17.58 (user 13.3% system 35.9% total 49.2%)
Net I/O: 507.3 KB/s (4.2*10^6 bps)

अमरीका की एक मूल जनजाति

ab -n 100 -c 30 xxx
Server Software:        Apache/2.2.16
Document Path:          /
Document Length:        24902 bytes

Concurrency Level:      30
Time taken for tests:   28.364 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      25346000 bytes
HTML transferred:       24902000 bytes
Requests per second:    35.26 [#/sec] (mean)
Time per request:       850.918 [ms] (mean)
Time per request:       28.364 [ms] (mean, across all concurrent requests)
Transfer rate:          872.66 [Kbytes/sec] received


httperf --client=0/1 --server=xxx --port=80 --uri=/ --send-buffer=4096 --recv-buffer=16384 --num-conns=100 --num-calls=10
Maximum connect burst length: 1

Total: connections 100 requests 1000 replies 1000 test-duration 52.261 s

Connection rate: 1.9 conn/s (522.6 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 499.0 avg 522.6 max 591.0 median 518.5 stddev 19.4
Connection time [ms]: connect 0.6
Connection length [replies/conn]: 10.000

Request rate: 19.1 req/s (52.3 ms/req)
Request size [B]: 74.0

Reply rate [replies/s]: min 18.2 avg 19.2 max 19.6 stddev 0.5 (10 samples)
Reply time [ms]: response 46.9 transfer 5.3
Reply size [B]: header 453.0 content 24902.0 footer 2.0 (total 25357.0)
Reply status: 1xx=0 2xx=1000 3xx=0 4xx=0 5xx=0

CPU time [s]: user 6.80 system 18.88 (user 13.0% system 36.1% total 49.1%)
Net I/O: 475.2 KB/s (3.9*10^6 bps)

Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0

कैश और बूस्ट के साथ ड्रुपल

nginx

ab -n 10000 -c 30 xxx
Server Software:        nginx
Document Path:          /
Document Length:        25002 bytes

Concurrency Level:      30
Time taken for tests:   2.275 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      253780000 bytes
HTML transferred:       250020000 bytes
Requests per second:    4395.52 [#/sec] (mean)
Time per request:       6.825 [ms] (mean)
Time per request:       0.228 [ms] (mean, across all concurrent requests)
Transfer rate:          108934.95 [Kbytes/sec] received


httperf --client=0/1 --server=xxx --port=80 --uri=/ --send-buffer=4096 --recv-buffer=16384 --num-conns=1000 --num-calls=30
Maximum connect burst length: 1

Total: connections 1000 requests 30000 replies 30000 test-duration 5.971 s

Connection rate: 167.5 conn/s (6.0 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 4.2 avg 6.0 max 13.0 median 4.5 stddev 2.6
Connection time [ms]: connect 0.1
Connection length [replies/conn]: 30.000

Request rate: 5024.0 req/s (0.2 ms/req)
Request size [B]: 74.0

Reply rate [replies/s]: min 5017.2 avg 5017.2 max 5017.2 stddev 0.0 (1 samples)
Reply time [ms]: response 0.2 transfer 0.0
Reply size [B]: header 405.0 content 25002.0 footer 0.0 (total 25407.0)
Reply status: 1xx=0 2xx=30000 3xx=0 4xx=0 5xx=0

CPU time [s]: user 0.79 system 2.56 (user 13.2% system 42.9% total 56.1%)
Net I/O: 125016.7 KB/s (1024.1*10^6 bps)

Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0

अमरीका की एक मूल जनजाति

ab -n 1000 -c 30 xxxx
Server Software:        Apache/2.2.16
Document Path:          /
Document Length:        25002 bytes

Concurrency Level:      30
Time taken for tests:   0.753 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      25291000 bytes
HTML transferred:       25002000 bytes
Requests per second:    1327.92 [#/sec] (mean)
Time per request:       22.592 [ms] (mean)
Time per request:       0.753 [ms] (mean, across all concurrent requests)
Transfer rate:          32797.26 [Kbytes/sec] received


httperf --client=0/1 --server=xxx --port=80 --uri=/ --send-buffer=4096 --recv-buffer=16384 --num-conns=100 --num-calls=10
Maximum connect burst length: 1

Total: connections 100 requests 1000 replies 1000 test-duration 1.148 s

Connection rate: 87.1 conn/s (11.5 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 6.2 avg 11.5 max 14.1 median 11.5 stddev 1.3
Connection time [ms]: connect 0.1
Connection length [replies/conn]: 10.000

Request rate: 870.8 req/s (1.1 ms/req)
Request size [B]: 74.0

Reply rate [replies/s]: min 0.0 avg 0.0 max 0.0 stddev 0.0 (0 samples)
Reply time [ms]: response 1.1 transfer 0.1
Reply size [B]: header 260.0 content 25002.0 footer 0.0 (total 25262.0)
Reply status: 1xx=0 2xx=1000 3xx=0 4xx=0 5xx=0

CPU time [s]: user 0.13 system 0.57 (user 11.1% system 49.5% total 60.6%)
Net I/O: 21544.9 KB/s (176.5*10^6 bps)

Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0

प्रमाणित उपयोगकर्ता के लिए बेंचमार्क (पेज लोड)

nginx

Page load times : 2.85 s

अमरीका की एक मूल जनजाति

Page load times : 5.4 s

लेकिन Nginx की शक्ति कैश सिस्टम है

कैश सिस्टम के साथ बूस्ट और नग्नेक्स के बिना ड्रुपल सक्षम

Server Software:        nginx
Document Path:          /
Document Length:        24902 bytes

Concurrency Level:      30
Time taken for tests:   2.437 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      252670000 bytes
HTML transferred:       249020000 bytes
Requests per second:    4103.34 [#/sec] (mean)
Time per request:       7.311 [ms] (mean)
Time per request:       0.244 [ms] (mean, across all concurrent requests)
Transfer rate:          101248.99 [Kbytes/sec] received


httperf --client=0/1 --server=xxx --port=80 --uri=/ --send-buffer=4096 --recv-buffer=16384 --num-conns=1000 --num-calls=30
Maximum connect burst length: 1

Total: connections 1000 requests 30000 replies 30000 test-duration 6.044 s

Connection rate: 165.5 conn/s (6.0 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 4.2 avg 6.0 max 11.7 median 4.5 stddev 2.6
Connection time [ms]: connect 0.1
Connection length [replies/conn]: 30.000

Request rate: 4963.7 req/s (0.2 ms/req)
Request size [B]: 74.0

Reply rate [replies/s]: min 4970.1 avg 4970.1 max 4970.1 stddev 0.0 (1 samples)
Reply time [ms]: response 0.2 transfer 0.0
Reply size [B]: header 405.0 content 25002.0 footer 0.0 (total 25407.0)
Reply status: 1xx=0 2xx=30000 3xx=0 4xx=0 5xx=0

CPU time [s]: user 0.72 system 2.68 (user 12.0% system 44.3% total 56.3%)
Net I/O: 123516.8 KB/s (1011.8*10^6 bps)

Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0

आपको Drupal के लिए perusio के कॉन्फ़िगरेशन Nginx का उपयोग करना चाहिए


अपाचे कैसे चल रहा था, प्रीफॉर्म, FCGI, आदि। जब आप इन परीक्षणों को चलाते थे, तो क्या आपका अपाचे कॉन्फिगर किया गया था? क्या वास्तव में वही PHP वातावरण चल रहा था?
mpdonadio

PHP (5.3) का वातावरण बिल्कुल वैसा ही था। अपाचे mpm_prefork चला रहा था, और अपाचे कॉन्फिग (मैक्सक्लेयर, मैक्ससेपरसर्वर्स, मैक्सरैक्सेसपियरचाइल्ड, इत्यादि) PHP5-FPM
flocondetoile 3'13

4
ये अच्छी संख्या हैं, लेकिन मुझे यकीन नहीं है कि वे एक सच्चे तुलना हैं। Apache + FastCGI बनाम Apache + FCGI + PHPFPM बनाम Nginx + PHPFPM, अपाचे और Nginx के बीच के अंतर को बेहतर दिखाएगा।
mpdonadio

जैसा कि एमपीडी बताता है, यह सही तुलना नहीं है। सच्ची तस्वीर पाने के लिए आपको दोनों पर php-fpm चलाना होगा।

1
मुझे लगता है कि RAM- सीमित VPS खातों के लिए Nginx एक अच्छा विकल्प है। चूंकि यह अपाचे की तुलना में एक छोटे रैम पदचिह्न के साथ आराम से काम कर सकता है - खासकर यदि आप अनावश्यक मॉड्यूल को अनइंस्टॉल करते हैं - आपके पास ओपकोड कैश (एपीसी या पीएचपी 5.5 के अंतर्निहित ओपेक) को चलाने के लिए अधिक रैम है, तो MySQL / पोस्टग्रेज सर्वर दें डेमन एक बड़ा बफर, और अन्य अनुकूलन जो लेथियार सही बताते हैं, महत्वपूर्ण हैं।
गैरेट एलब्राइट

0

यहां दस वेबसर्वर / मरीज़ों (जैसे अपाचे, नगनेक्स, लाइटटैप, लाइट्सपीड, हियावथा, चेरोकी) के लिए एक प्रदर्शन परीक्षण किया जाता है। तीन परीक्षण ड्रुपल से संबंधित हैं।

मुझे लगता है कि Hiawatha सबसे अच्छा समग्र विकल्प हो सकता है। माना जाता है कि पूर्ण Drupal अनुकूलता के लिए , सुरक्षा पर जोर है (DoS, XSS, CSRF, SQL- इंजेक्शन रोकथाम), और Nginx के समान गति और पदचिह्न।

तीन ड्रुपल परीक्षणों में से, Hiawatha और Nginx दोनों ही अपाचेफॉर्म को लगभग 150% से अपाचे करते हैं, लेकिन Drupal static test में, Apache मामूली रूप से Nginx को पछाड़ देती है, जबकि Hiawatha लगभग 10% द्वारा पैक को सर्वश्रेष्ठ बनाता है।

मैं इनमें से किसी भी परीक्षण पर अपनी टोपी नहीं लटकाऊंगा, लेकिन यह विभिन्न उपयोग स्थितियों में प्रदर्शन का एक बॉलपार्क दृश्य देता है। मुझे लगता है कि केवल प्रदर्शन ही एकमात्र विचार नहीं होना चाहिए। स्थिरता और सुरक्षा अधिक महत्वपूर्ण कारक हो सकते हैं।


0

यहाँ एक ही हार्डवेयर पर चल रहे ड्रुपल के लिए लोड परीक्षण के परिणाम हैं, लेकिन विभिन्न वेब सर्वरों के साथ। (नग्नेक्स और अपाचे)

यहाँ इस परीक्षण का निष्कर्ष है:

समान हार्डवेयर संसाधनों के साथ बड़े ट्रैफ़िक के तहत, नगनेक्स अपाचे से बेहतर प्रदर्शन करता है।

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