हम अमेज़ॅन ईसी 2 में कुछ दिनों के लिए HAProxy के साथ लड़ रहे हैं; अनुभव अब तक बहुत अच्छा रहा है, लेकिन हम सॉफ़्टवेयर लोड बैलेंसर से अधिक प्रदर्शन निचोड़ने पर फंस गए हैं। हम वास्तव में लिनक्स नेटवर्किंग whizzes नहीं हैं (हम सामान्य रूप से एक .NET दुकान हैं), लेकिन हमने अभी तक अपना खुद का आयोजन किया है, किसी भी अनियमितताओं के लिए कर्नेल संदेशों और tcpdumps का निरीक्षण, उचित ulimits सेट करने का प्रयास किया है। अभी तक, हम लगभग 1,700 अनुरोध/सेक के पठार तक पहुंच गए हैं, जिस बिंदु पर क्लाइंट टाइमआउट बहुत अधिक हैं (हम इस उद्देश्य के लिए httperf का उपयोग और tweaking कर रहे हैं)। एक सहकर्मी और मैं सबसे हालिया स्टैक ओवरफ्लो पॉडकास्ट को सुन रहा था, जिसमें रेडडिट संस्थापक नोट करते हैं कि उनकी पूरी साइट एक हैप्रोक्सी नोड से निकलती है, और यह अब तक एक बाधा नहीं बन गई है। एसीके! या तो किसी भी तरह से कई समवर्ती अनुरोध नहीं देख रहे हैं, हम कुछ गलत कर रहे हैं, या ईसी 2 की साझा प्रकृति Ec2 इंस्टेंस के नेटवर्क स्टैक को सीमित कर रही है (हम एक बड़े उदाहरण प्रकार का उपयोग कर रहे हैं)। इस तथ्य को ध्यान में रखते हुए कि जोएल और रेडडिट संस्थापक दोनों सहमत हैं कि नेटवर्क सीमित कारक होगा, क्या यह संभव है कि हम जिस सीमा को देख रहे हैं?अमेज़ॅन ईसी 2 में लोड संतुलन?
किसी भी विचार की बहुत सराहना की जाती है!
संपादित करें ऐसा लगता है कि वास्तव में लोड बैलेंसर नोड के साथ वास्तविक समस्या नहीं थी! अपराधी वास्तव में इस उदाहरण में, fansperf चलाने वाले नोड्स थे। जैसा कि प्रेजिफर्ड प्रत्येक अनुरोध के लिए एक सॉकेट बनाता है और आँसू देता है, यह कर्नेल में CPU समय की एक अच्छी मात्रा खर्च करता है। चूंकि हमने अनुरोध दर को ऊंचा कर दिया, टीसीपी एफआईएन टीटीएल (डिफ़ॉल्ट रूप से 60 वें स्थान पर) बहुत लंबे समय तक सॉकेट रख रहा था, और ip_local_port_range का डिफ़ॉल्ट इस उपयोग परिदृश्य के लिए बहुत कम था। असल में, कुछ मिनटों के बाद ग्राहक (हस्पॉर्टर) नोड लगातार नए सॉकेट बनाने और नष्ट करने के बाद, अप्रयुक्त बंदरगाहों की संख्या समाप्त हो गई, और बाद में 'अनुरोध' इस चरण में गलती हुई, कम अनुरोध/सेकंड संख्याएं और बड़ी राशि त्रुटियों का
हमने भी nginx पर देखा था, लेकिन हम RighScale के साथ काम कर रहे हैं, और उन्हें HAPROxy के लिए ड्रॉप-इन स्क्रिप्ट मिल गई हैं। ओह, और जब तक यह पूरी तरह से साबित नहीं होता है तब तक हमें घटकों को स्विच करने के लिए [निश्चित रूप से] समय सीमा बहुत सख्त हो गई है। दयालुता से, एडब्ल्यूएस पर होने से हम समानांतर (अगर वांछित) में nginx का उपयोग करके एक और सेटअप का परीक्षण करने की अनुमति देते हैं, और बाद में स्विच को रात भर बनाते हैं।
This page प्रत्येक sysctl चर का वर्णन काफी अच्छी तरह से करता है (ip_local_port_range और tcp_fin_timeout इस मामले में ट्यून किया गया था)।
मार्क, आपको इस सामग्री को कॉन्फ़िगर करने के साथ अपने अनुभव लिखना चाहिए, और उन्हें कहीं पोस्ट करना चाहिए (क्या आपकी कंपनी का ब्लॉग है?)। लगता है जैसे यह बहुत से लोगों के लिए उपयोगी हो सकता है। आपके प्रश्न को ऊपर उठाया। – SquareCog
आपका लिंक टूटा हुआ है। – Ztyx
@Ztyx धन्यवाद! बस इसे अद्यतन किया। मैं एक नए, अधिक अद्यतित स्रोत के लिए चारों ओर खुदाई कर रहा था, ऐसा लगता है कि मूल साइट पर अभी भी एक सुंदर उच्च पेजरैंक है, और सामग्री अभी भी सभ्य है, इसलिए मैं इसे नए यूआरएल को प्रतिबिंबित करने के लिए बस इसे ठीक कर रहा हूं। –