2009-05-29 6 views
5

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

अस्पष्टता को समाप्त करने के प्रयोजनों के लिए, मैं पहले से कहूंगा कि मैं स्केलेबिलिटी परीक्षण के wikipedia definition का उपयोग कर रहा हूं।

मुझे विस्तृत विवरणों के साथ विशिष्ट पैटर्न नामों का प्रस्ताव देने में उत्तर में सबसे अधिक दिलचस्पी है।

उत्तर

4

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

एक अनुरोधकर्ता एक मशीन, नेटवर्क कार्ड, विशिष्ट सॉफ़्टवेयर या सॉफ़्टवेयर में थ्रेड हो सकता है जो अनुरोध उत्पन्न करता है। यह सब एक अनुरोध उत्पन्न करता है जिसे किसी भी तरीके से संसाधित किया जा सकता है।

एक प्रसंस्करण एजेंट सॉफ्टवेयर, नेटवर्क कार्ड, मशीन है जो वास्तव में अनुरोध को संसाधित करता है और परिणाम देता है।

हालांकि क्या आप परिणामों के साथ परीक्षण कर रहे हो के प्रकार निर्धारित करता है और वे हैं:

लोड/निष्पादन परीक्षण: इस प्रयोग में सबसे आम है। परिणामों को संसाधित किया जाता है यह देखने के लिए कि विभिन्न स्तरों पर या विभिन्न विन्यास में कितना संसाधित किया जाता है। कर्ट जो ऊपर की तलाश में है, वह फिर एक उदाहरण है।

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

डेटा सुरक्षा: इस परीक्षण के साथ परिणाम एकत्र किए जाते हैं और डेटा की तुलना की जाती है। जो आप यहां खोज रहे हैं वह मुद्दों को लॉक कर रहा है (जैसे कि एसक्यूएल डेडलॉक) जो लिखने से रोकता है या डेटा परिवर्तनों को स्वीकार्य समय या उससे कम में उपयोग किए जाने वाले विभिन्न नोड्स या रिपॉजिटरीज़ में दोहराया जाता है।

सीमा परीक्षण: यह लोड परीक्षण के समान है, लक्ष्य को प्रोसेसिंग प्रसंस्करण नहीं कर रहा है, लेकिन प्रभावों का प्रदर्शन कितना है। उदाहरण के लिए यदि आपके पास डेटाबेस है कि I/O प्रदर्शन स्वीकार्य स्तर से नीचे गिरने से पहले आपके पास कितनी पंक्तियां/तालिकाओं/कॉलम हो सकते हैं।

मैं इस विषय पर एक उत्कृष्ट पुस्तक के रूप में The Art of Capacity Planning की भी सिफारिश करता हूं।

+0

रॉबर्ट, मैं मानता हूं कि कर्ट का जवाब टाइप करता है कि स्केलेबिलिटी परीक्षण आमतौर पर कैसे किया जाता है। जो कुछ मैं ढूंढ रहा था उसके आधार पर आपका उत्तर थोड़ा और है। –

2

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

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