प्रदर्शन इंजीनियरिंग

प्रदर्शन अभियान्त्रिकी प्रदर्शन के लिए गैर-कार्यात्मक आवश्यकताओं (जैसे प्रवाह क्षमता, अव्यक्ता (अभियान्त्रिकी), या  स्मरणशक्ति उपयोग) को पूरा करने के लिए

पद्धति विकास जीवन चक्र के दौरान लागू तकनीकों को समिलित करता है। इसे वैकल्पिक रूप से पद्धति अभियांत्रिकी के भीतर पद्धति प्रदर्शन अभियांत्रिकी, औ सॉफ्टवेयर अभियान्त्ररिकी के भीतर सॉफ्टवेयर प्रदर्शन अभियान्त्रिकी या एप्लिकेशन प्रदर्शन अभियान्त्रिकी के रूप में संदर्भित किया जा सकता है।

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

जैसे, इस शब्द का प्रयोग समान्यतः गैर-कार्यात्मक आवश्यकताओं का प्रभावी ढंग से परीक्षण करने के लिए आवश्यक प्रक्रियाओं, लोगों और प्रौद्योगिकियों का वर्णन करने के लिए किया जाता है, सेवा स्तरों का पालन सुनिश्चित करता है और परिनियोजन से पहले एप्लिकेशन प्रदर्शन को अनुकूलित करता है।

प्रदर्शन अभियान्त्रिकी शब्द में केवल सॉफ्टवेयर और सहायक अवसंरचना की तुलना में अधिक समिलित है, और इस तरह प्रदर्शन अभियान्त्रिकी शब्द स्थूल दृश्य से उत्कृष्ट है। उत्पादन पद्धतियों की निगरानी के द्वारा गैर-कार्यात्मक आवश्यकताओं का पालन भी परिनियोजन के बाद मान्य है। यह IT सेवा प्रबंधन का हिस्सा है ( ITIL भी देखें)।

प्रदर्शन अभियान्त्रिकी कई बड़े निगमों में एक अलग अनुशासन बन गया है, जिसमें अलग-अलग लेकिन पद्धति अभियान्त्रिकी के समानांतर काम किया जाता है। यह व्यापक है, जिसमें कई संगठनात्मक इकाइयों के लोग समिलित हैं; लेकिन मुख्य रूप से सूचना प्रौद्योगिकी संगठन के भीतर।

प्रदर्शन अभियान्त्रिकी उद्देश्य

 * यह सुनिश्चित करके कि पद्धति अपेक्षित समय सीमा के भीतर लेन-देन को क्रिया संसाधित कर सकता है, व्यापार राजस्व बढ़ा सकता हैं
 * निष्पादन उद्देश्य विफलता के कारण पद्धति विकास प्रयास को समाप्त करने और लिखने की आवश्यकता वाली पद्धति विफलता को समाप्त करना
 * निष्पादन संबंधी समस्याओं के कारण देर से पद्धति परिनियोजन को समाप्त करना
 * निष्पादन संबंधी समस्याओं के कारण परिहार्य पद्धति पुनर्कार्य को समाप्त करना
 * परिहार्य पद्धति समस्वरण प्रयासों को समाप्त करना
 * अतिरिक्त और अनावश्यक हार्डवेयर अधिग्रहण लागत से बचना
 * उत्पादन में प्रदर्शन समस्याओं के कारण बढ़ी हुई सॉफ़्टवेयर रखरखाव लागत को कम करना
 * तदर्थ प्रदर्शन सुधारों से प्रभावित सॉफ़्टवेयर के कारण बढ़ी हुई सॉफ़्टवेयर रखरखाव लागत को कम करना
 * निष्पादन समस्याओं के कारण पद्धति की समस्याओं से निपटने के लिए अतिरिक्त परिचालन ऊपरी खर्च को कम करना
 * प्रतिमान पर अनुरूपण द्वारा भविष्य की बाधाओं की पहचान करना
 * सर्वर क्षमता बढ़ाना

प्रदर्शन अभियान्त्रिकी दृष्टिकोण
क्योंकि यह अनुशासन कई पद्धतियों के भीतर लागू होता है, निम्नलिखित गतिविधियां अलग-अलग निर्दिष्ट चरणों में होंगी। हालाँकि, यदि तर्कसंगत एकीकृत प्रक्रिया (RUP) के चरणों को एक रूपरेखा के रूप में उपयोग किया जाता है, तो गतिविधियाँ निम्नानुसार होंगी:

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

विस्तार
इस निर्णायक चरण के दौरान, महत्वपूर्ण व्यावसायिक प्रक्रियाओं को महत्वपूर्ण उपयोग मामलों में विघटित कर दिया जाता है। जांच मामलों को आगे, आवश्यकतानुसार, एकल पृष्ठ (स्क्रीन) संक्रमणों में विघटित किया जाएगा। ये ऐसे उपयोग मामले हैं जो स्क्रिप्ट संचालित सॉफ़्टवेयर प्रदर्शन परीक्षण के अधीन होंगे।

प्रदर्शन अभियान्त्रिकी से संबंधित आवश्यकताओं के प्रकार गैर-कार्यात्मक आवश्यकताएं या एनएफआर हैं। जबकि एक कार्यात्मक आवश्यकता से संबंधित है कि कौन से व्यावसायिक संचालन किए जाने हैं, एक प्रदर्शन संबंधी गैर-कार्यात्मक आवश्यकता इस बात से संबंधित होगी कि व्यवसाय संचालन कितनी तेजी से परिभाषित परिस्थितियों में प्रदर्शन करता है।

