2008-10-18 13 views
18

मैंने स्केलेबल लिनक पर similar question पोस्ट किया है। कुछ हालिया वार्तालापों में वास्तव में क्या स्केलेबिलिटी का मतलब था, इस पर कई अलग-अलग विचार थे, इसलिए इसने मुझे इस सवाल से पूछने के लिए प्रेरित किया है। स्केलेबिलिटी आपके लिए क्या मायने रखती है?स्केलेबिलिटी आपके लिए क्या मायने रखती है?

+1

महान प्रश्न। मैंने यह विचार सोचा था क्योंकि मैंने अंतिम प्रश्न पढ़ा था - यह तय किया था कि आपका मतलब है "यह कितना तेज़ था?", लेकिन यदि आप इसका मतलब है तो स्केलेबल का मतलब है तो PLINQ चीज़ में फेंक दिया। –

उत्तर

15

मैं दो दृष्टिकोणों से scalability को देखो:

ऊपर स्केलिंग मुझे लगता है कि कुछ पर चल रहा है बॉक्स, मैं कितना अतिरिक्त प्रदर्शन और क्षमता प्राप्त करते हैं के लिए और अधिक रैम जोड़ देते हैं तो? यदि मेरे पास एक एप्लिकेशन 300 से अधिक कनेक्शन संभाल सकता है और जब मैं अपने सर्वर पर 2 जीबी रैम जोड़ता हूं तो 15% तेज होता है और दूसरा एप्लीकेशन केवल 100 और कनेक्शन को संभाल सकता है और 5% तेज चला सकता है, एप्लिकेशन ए स्पष्ट रूप से अधिक स्केलेबल है।

बाहर स्केलिंग अब, अगर मैं अपने स्थापित करने के लिए अधिक बॉक्स जोड़ें, मैं अतिरिक्त प्रदर्शन और क्षमता कितना प्राप्त करते हैं? क्या मैं अधिक ग्राहक यातायात को संभालने के लिए वेब फ्रंट सिरों को स्थापित कर सकता हूं? यदि हां, तो क्या रैखिक वृद्धि हुई है? अगर मैं 3 बक्से जोड़ता हूं, तो क्या मुझे 3x अधिक उपयोगकर्ता मेरी साइट तक पहुंच सकते हैं? क्या मैं डेटा लोड वितरित करने के लिए और डेटाबेस जोड़ सकता हूं? क्या मैं मल्टीथ्रेडिंग स्केल कर सकता हूं? अगर मैं अपने आवेदन में क्षमता जोड़ने के लिए आसानी से अपने नेटवर्क में एक मशीन जोड़ सकता हूं, तो यह मापनीय है।

यह वैसे, एन-टियर के प्राथमिक ड्राइव में से एक है।

3

मैंने उस प्रश्न का उत्तर दिया जैसे कि आप तेजी से मतलब रखते थे, लेकिन ऐसा इसलिए है क्योंकि मैं झटका नहीं बनना चाहता था :) - जिसका अर्थ है, मैं स्केलेबल माध्यमों के बारे में कोई चर्चा शुरू नहीं करना चाहता था। मैं स्केलेबल के बारे में सोचता हूं: सिस्टम में संसाधन जोड़ने से इसका प्रदर्शन बढ़ जाता है।

उस अर्थ में, PLINQ स्केलेबल है, क्योंकि अधिक कोर जोड़ने से यह तेजी से चल जाएगा।

3

बस @Lou फ्रैंको की पोस्ट में जोड़ने के लिए।

PLINQ के पास सीमित ओवरहेड (उनके कुछ डेमो के अनुसार) कुछ परिदृश्यों में "सुपर लीनियर" प्रदर्शन भी अजीब है। कोशिश करके देखो।

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

1) नई विशेषताएं जोड़ने, बगों की आसानी:

9

अनुमापकता इन 2 क्षेत्रों में से किसी में वृद्धि को संभालने की क्षमता का मतलब है। कोड को इन नई चीजों को करने के लिए यह करना कितना मुश्किल है? हालांकि यह कुछ तरीकों से रखरखाव हो सकता है, यह भी सवाल है कि आप बड़े पैमाने पर आसानी से संभालने के लिए कोड बना सकते हैं या नहीं।

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

