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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

निगरानी
यह सुनिश्चित करने के लिए कि पद्धति NFR निर्दिष्ट प्रदर्शन मिति को पूरा करता है, यह मान्य करने के लिए उचित प्रतिक्रिया है, किसी भी प्रमुख पद्धति को निगरानी उपपद्धति की आवश्यकता होती है। निगरानी उपपद्धति की योजना, प्रारुपण, स्थापना, समनुरूपन और नियंत्रण उचित रूप से परिभाषित निगरानी प्रक्रिया द्वारा निर्दिष्ट किए जाते हैं।

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

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

यह भी देखें

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

अग्रिम पठन

 * 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