2009-06-01 18 views
15

ढांचे के बारे में पढ़ते समय (रेल, डीजेंगो, वसंत, आदि पर .net रूबी), मैं ऐसा देखता रहता हूं और ऐसा करता है या अच्छी तरह से स्केल नहीं करता है।यह कहने का क्या अर्थ है कि एक ढांचा "अच्छी तरह से स्केल" करता है?

इसका क्या मतलब है जब कोई कहता है कि एक रूपरेखा "अच्छी तरह से अनुरूप" है कि और यह कहने के लिए एक रूपरेखा "अच्छी तरह से स्केल नहीं करता है" क्या मतलब है करता है?

धन्यवाद।

+9

एक पैमाने तुलना के माध्यम से मापने के लिए एक पुराने फैशन डिवाइस है। वे आम तौर पर संतुलन के माध्यम से निर्मित होते हैं ... दुर्भाग्यवश, इससे चीजों को मापना मुश्किल हो जाता है जो घूमते हैं और बहुत से कूदते हैं - इसलिए एक ढांचा जो अभी भी बैठता है उसे "स्केल वेल" माना जाता है, जबकि कोई इसे व्यवहार करता है कॉफी के तराजू के अपने दैनिक गैलन में बहुत ज्यादा कोक मिलाकर खराब हो गया। – Shog9

+0

हाहाहा, अच्छी तुलना, शोग 9। –

+6

"फ्रेमवर्क एक्स अच्छी तरह से स्केल नहीं करता है" का अर्थ है "मुझे फ्रेमवर्क एक्स की ओर एक तर्कहीन घृणा है।" दूसरी तरफ, "फ्रेमवर्क वाई स्केल्स वेल" कहने का मतलब है "मुझे फ्रेमवर्क वाई पसंद है लेकिन मुझे यह स्वीकार नहीं करना है कि मुझे यह पसंद है क्योंकि यह चमकदार बटन बनाना आसान बनाता है।" – Pesto

उत्तर

15

जब आप कुछ संसाधनों के उपयोग (स्मृति, समय, डिस्क स्थान, नेटवर्क बैंडविड्थ) समवर्ती उपयोगकर्ताओं के खिलाफ साजिश, आप एक समारोह है कि वर्णन करता है कि आवेदन अलग पैमाने कारकों पर काम करता है मिलता है।

छोटे पैमाने पर - कुछ उपयोगकर्ता - कुछ संसाधनों का उपयोग करते हैं।

बड़े पैमाने पर - बड़ी संख्या में उपयोगकर्ता - बड़ी संख्या में संसाधनों का उपयोग करते हैं।

महत्वपूर्ण सवाल यह है कि "स्केलिंग के रैखिक के करीब कितना करीब है?" यदि यह रैखिक रूप से स्केल करता है, तो 2,000 समवर्ती उपयोगकर्ताओं की सेवा करने के लिए 1,000 उपयोगकर्ताओं की सेवा के रूप में 2 गुणा और 500 उपयोगकर्ताओं की सेवा के रूप में 4 गुना अधिक खर्च होता है। यह एक उपकरण/ढांचा/भाषा/मंच/ओएस है जो अच्छी तरह से स्केल करता है।यह अनुमान लगाया जा सकता है, और भविष्यवाणी रैखिक है।

यदि यह रैखिक रूप से स्केल नहीं करता है, तो 4,000 उपयोगकर्ताओं की सेवा करने के लिए 1,000 गुना अधिक 2,000 उपयोगकर्ताओं की सेवा करते हैं, जो 500 उपयोगकर्ताओं की सेवा करने के 100 गुना खर्च करते हैं। यह अच्छी तरह से पैमाने पर नहीं था। उपयोग बढ़ने के साथ कुछ गलत हो गया; यह अनुमानित नहीं दिखता है और यह रैखिक नहीं है।

+1

और रैखिक हमेशा अच्छा नहीं होता है। आदर्श रूप से आप इसे पठार या स्तर से बाहर करना चाहते हैं क्योंकि उपयोगकर्ताओं की संख्या महत्वपूर्ण मात्रा तक पहुंच जाती है। हालांकि, यह हमेशा संभव नहीं होता है और शायद कई बार संभव नहीं है ... बस आदर्श। –

+0

मैं कहूंगा कि यह उत्तर थोड़ा सा सामान्य है। यह रैखिक स्केलिंग या स्केलिंग का वर्णन करता है। वास्तव में स्मृति, समय, डिस्क और बैंडविड्थ बनाम जो एक स्टेशन के पैरामीटर हैं। आम तौर पर वितरित वातावरण में एक ढांचा का उपयोग किया जाएगा जहां ये पैरामीटर मूल्यांकन के लिए स्पष्ट नहीं हो सकते हैं। क्या आप 1000 उपयोगकर्ताओं बनाम 10000 उपयोगकर्ताओं को स्केलिंग पर टिप्पणी कर सकते हैं? – mariotti

+0

प्रबंधन की स्केलेबिलिटी एक और महत्वपूर्ण विचार है। यदि 5 सर्वर सेटअप चलाने के लिए 1 डीबीए की आवश्यकता होती है, और 10 सर्वरों को 2 डीबीए की आवश्यकता होती है, तो हो सकता है कि आप पर्याप्त रूप से डीबीए को किराए पर लेने और प्रशिक्षित करने में सक्षम न हों। ढांचे को बनाए रखने का मानव तत्व बहुत महत्वपूर्ण है। –

