2013-07-03 4 views
68

वेबसाइटसेट अच्छा है, लेकिन क्या यह 1,000,000 समवर्ती कनेक्शन को संभालने में सक्षम होगा?
1,000,000 वेबसाईट खोलने के लिए कितने सिस्टम संसाधन आयोजित किए जाएंगे?1,000,000 वेबसाईट खोलने के लिए कितने सिस्टम संसाधन आयोजित किए जाएंगे?

उत्तर

37

अपडेट किया गया उत्तर

लघु जवाब: हाँ, लेकिन यह महंगा है।

लांग जवाब:

इस सवाल के बाद से WebSockets मौलिक संदेशों के लिए एक HTTP की तरह हाथ मिलाना और कम से कम तैयार के साथ लंबे समय तक रहा TCP सॉकेट हैं WebSockets लिए अद्वितीय नहीं है।

असली सवाल यह है: क्या एक सर्वर 1,000,000 एक साथ सॉकेट कनेक्शन को संभाला जा सकता है और यह कौन से सर्वर संसाधनों का उपभोग करेगा? जवाब कई कारकों से जटिल है, लेकिन एक उचित आकार के सिस्टम (सीपीयू, रैम और फास्ट नेटवर्किंग के बहुत सारे) और एक ट्यूनेड सर्वर सिस्टम और अनुकूलित सर्वर सॉफ़्टवेयर के साथ 1,000,000 एक साथ सक्रिय सॉकेट कनेक्शन संभव है।

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

500,000 कनेक्शन के लिए अनुमानित संसाधन उपयोग के बारे में एलेसेंड्रो एलिनोन का उत्तर देखें।

91

:

यहाँ कुछ पुराने, लेकिन अभी भी लागू संसाधनों कैसे आप अपने सर्वर को कॉन्फ़िगर हैं पर पढ़ सकते हैं और कनेक्शन की बड़ी संख्या का समर्थन करने के लिए अपने सर्वर सॉफ्टवेयर लिखने के लिए कर रहे हैं आज के सिस्टम पर, 1 मिलियन समवर्ती टीसीपी कनेक्शन को संभालना कोई मुद्दा नहीं है।

मैं पुष्टि कर सकता हूं कि हमारे अपने परीक्षणों के आधार पर (पूर्ण प्रकटीकरण: मैं लाइटस्ट्रीमर पर सीटीओ हूं)।

हमें अपने कुछ ग्राहकों को कई बार प्रदर्शित करना पड़ा, कि एक लाख बॉक्स (और एक सुपर-राक्षस मशीन नहीं) पर 1 मिलियन कनेक्शन तक पहुंचा जा सकता है। लेकिन मुझे कॉन्फ़िगरेशन को दोबारा दोहराएं जहां हमने 500 के समवर्ती कनेक्शन का परीक्षण किया, क्योंकि यह अमेज़ॅन ईसी 2 पर किया गया एक और हालिया परीक्षण है।

हमने m2.4xlarge उदाहरण पर लाइटस्ट्रीमर सर्वर (जो अन्य चीज़ों के साथ एक वेबसाकेट सर्वर है) स्थापित किया है। इसका मतलब है 8 कोर और 68.4 जीआईबी मेमोरी।

हमने लाइटस्ट्रीमर सर्वर को 500,000 समवर्ती कनेक्शन बनाने के लिए 11 क्लाइंट मशीन लॉन्च की हैं। परीक्षण कॉन्फ़िगर किया गया था ताकि सर्वर से कुल आउटबाउंड थ्रूपुट 90,000 अपडेट/एस हो, जिसके परिणामस्वरूप 450 एमबीटी/एस आउटबाउंड बैंडविड्थ की चोटी हो गई।

सर्वर ने कभी भी 13 जीबी रैम का उपयोग नहीं किया और सीपीयू 60% के आसपास स्थिर था।

कम से कम 30 जीबीबी रैम के साथ आप 1 मिलियन समवर्ती सॉकेट को संभाल सकते हैं। आवश्यक सीपीयू आपको आवश्यक डेटा थ्रूपुट पर निर्भर करता है।

+4

मुझे लगता है कि यह लिनक्स का कुछ स्वाद था। क्या आप कर्नेल को ट्यून किए जाने के तरीके के बारे में अतिरिक्त जानकारी साझा कर सकते हैं? अधिकतम फ़ाइल वर्णनकर्ता/टीसीपी विंडो आकार आदि? – quixver

+9

यह वेनिला अमेज़ॅन लिनक्स था। अधिकतम फ़ाइल वर्णनकर्ताओं में वृद्धि हुई थी। टीसीपी प्रेषण बफर को 1600 बाइट्स तक घटा दिया गया था (लाइटस्ट्रीमर द्वारा डिफ़ॉल्ट रूप से किया गया था, हालांकि इसे मैन्युअल रूप से ट्यून किया जा सकता है)। एमएसएस डिफ़ॉल्ट था। –

+0

क्या यह नरम पूरी तरह से मुक्त है या इसका उपयोग करने के लिए कुछ शुल्क की आवश्यकता है? –

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