निर्माण
इस चरण की शुरुआत में कई प्रदर्शन उपकरण संबंधी गतिविधियों की आवश्यकता होती है। इसमे समिलित है:
 * चयनित उपकरणों के लिए विषय वस्तु विशेषज्ञों के रूप में प्रमुख विकास दल के सदस्यों की पहचान करें।
 * विकास/घटक इकाई परीक्षण वातावरण के लिए एक प्रोफाइलर (कंप्यूटर विज्ञान)  उपकरण निर्दिष्ट करें।
 * विकास/घटक इकाई परीक्षण वातावरण के लिए एक स्वचालित इकाई (घटक) प्रदर्शन परीक्षण उपकरण निर्दिष्ट करें; इसका उपयोग तब किया जाता है जब विकास के तहत घटकों को चलाने के लिए अभी तक कोई जीयूआई मौजूद नहीं है।
 * विकास/घटक इकाई परीक्षण वातावरण के लिए सर्वर-साइड इकाई (घटक) चलाने के लिए एक स्वचालित उपकरण निर्दिष्ट करें।
 * विकास/घटक इकाई परीक्षण वातावरण के लिए एक स्वचालित बहु-उपयोगकर्ता सक्षम स्क्रिप्ट-चालित एंड-टू-एंड टूल निर्दिष्ट करें; इसका उपयोग स्क्रीन-संचालित उपयोग मामलों को निष्पादित करने के लिए किया जाता है।
 * विकास/घटक इकाई परीक्षण परिवेश के लिए डेटाबेस परीक्षण डेटा लोड टूल की पहचान करें; यह सुनिश्चित करने के लिए आवश्यक है कि डेटाबेस ऑप्टिमाइज़र सही निष्पादन पथ चुनता है और आवश्यकतानुसार डेटाबेस को पुन: प्रारंभ और पुनः लोड करने में सक्षम बनाता है।
 * विकास दल के लिए प्रदर्शन उपकरण तैनात करें।
 * चयनित उपकरणों पर विकास टीम के सदस्यों को प्रस्तुतियाँ और प्रशिक्षण दिया जाना चाहिए।

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

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

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

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

सेवा प्रबंधन
परिचालन डोमेन (उत्पादन के बाद की तैनाती) में प्रदर्शन अभियान्त्रिकी मुख्य रूप से तीन क्षेत्रों में केंद्रित है: आईटीआईएल#सेवा स्तर प्रबंधन, आईटीआईएल#क्षमता प्रबंधन, और आईटीआईएल#समस्या प्रबंधन।

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

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

समस्या प्रबंधन
समस्या प्रबंधन डोमेन के भीतर, प्रदर्शन अभियान्त्रिकी अभ्यास प्रदर्शन संबंधी समस्याओं के मूल कारण को हल करने पर केंद्रित होते हैं। इनमें समान्यतः पद्धति ट्यूनिंग, ऑपरेटिंग पद्धति या डिवाइस पैरामीटर बदलना, या यहां तक ​​कि खराब डिजाइन या खराब कोडिंग प्रथाओं के कारण खराब प्रदर्शन को हल करने के लिए एप्लिकेशन सॉफ़्टवेयर को रीफैक्टरिंग करना समिलित है।

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

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

यह भी देखें

 * जावा प्रदर्शन
 * मापनीयता
 * सॉफ्टवेयर की गुणवत्ता
 * सॉफ्टवेयर परिक्षण
 * वेब प्रदर्शन

इस पेज में लापता आंतरिक लिंक की सूची

 * विलंबता (अभियान्त्रिकी)
 * पद्धति विकास जीवन चक्र
 * सूचान प्रौद्योगिकी
 * सॉफ्टवेयर की रखरखाव
 * व्यापार प्रक्रिया
 * उदाहरण
 * सॉफ्टवेयर प्रदर्शन परीक्षण
 * परीक्षण मामला
 * प्रदर्शन सुधारना
 * भार परीक्षण
 * क्षमता की योजना बनाना
 * सेवा स्तर समझौता
 * अनुमापकता

आगे की पढाई

 * Database Performance Tuning Guide
 * Practical Performance Analyst - Performance Engineering Community & Body Of Knowledge
 * Performance Engineering Methodology
 * A Performance Engineering Strategy
 * A Performance Process Maturity Model
 * The Every Computer Performance Book
 * Exploring UML for Performance Engineering
 * Introduction to Modeling Based Performance Engineering
 * Leveraging ITIL to Improve Application Performance
 * Patterns & Practices Performance Engineering
 * Performance and Scalability of Distributed Software Architectures
 * Performance Engineering Best Practices (High Level)
 * Software Engineering and Performance: A Road-map
 * The Vicious Cycle of Computer Systems Performance and IT Operational Costs
 * Microsoft Windows Server Performance Team
 * Gathering Performance Requirements
 * Performance Testing Web Services: Strategies and Best Practices
 * Performance Evaluation of an Air Traffic Control System using the Application Response Measurement (ARM) Standard
 * Integration of Performance Management in ITIL