हर बार जब Oracle® डेटाबेस डिस्क से डेटा पढ़ता या लिखता है, तो डेटाबेस डिस्क इनपुट और आउटपुट (I/O) ऑपरेशन उत्पन्न करता है। कई सॉफ्टवेयर एप्लिकेशन का प्रदर्शन डिस्क I/O द्वारा सीमित होता है, और जो एप्लिकेशन अधिकांश सेंट्रल प्रोसेसिंग यूनिट (CPU) समय I/O गतिविधि के पूरा होने की प्रतीक्षा में बिताते हैं, वे I/O बाउंड होते हैं। I/O अंशांकन इस मुद्दे को संबोधित करने में मदद करता है।
परिचय
एक ठोस I/O सबसिस्टम स्थापित करना एप्लिकेशन के लिए बुनियादी ढांचे के निर्माण का एक अनिवार्य हिस्सा है। यदि I/O स्टैक में किसी भी घटक का थ्रूपुट सीमित है, तो यह I/O प्रवाह में सबसे कमजोर कड़ी बन जाता है। क्योंकि वास्तविक दुनिया के वर्कलोड को आसानी से पुन: प्रस्तुत नहीं किया जा सकता, I/O सबसिस्टम का सत्यापन हमेशा एक कठिन कार्य रहा है।
Oracle डेटाबेस की I/O अंशांकन सुविधा आपको स्टोरेज सबसिस्टम के प्रदर्शन का आकलन करने और यह निर्धारित करने में सक्षम बनाती है कि I/O प्रदर्शन समस्याएं डेटाबेस के कारण हैं या स्टोरेज सबसिस्टम के कारण। अन्य बाहरी I/O अंशांकन टूल के विपरीत जो अनुक्रमिक रूप से I/O ऑपरेशन जारी करते हैं, Oracle डेटाबेस की I/O अंशांकन सुविधा Oracle डेटा फाइलों का उपयोग करके स्टोरेज मीडिया तक पहुंचकर बेतरतीब ढंग से I/O ऑपरेशन जारी करती है। यह ऐसे परिणाम उत्पन्न करता है जो डेटाबेस के वास्तविक प्रदर्शन से अधिक निकटता से मेल खाते हैं।
अंशांकन I/O सुविधा DBMS_RESOURCE_MANAGER.CALIBRATE_IO() नामक एक PL/SQL फ़ंक्शन पर आधारित है। जब अंशांकन I/O को लागू किया जाता है, तो यह निम्न विशेषताओं के साथ वर्कलोड उत्पन्न करता है:
- I/O गहन, रीड-ओनली, रैंडम I/O (db_block_size)
- बड़े-ब्लॉक (1 MB) अनुक्रमिक I/O वर्कलोड
अंशांकन I/O के परिणामों की निगरानी की जानी चाहिए और अपेक्षित थ्रूपुट दर (I/O सबसिस्टम के अधिकतम समग्र थ्रूपुट) से तुलना की जानी चाहिए। I/O अंशांकन का उपयोग स्टोरेज सबसिस्टम के प्रदर्शन का मूल्यांकन करने और यह निर्धारित करने के लिए किया जा सकता है कि I/O प्रदर्शन समस्याएं डेटाबेस होस्ट या स्टोरेज सबसिस्टम के परिणामस्वरूप होती हैं।
यह ब्लॉग निम्न विषयों को कवर करता है:
- I/O अंशांकन के लिए पूर्वापेक्षाएँ
- I/O अंशांकन चलाना
- अंशांकन विचार
I/O अंशांकन के लिए पूर्वापेक्षाएँ
I/O अंशांकन चलाने से पहले, सुनिश्चित करें कि निम्न आवश्यकताएं पूरी होती हैं:
- उपयोगकर्ता को
SYSDBAविशेषाधिकार दिया जाना चाहिए। TIMED_STATISTICSकोTRUEपर सेट किया जाना चाहिए।- असिंक्रोनस I/O सक्षम होना चाहिए।
फाइल सिस्टम का उपयोग करते समय, FILESYSTEMIO_OPTIONS इनिशियलाइज़ेशन पैरामीटर को SETALL पर सेट करके असिंक्रोनस I/O सक्षम किया जा सकता है।
सिंक्रोनस I/O के साथ, जब एक I/O अनुरोध ऑपरेटिंग सिस्टम को सबमिट किया जाता है, तो राइट प्रोसेस तब तक अवरुद्ध रहता है जब तक ऑपरेशन पूरा नहीं हो जाता। असिंक्रोनस I/O के साथ, कॉलिंग प्रोसेस अन्य अनुरोधों को अवरुद्ध किए बिना अपना काम जारी रखता है जो अभी भी निष्पादित हो रहे हैं।
निम्न SQL क्वेरी चलाकर सुनिश्चित करें कि डेटा फाइलों के लिए असिंक्रोनस I/O सक्षम है:
COL NAME FORMAT A50
SELECT NAME,ASYNCH_IO FROM V$DATAFILE F,V$IOSTAT_FILE I WHERE F.FILE#=I.FILE_NO AND FILETYPE_NAME='Data File';
निम्न छवि क्वेरी और परिणाम दिखाती है:
लिस्ट सेल कमांड परिणाम
नोट: एक समय में डेटाबेस इंस्टेंस पर केवल एक अंशांकन किया जा सकता है।
I/O अंशांकन चलाना
Oracle डेटाबेस की I/O अंशांकन सुविधा DBMS_RESOURCE_MANAGER.CALIBRATE_IO प्रक्रिया का उपयोग करके एक्सेस की जाती है। यह प्रक्रिया डेटाबेस फाइलों को एक I/O गहन रीड-ओनली वर्कलोड (1 MB के रैंडम I/O ऑपरेशन से बना) जारी करती है ताकि अधिकतम IOPS (प्रति सेकंड I/O अनुरोध) और MBPS (प्रति सेकंड I/O के मेगाबाइट) निर्धारित किया जा सके जो स्टोरेज सबसिस्टम द्वारा बनाए रखा जा सकता है।
DBMS_RESOURCE_MANAGER.CALIBRATE_IO प्रक्रिया के साथ I/O अंशांकन में निम्न चरण शामिल हैं:
प्रक्रिया सभी डेटाबेस इंस्टेंस से सभी डेटा फाइलों को रैंडम डेटाबेस-ब्लॉक-आकार के रीड (डिफ़ॉल्ट रूप से, 8 KB) जारी करती है। यह चरण आउटपुट पैरामीटर (
max_iops) में अधिकतम I/O ऑपरेशन प्रति सेकंड (IOPS) प्रदान करता है जिसे डेटाबेस बनाए रख सकता है।max_iopsका मूल्य ऑनलाइन लेनदेन प्रसंस्करण (OLTP) डेटाबेस के लिए एक महत्वपूर्ण मीट्रिक है। आउटपुट पैरामीटरactual_latencyइस वर्कलोड के लिए औसत विलंबता प्रदान करता है। आप इनपुट पैरामीटरmax_latencyके साथ आवश्यक विशिष्ट लक्ष्य विलंबता निर्दिष्ट कर सकते हैं, जो डेटाबेस-ब्लॉक-आकार के I/O अनुरोधों के लिए मिलीसेकंड में अधिकतम सहनशील विलंबता निर्दिष्ट करता है।प्रक्रिया सभी डेटाबेस इंस्टेंस से सभी डेटा फाइलों को रैंडम 1 MB रीड जारी करती है। यह चरण आउटपुट पैरामीटर
max_mbpsदेता है, जो प्रति सेकंड I/O के अधिकतम मेगाबाइट (MBPS) को निर्दिष्ट करता है जिसे डेटाबेस बनाए रख सकता है। यह डेटा वेयरहाउस के लिए एक महत्वपूर्ण मीट्रिक है।
यदि उपयोगकर्ता num_physical_disks इनपुट पैरामीटर प्रदान करता है, जो डेटाबेस स्टोरेज सिस्टम में भौतिक डिस्क की अनुमानित संख्या निर्दिष्ट करता है, तो अंशांकन अधिक कुशलता से चलता है।
I/O वर्कलोड चलाने के ओवरहेड के कारण, I/O अंशांकन केवल तब किया जाना चाहिए जब डेटाबेस निष्क्रिय हो, या ऑफ-पीक घंटों के दौरान, ताकि सामान्य डेटाबेस वर्कलोड पर I/O अंशांकन वर्कलोड के प्रभाव को कम किया जा सके।
निम्न छवि DBMS_RESOURCE_MANAGER.CALIBRATE_IO प्रक्रिया से आउटपुट दिखाती है:
लिस्ट सेल कमांड परिणाम
अंशांकन विचार
I/O अंशांकन चलाने से पहले, निम्नलिखित विचारों के बारे में सोचें:
- उन डेटाबेस पर एक समय में केवल एक अंशांकन चलाएं जो समान स्टोरेज सबसिस्टम का उपयोग करते हैं। यदि आप एक ही स्टोरेज सबसिस्टम का उपयोग करने वाले अलग-अलग डेटाबेस पर अंशांकन को एक साथ चलाते हैं, तो अंशांकन विफल हो जाता है।
- इंस्टेंस पर I/O को कम करने के लिए डेटाबेस को शांत करें।
- Oracle Real Application Clusters (RAC) कॉन्फ़िगरेशन के लिए, सुनिश्चित करें कि सभी इंस्टेंस नोड्स में स्टोरेज सबसिस्टम को अंशांकित करने के लिए खुले हैं।
- Oracle RAC डेटाबेस के लिए, वर्कलोड सभी इंस्टेंस से एक साथ उत्पन्न होता है।
num_physical_disksइनपुट पैरामीटर वैकल्पिक है। इस पैरामीटर को डेटाबेस के स्टोरेज सिस्टम में भौतिक डिस्क की अनुमानित संख्या पर सेट करके, अंशांकन दोनों तेज और अधिक सटीक होता है।
I/O अंशांकन प्रक्रिया के दौरान किसी भी समय, आप V$IO_CALIBRATION_STATUS व्यू में अंशांकन स्थिति को क्वेरी कर सकते हैं। I/O अंशांकन सफलतापूर्वक पूरा होने के बाद, DBA_RSRC_IO_CALIBRATE टेबल में परिणाम देखें, निम्न उदाहरण के समान:
| कॉलम | मान |
|---|---|
| START_TIME | 31-AUG-17 04.40.09.920679 AM |
| END_TIME | 31-AUG-17 04.47.41.210939 AM |
| MAX_IOPS | 39 |
| MAX_MBPS | 60 |
| MAX_PMBPS | 69 |
| LATENCY | 24 |
| NUM_PHYSICAL_DISKS | 1 |
निष्कर्ष
I/O संसाधन प्रबंधन (IORM) और अंशांकन I/O सुविधाएं आपके वर्तमान I/O आर्किटेक्चर की सीमाओं को समझने के लिए मूल्यवान हैं। अंशांकन पूरा होने के बाद, जानकारी का उपयोग उचित I/O डिजाइन और आकार के लिए किया जा सकता है। किसी भी टिप्पणी या प्रश्न के लिए फीडबैक टैब का उपयोग करें।