2013-11-03 4 views
5

मैं देखना चाहता हूं कि मेरा nginx + node.js सेटअप कितना दूर जा सकता है और मैं a great article पर कुछ प्रदर्शन करने के लिए ओएस को किए जा सकने वाले कुछ ट्यूनिंग का विवरण देने वाले अतिरिक्त प्रदर्शन को निचोड़ने के लिए क्या परिवर्तन कर सकता हूं (जो कि अधिक अनुरोधों का सामना करने के लिए ओएस को किया जा सकता है (जो मुझे यकीन नहीं है कि मैं पूरी तरह से समझता हूं)वेब-सर्वर के साथ-साथ अनुरोधों की एक बड़ी राशि का अनुकरण कैसे करें?

कहें कि मैं देखना चाहता हूं कि यह समय की अवधि के लिए प्रति सेकंड 60,000 अनुरोधों को कैसे प्रबंधित करता है।

मैंने apachebench और beeswithmachineguns को आजमाया है। apachebench लगभग 3500 अनुरोधों या कुछ के लिए स्थानीय रूप से सीमित प्रतीत होता है। समेकन को बढ़ाने से केवल औसत रिक/एस को कम करने में मदद मिलती है। मैं beeswithmachineguns के साथ एक परीक्षण पृष्ठ पर प्रति सेकंड 5000 अनुरोधों को देखने के लिए (दावा) ~ में सक्षम था, लेकिन है कि अभी भी कहीं नहीं है कि मैं क्या चाहते हैं उसके पास है। हालांकि, यह छोटी गाड़ी की तरफ थोड़ा सा प्रतीत होता है।

क्या इस तरह के अनुरोधों की एक बड़ी राशि अनुकरण करने का एक विश्वसनीय तरीका है?

उत्तर

5

आप siege दे सकता है एक साथ ही कोशिश करते हैं।

लेख आपको लिंक करने के बाद मेरे लिए अच्छा लग रहा है।

60,000 आरक्यू/एस उत्पन्न करना और एक ही समय में उनका जवाब देना एक समस्या होगी क्योंकि आप निश्चित रूप से संसाधनों से बाहर निकलते हैं। अनुरोधों को उत्पन्न करने के लिए कुछ अन्य कंप्यूटर (शायद एक ही नेटवर्क पर) होना सबसे अच्छा होगा और आपके सर्वर को केवल उनको जवाब देने दें।

यहां आपके वांछित 60,000 आरक्यू/एस के लिए घेराबंदी कॉन्फ़िगरेशन है जो आपके सर्वर को एक मिनट के लिए हिट करेगा।

# ~/.siegerc 

logfile   = $(HOME)/siege.log 
verbose   = true 
csv    = true 
logging   = true 
protocol  = HTTP/1.1 
chunked   = true 
cache   = false 
accept-encoding = gzip 
benchmark  = true 
concurrent  = 60000 
connection  = close 
delay   = 1 
internet  = false 
show-logfile = true 
time   = 1M 
zero-data-ok = false 

यदि आपके पास भार उत्पन्न करने के लिए आधारभूत संरचना नहीं है, तो इसे किराए पर लें। एक बहुत अच्छी सेवा Blitz.IO है (मैं उनके साथ संबद्ध नहीं हूं)। उनके पास एक आसान और सहज इंटरफ़ेस है और (सबसे महत्वपूर्ण) वे आपके लिए लगभग किसी भी ट्रैफ़िक उत्पन्न कर सकते हैं।

+0

महान लग रहा है, मैं इसे एक शॉट दे देंगे। सर्वर का कौन सा हिस्सा पहले इस तरह के लोड के तहत बाहर निकल जाएगा? क्या यह टीसीपी सॉकेट से बाहर हो जाएगा या क्या यह केवल सीपीयू/रैम लोड इत्यादि का मामला है? मैं एक ऐसी प्रणाली बनाने की तलाश में हूं जो उस प्रकार के भार को अनिश्चित काल तक संभाल सके। मैं भार संतुलन के उद्देश्य के लिए पूरी तरह से nginx के साथ एक मशीन का उपयोग करने के बारे में सोच रहा था। क्या यह संभव है? –

+0

आपके द्वारा चलाए जाने वाली पहली चीज़ टीसीपी सॉकेट हैं। nginx (ठीक से कॉन्फ़िगर किया गया) बहुत कम CPU और रैम पदचिह्न है। कोड कोड बढ़ने के साथ नोड.जेएस आपके सीपीयू (और बाद में रैम पर) खाने के लिए बढ़ेगा। अन्य भाषाएं आपको यहां अधिक प्रदर्शन दे सकती हैं (उदा। संकलित PHP, PHP \ w OP कैश, सी/सी ++)। अनिश्चित काल तक संभव नहीं होगा, अन्यथा आपके पास एक प्रणाली होगी जिसे आप आसानी से अमेज़ॅन, फेसबुक और Google को बेच सकते हैं। लोड बैलेंसर के रूप में Nginx बिल्कुल कोई समस्या नहीं है। – Fleshgrinder

+0

nginx आने वाले अनुरोधों में छान-बीन करने के लिए, करने के लिए, कहते हैं उन्हें मोहरा बंद करने के लिए 10 अन्य सर्वर है, यह मुद्दा में चलाने नहीं है के साथ टीसीपी भी कुर्सियां ​​अगर यह एक लोड संतुलन के रूप में इस्तेमाल किया जा रहा है, या मैं कुछ याद आ रही है? –

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