आम तौर पर मेरे लिए स्केलेबिलिटी का मतलब बढ़ने की क्षमता है।

+1

मैं 1 को हटा दूंगा), यह शब्द को प्रदूषित करता है और मुझे नहीं लगता कि कई लोग इसे शामिल करेंगे। बेशक रखरखाव अक्सर स्केलेबिलिटी के लिए एक आवश्यकता है, लेकिन मान लें, उपयोग में आसानी। – reinierpost

1

स्केलेबिलिटी - बढ़ी हुई क्षमता या थ्रूपुट प्राप्त करने के लिए अतिरिक्त संसाधनों का उपयोग करने के लिए सिस्टम की क्षमता। ड्राइव, मेमोरी, नेटवर्क कार्ड, प्रोसेसर, या मशीन जैसे अतिरिक्त संसाधन।

मैं सुविधा वृद्धि के साथ स्केलेबिलिटी को सीधे जोड़ता नहीं हूं, हालांकि इसकी स्केल सीमा पर सिस्टम में सुविधाओं को जोड़ना संभव नहीं हो सकता है।

+0

सहमत हुए। सुविधाओं को जोड़ने में स्केलेबिलिटी के साथ कुछ लेना देना नहीं है। – user18931

0
इन दिनों

और विशेष रूप से webapps के लिए, लेकिन यह भी उद्यम क्षुधा के लिए कुछ मामलों में, क्षैतिज scalability क्या आप करना चाहते हैं,

मैं और अधिक (यातायात, डेटा, प्रसंस्करण) संभाल कर सकते हैं और अधिक वस्तु हार्डवेयर जोड़कर ? यहां तक ​​कि "क्लाउड सर्वर" अमेज़ॅन ec2, google app इंजन और इसी तरह का उपयोग कर रहे हैं?

0

स्केलेबल माध्यमों से मैं एक सिस्टम में एन संसाधनों को क्रैम कर सकता हूं और यह ओ (लॉग (एन)) और ओ (एन लॉग एन) के बीच दोनों जगह और समय में बढ़ेगा। यह कुछ हद तक अवास्तविक है, लेकिन इस तरह मैं "स्केलेबल" के बारे में सोचता हूं।

6

मुझे नहीं लगता कि स्केलेबिलिटी संदर्भ के बिना भावना का एक आयोटा बनाता है।

जब मुझे किसी सिस्टम की स्केलेबिलिटी के बारे में पूछा जाता है, तो मुझे सबसे पहले यह जानने की आवश्यकता होती है कि इसका उपयोग किस प्रकार बढ़ने की उम्मीद है। क्या यह और अधिक उपयोगकर्ताओं को मिल जाएगा? क्या मौजूदा उपयोगकर्ता इसका भारी उपयोग कर रहे हैं? क्या इसकी सुविधा बढ़ रही है? लेनदेन का मिश्रण जो वर्तमान में परिवर्तन का समर्थन कर रहा है? क्या उपयोगकर्ता अनुभव को बदलने की आवश्यकता होगी?

(ठीक है, इसलिए उन सभी प्रश्नों के जवाब आमतौर पर "हाँ" है, तो शब्द "कैसे" उन सवालों से जोड़ें।)

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

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

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

-1

वो !, बड़ा शब्द ....

मैं इसे एक नया हर परियोजना को परिभाषित है, क्योंकि यह क्या ग्राहक चाहता है पर निर्भर करता है।

स्केलेबिलिटी हमेशा प्रोसेसिंग/स्टोरेज क्षमता जोड़ने के बारे में नहीं है, लेकिन इसमें कई इनपुट और कई आउटपुट का समर्थन भी शामिल हो सकता है।

3

मुझे लागत-प्रदर्शन वक्र की चिकनीता के माप के रूप में स्केलेबिलिटी के बारे में लगता है।

यही है, यदि आप कंप्यूटिंग संसाधनों पर थोड़ा खर्च कर सकते हैं और कम प्रदर्शन प्रणाली प्राप्त कर सकते हैं, और धीरे-धीरे संसाधन जोड़कर आप आनुपातिक रूप से बेहतर प्रणाली प्राप्त कर सकते हैं, तो यह मापनीय है। यदि आपको रैखिक सुधार से कम पाने के लिए महंगे हिस्सों में संसाधन जोड़ना है, तो यह स्केलेबल नहीं है।