मुझे हमेशा आरओआर के खिलाफ यह तर्क मिलता है कि यह स्केल नहीं करता है लेकिन मुझे इसका कोई उचित उत्तर कभी नहीं मिलता है? तो यहां एक नौसिखिया पूछ रहा है, यह क्या है "स्केलिंग" और आप इसे कैसे मापते हैं?स्केलिंग क्या है?
उत्तर
यह "स्केलिंग" क्या है ...
एक सामान्य शब्द के रूप में, scalability मांग के विभिन्न प्रकार के लिए एक परियोजना की जवाबदेही का मतलब है। एक परियोजना जो अच्छी तरह से स्केल करती है वह वह है जिसे इसकी अधिक सेवाओं के लिए अनुरोधों को जारी रखने में कोई परेशानी नहीं होती है - या, कम से कम, अनुरोधों को दूर करना शुरू नहीं करना चाहिए क्योंकि यह उन्हें संभाल नहीं सकता है।
अक्सर यह मामला है कि परिमाण के क्रम से किसी समस्या का आकार बढ़ाना या दो इसे हल करने के लिए उपयोग की जाने वाली रणनीतियों में कमजोरियों को उजागर करता है। जब ऐसी कमजोरियों का खुलासा किया जाता है, तो यह कहा जा सकता है कि समस्या का समाधान "अच्छी तरह से स्केल नहीं करता" है।
उदाहरण के लिए, bogo sort लागू करने के लिए आसान है, लेकिन जैसे ही आप चीजों की एक मुट्ठी भर से ज्यादा छँटाई कर रहे हैं, यह एक बहुत लंबे समय जवाब आप चाहते हैं पाने के लिए ले जा रहा शुरू होता है। यह कहना उचित होगा कि बोगो सॉर्ट अच्छी तरह से स्केल नहीं करता है।
... और आप इसे कैसे मापते हैं?
यह उत्तर देने का एक कठिन सवाल है। आम तौर पर, स्केलेबिलिटी से जुड़े इकाइयां नहीं होती हैं; बयान जैसे कि "वह प्रणाली एन के रूप में स्केलेबल के रूप में एन गुना है" सर्वोत्तम रूप से एक सेब-टू-संतरे की तुलना होगी।
स्केलेबिलिटी को अक्सर यह देखते हुए मापा जाता है कि परीक्षण परिस्थितियों में विभिन्न प्रकार की मांग के लिए सिस्टम कितनी अच्छी तरह से खड़ा होता है। लोग अलग-अलग प्रकार की मांग की विस्तृत श्रृंखला पर, यदि रख सकते हैं, तो सिस्टम सिस्टम स्केल अच्छी तरह से कह सकता है। यह विशेष रूप से सच है यदि यह मांग करने के लिए खड़ा है कि वर्तमान में इसका अनुभव नहीं होता है, लेकिन उम्मीद की जा सकती है कि लोकप्रियता में अचानक वृद्धि हुई है या नहीं। (Slashdot/Digg/Reddit effects के बारे में सोचें।)
स्केलेबिलिटी सिस्टम की बदलती संख्या को समायोजित करने के लिए सिस्टम की क्षमता को संदर्भित करता है। यह उपयोगकर्ताओं की बढ़ती या घटती संख्या हो सकती है क्योंकि अब हम क्लाउड कंप्यूटिंग और किराए पर कंप्यूटिंग समय के आसपास हमारे सिस्टम की योजना बनाने का प्रयास करते हैं।
100,000 प्रतिनिधि को समायोजित करने के लिए 1000 प्रतिनिधि स्केल के लिए डिज़ाइन ऑर्डर एंट्री सिस्टम बनाने में क्या शामिल है, इस बारे में सोचें। क्या हार्डवेयर जोड़ने की जरूरत है? डेटाबेस के बारे में क्या? संक्षेप में, यह मापनीयता है।
यह जरूरी नहीं है कि कई उपयोगकर्ताओं को देखें। उदाहरण के लिए, एक एकल उपयोगकर्ता प्रणाली की कल्पना करें जो सड़क पर कारों को ट्रैक करती है। यह 10,000 आबादी के शहर में परीक्षण किया जा सकता है, लेकिन क्या यह लाखों लोगों की आबादी वाला शहर होगा? –
सच है लेकिन मैं एक उदाहरण दे रहा था कि मुझे लगता है कि SO पर कोई भी – DenaliHardtail
स्केलिंग या scalability कैसे एक परियोजना बढ़ने या मांग पर प्रतिक्रिया के लिए विस्तार कर सकते हैं को संदर्भित करता है । इस बार आदि एक डेटाबेस में जुड़ा उपयोगकर्ताओं की संख्या,, डेटा की मात्रा से प्रभावित है
एक आवेदन की अनुमापकता यह कैसे आवेदन परिवर्तन पर भार के रूप में प्रदर्शन करने में सक्षम है को संदर्भित करता है:
अनुमापकता का उपयोग करता है की एक विस्तृत विविधता विकिपीडिया ने संकेत के रूप में किया गया है:
अनुमापकता जैसे विभिन्न आयाम, में मापा जा सकता :
एक ऐसा क्षेत्र है जहाँ मैं काम हम उच्च throughput और समानांतर कंप्यूटिंग के प्रदर्शन को लेकर चिंतित हैं के रूप में प्रोसेसर की संख्या में वृद्धि हुई है में
- लोड क्षमता: आसानी से करने के लिए एक वितरित प्रणाली के लिए क्षमता का विस्तार करने और भारी या हल्का भार को समायोजित करने के लिए अपने संसाधन पूल अनुबंध। वैकल्पिक रूप से, के साथ आसानी जो बदलते लोड को समायोजित करने के लिए संशोधित, जोड़ा या निकाला जा सकता है।
- ज्योग्राफिक scalability: एक और अधिक वितरित भौगोलिक पैटर्न के लिए एक स्थानीय क्षेत्र में एकाग्रता से विस्तार की परवाह किए बिना प्रदर्शन, उपयोगिता, या उपयोगिता से बनाए रखने की क्षमता।
- प्रशासनिक मापनीयता: संगठनों की बढ़ती संख्या की क्षमता आसानी से एक वितरित सिस्टम साझा करने के लिए।
- कार्यात्मक स्केलेबिलिटी: द्वारा सिस्टम को बढ़ाने की क्षमता न्यूनतम प्रयास पर नई कार्यक्षमता जोड़ना।
।
अधिक आम तौर पर यह अक्सर पाया जाता है कि द्वारा (माना) एक या परिमाण के दो आदेश चुनौतियों जो आसानी से छोटे सिस्टम से उम्मीद के मुताबिक नहीं हैं की एक पूरी तरह से नए सेट अप फेंकता समस्या बढ़ती जा रही
से संबंधित हो सकता है तो क्या हम कह सकते हैं कि एक सेकंड में सुरंग के माध्यम से कितने लोग मिलते हैं? – itsaboutcode
यह कहने के बारे में और अधिक है कि यदि 10 गुना अधिक लोग हैं तो उत्तर नौ और सुरंगों का निर्माण नहीं कर सकता है, बल्कि पहाड़ों से अलग तरीके खोजने के लिए। –
यह के लिए की क्षमता है मूल डिजाइन या सिस्टम को प्रभावित किए बिना, एक वर्कलोड, अधिक कार्यक्षमता, डेटाबेस बदलना, स्वीकार करने के लिए एक प्रणाली।
यह समय के साथ बढ़ने के साथ एक प्रणाली की क्षमता को व्यक्त करने की क्षमता व्यक्त करने का एक शब्द है।
आदर्श रूप से आप जो चाहते हैं, रैखिक स्केलेबिलिटी तक पहुंचने के लिए एक प्रणाली है। इसका मतलब है कि संसाधनों की नई इकाइयों को जोड़कर, प्रणाली समान रूप से प्रदर्शन करने की क्षमता में बढ़ती है।
उदाहरण के लिए: इसका मतलब है कि कोई है कि जब तीन webapp सर्वर एक हजार समवर्ती उपयोगकर्ताओं संभाल कर सकते हैं, कि तीन अधिक सर्वर को जोड़ कर, यह डबल राशि, दो हजार समवर्ती उपयोगकर्ताओं इस मामले और में संभाल कर सकते हैं, कम।
यदि किसी सिस्टम में रैखिक स्केलेबिलिटी की संपत्ति नहीं है, तो एक बिंदु है जहां अधिक संसाधन जोड़ना, उदा। हार्डवेयर, उदाहरण के लिए, कोई अतिरिक्त लाभ नहीं लाएगा, प्रदर्शन शून्य पर: जैसा कि अधिक से अधिक सर्वर कार्य में डाल दिए जाते हैं। उपर्युक्त उदाहरण में, प्रत्येक नए सर्वर का अतिरिक्त लाभ शून्य तक पहुंचने तक छोटा और छोटा हो जाता है।
इस प्रकार, स्केलेबिलिटी वह कारक है जो आपको बताता है कि आपको दिए गए इनपुट से आउटपुट के रूप में क्या मिलता है। यह मूल्य सीमा 0 और सकारात्मक अनंतता के बीच है, सिद्धांत में। अभ्यास में, 1 के बराबर कुछ भी सबसे वांछनीय है ...
मुझे लगता है कि स्केलिंग स्केलिंग में प्रोग्रामिंग करते समय आप कर रहे हैं। :-) –
क्या आप कुछ संदर्भ प्रदान कर सकते हैं? क्या आप अधिक उपयोगकर्ताओं/डेटा को संभालने के लिए वेबसाइटों और/या अनुप्रयोगों के स्केलिंग के बारे में पूछ रहे हैं? – ChrisF
@ChrisF अच्छी तरह से विशेष रूप से मैं वेबसाइटों के बारे में बात कर रहा हूं और सामान्य रूप से इस शब्द का वास्तव में क्या मतलब है। – itsaboutcode