सॉफ्टवेयर स्केलेबिलिटी कैसे मापी जाती है?


21

मुझे विशिष्ट एप्लिकेशन स्केलेबिलिटी के बारे में कुछ छोटी तकनीकी प्रस्तुति देने के लिए कहा गया था। एप्लिकेशन को जावा, स्प्रिंग एमवीसी, हाइबरनेट का उपयोग करके विकसित किया गया है। मेरे पास एप्लिकेशन स्रोत कोड तक पहुंच है।

मैं सॉफ्टवेयर स्केलेबिलिटी (स्रोतों का उपयोग करके) को कैसे माप सकता हूं और सॉफ्टवेयर स्केलेबिलिटी को मापते समय मुझे किन मेट्रिक्स की आवश्यकता है?

जवाबों:


8

मैं इस विषय पर विकिपीडिया लेख पढ़ने के साथ शुरू करूंगा ।

संक्षेप में, मापनीयता यह है कि सिस्टम प्रदर्शन अधिक संसाधनों को जोड़ने के साथ बढ़ता है या, वैकल्पिक रूप से, बढ़ते लोड के साथ संसाधन का उपयोग कैसे बढ़ता है । उदाहरण के लिए, प्रति सेकंड 0.3 सेकंड से आगे बढ़ने तक कितने समवर्ती उपयोगकर्ता आपकी साइट को संभाल सकते हैं? आपके द्वारा उपलब्ध RAM / डिस्क / CPU / etc को दोगुना करने के बाद भी यही प्रश्न है। आप शायद यह तय करने के लिए कि कौन से पैरामीटर जाँच करने योग्य हैं, एप्लिकेशन इंटर्नल के अपने ज्ञान का उपयोग कर सकते हैं।

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

अधिक जटिल परिदृश्य हैं जहां आपका एप्लिकेशन एप्लिकेशन के कई भाग के लिए कई सर्वरों का उपयोग करता है और आप उनकी राशि और अनुपात को भिन्न कर सकते हैं, लेकिन मुझे लगता है कि यह आपका मामला है। अधिक से अधिक, आप शायद थ्रेड्स / प्रक्रियाओं की संख्या में भिन्नता चाहते हैं, यदि यह मायने रखता है।

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

यदि आप उदाहरणों की तलाश कर रहे हैं, तो अकादमिक लेखों में उनमें से बहुत कुछ है। प्रदर्शन मूल्यांकन + अपनी पसंदीदा शर्तों के लिए Google विद्वान खोजें ।


1

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

व्यावहारिक रूप से, स्केलेबिलिटी विभिन्न आयामों में बढ़ रहे वर्कलोड का समर्थन करने में सक्षम होने के बारे में है।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.