7

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

This blog post scalability दर्द से कुछ ट्विटर एक साल या पहले अनुभव बताते हैं। यह आपके प्रश्न के उत्तर में कुछ और अंतर्दृष्टि प्रदान कर सकता है।

कभी कभी scalability की कमी एक भाषा या ढांचे को बदनाम, ताकि के लिए बाहर देखने के लिए प्रयोग किया जाता है। वास्तविक मेट्रिक्स दिखाने वाले अध्ययनों के लिए चिपके रहें। यह पिछले पैराग्राफ में मेरे वीबीस्क्रिप्ट उदाहरण पर भी लागू होता है।

+0

मुझे लगता है कि 200 9 में फेसबुक के 40 मिलियन उपयोगकर्ता थे, और यदि उनके पास प्लेटफ़ॉर्म नहीं था जो अच्छी तरह से स्केल किया गया तो वे अब 1000m उपयोगकर्ताओं को संभालने में सक्षम नहीं होंगे, उनके पास – Ozzy

+0

वह पागल नहीं है? 3 साल में क्या अंतर है। अच्छा पकड़ा। –

3

एक रूपरेखा या एक आवेदन अच्छी तरह से अनुरूप है, इसका मतलब है कि यह बड़ा भार संभाल कर सकते हैं। चूंकि आपकी साइट अधिक आगंतुकों और प्रतिदिन अधिक हिट के साथ अधिक लोकप्रिय हो जाती है, इसलिए एक ढांचा जो अच्छी तरह से स्केल करता है, वह बड़े लोड को संभालने के समान ही लोड करेगा। एक ढांचा जो अच्छी तरह से स्केल करता है, वही कार्य करेगा जब इसे 200,000 हिट एक घंटा प्राप्त होता है क्योंकि यह एक घंटे में हिट होने पर होता है। न केवल हिट, बल्कि कई सर्वरों पर संभवतः लोड संतुलन के पीछे, कई अलग-अलग डेटाबेस सर्वरों के साथ तैनात किया जा रहा है। एक ढांचा जो अच्छी तरह से स्केल करता है, इन बढ़ती मांगों को अच्छी तरह से संभाल सकता है।

उदाहरण के लिए, ट्विटर ने पिछले साल लगभग रात भर विस्फोट किया। यह रूबी ऑन रेल का उपयोग करके विकसित किया गया था, और रेलवे स्केल अच्छी तरह से या नहीं, इस पर चल रही बहस में इसे गर्म रूप से दिखाया गया था।

+0

तो क्या हुआ? क्या वे रेल के साथ जारी रहे? – johnny

+0

वे आंशिक रूप से रेल पर हैं और आंशिक रूप से स्कैला में स्विच कर रहे हैं। http://www.theregister.co.uk/2009/04/01/twitter_on_scala/ –

2

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

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

0

आईएमएचओ ने कहा कि एक ढांचा "अच्छी तरह से स्केल" आमतौर पर इसका मतलब है कि सुनवाई श्रृंखला में से कोई भी बहुत मात्रा को संभालने के लिए इसका उपयोग करने में सक्षम था।

समानांतर प्रोग्रामिंग स्केलेबिलिटी में आमतौर पर यह वर्णन करने के लिए प्रयोग किया जाता है कि एल्गोरिदम कैसे समानांतर होता है। एक एल्गोरिदम जिसमें 1: 1 स्पीडअप होता है वह एक दुर्लभ जानवर होता है लेकिन हार्डवेयर/सीपीयू, दो बार हार्डवेयर/सीपीयू, आदि पर प्रदर्शन में दोगुना हो जाएगा ...

मेरे अनुभव में व्यावहारिक रूप से कोई ढांचा हो सकता है पर्याप्त विशेषज्ञता के पैमाने पर बनाया गया।

आसान ढांचा का उपयोग करना अधिक संभावना है कि अपर्याप्त विशेषज्ञता वाले डेवलपर स्केलेबिलिटी समस्याओं में भाग लेंगे।

0

इसका मतलब है कि कुछ सम्मानित कंपनी इसके साथ कुछ गंभीर कर रही है और इसमें कोई समस्या नहीं है।

0

स्केलिंग का मतलब है कि अधिक हार्डवेयर का उपयोग करके अधिक मांग को पूरा करना कितना आसान है।

उदाहरण: आपके पास कुछ ऐसी भाषा में लिखी गई वेबसाइट है जो दिन में 1000 विज़िट करती है। आपको कुछ प्रमुख मैगाज़िन में दिखाया गया है और आपके उपयोगकर्ताओं की संख्या बढ़ती है। अचानक आपके पास एक दिन में 1000000 विज़िट हैं, जो कि 1000 गुना अधिक है। यदि आप संसाधनों की बढ़ती जरूरत को पूरा करने के लिए केवल 1000 और सर्वर का उपयोग कर सकते हैं, तो आपकी वेबसाइट अच्छी तरह से स्केल करती है। यदि दूसरी ओर आप 2000 सर्वर जोड़ते हैं लेकिन फिर भी उपयोगकर्ता कनेक्ट नहीं हो सकते हैं, क्योंकि आपका डेटाबेस प्रति दिन 1000 अनुरोधों को संभाल सकता है, आपकी वेबसाइट अच्छी तरह से स्केल नहीं करती है।

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

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