Database
 sql >> डेटाबेस >  >> RDS >> Database

अपने संग्रहण सबसिस्टम का परीक्षण करने के लिए Microsoft DiskSpd का उपयोग करना

इससे पहले, मैंने अपने लेख में क्रिस्टलडिस्कमार्क 4.0 के परिचय सहित SQL सर्वर के लिए I/O सबसिस्टम प्रदर्शन का विश्लेषण करते हुए स्टोरेज सबसिस्टम मेट्रिक्स और परीक्षण की मूल बातें शामिल की थीं। क्रिस्टलडिस्कमार्क को हाल ही में इसके परीक्षण के लिए Microsoft DiskSpd का उपयोग करने के लिए फिर से लिखा गया था, जो इसे आपके प्रारंभिक स्टोरेज सबसिस्टम परीक्षण प्रयासों के लिए और भी अधिक मूल्यवान उपकरण बनाता है। DiskSpd डिस्क अनुरोध पैटर्न की एक विस्तृत विविधता उत्पन्न करने के लिए आवश्यक कार्यक्षमता प्रदान करता है, जो SQLIO जैसे पुराने बेंचमार्क टूल की तुलना में बहुत अधिक लचीलेपन के साथ I/O प्रदर्शन समस्याओं के निदान और विश्लेषण में बहुत सहायक हो सकता है। यह सिंथेटिक स्टोरेज सबसिस्टम परीक्षण के लिए बेहद उपयोगी है जब आप क्रिस्टलडिस्कमार्क में उपलब्ध नियंत्रण से अधिक स्तर का नियंत्रण चाहते हैं।

अब, हम क्रिस्टलडिस्कमार्क 4.0 का उपयोग किए बिना अपने स्टोरेज सबसिस्टम का परीक्षण करने के लिए वास्तव में माइक्रोसॉफ्ट डिस्कएसपीडी का उपयोग करने के तरीके में थोड़ा गहरा गोता लगाने जा रहे हैं। ऐसा करने के लिए, आपको DiskSpd को डाउनलोड और अनज़िप करना होगा। चीजों को आसान बनाने के लिए, मैं हमेशा उपयुक्त निष्पादन योग्य फ़ोल्डर (amd64fre, armfre या x86fre) से वांछित diskspd.exe निष्पादन योग्य फ़ाइल को C:\DiskSpd जैसे छोटे, सरल पथ पर कॉपी करता हूं। . ज्यादातर मामलों में आप amd64fre फ़ोल्डर से DiskSpd का 64-बिट संस्करण चाहते हैं।

एक बार जब आपके पास diskspd.exe निष्पादन योग्य फ़ाइल उपलब्ध हो जाती है, तो आपको प्रशासनिक अधिकारों के साथ एक कमांड प्रॉम्प्ट खोलने की आवश्यकता होगी ("व्यवस्थापक के रूप में चलाएँ" चुनकर), और फिर उस निर्देशिका पर नेविगेट करें जहाँ आपने diskspd.exe फ़ाइल की प्रतिलिपि बनाई थी।

यहां कुछ कमांड लाइन पैरामीटर दिए गए हैं जिनसे आप शुरुआत करना चाहेंगे:

पैरामीटर विवरण
-b I/O का ब्लॉक आकार, जिसे (K/M/G) के रूप में निर्दिष्ट किया गया है। उदाहरण के लिए –b8K का अर्थ है 8KB ब्लॉक आकार, जो SQL सर्वर के लिए प्रासंगिक है
-d टेस्ट की अवधि सेकंड में। 30-60 सेकंड के परीक्षण आमतौर पर वैध परिणाम प्राप्त करने के लिए काफी लंबे होते हैं
-o प्रति लक्ष्य, प्रति कार्यकर्ता थ्रेड बकाया I/Os (मतलब कतार गहराई)
-t प्रति परीक्षण फ़ाइल लक्ष्य कार्यकर्ता थ्रेड
-h ऑपरेटिंग सिस्टम स्तर पर सॉफ़्टवेयर कैशिंग अक्षम करें और हार्डवेयर लेखन कैशिंग, जो SQL सर्वर के परीक्षण के लिए एक अच्छा विचार है
-r यादृच्छिक या अनुक्रमिक ध्वज। यदि –r का उपयोग किया जाता है तो यादृच्छिक परीक्षण किए जाते हैं, अन्यथा क्रमिक परीक्षण किए जाते हैं
-w प्रतिशत लिखें। उदाहरण के लिए, –w25 का अर्थ है 25% लिखता है, 75% पढ़ता है
-Z वर्कलोड टेस्ट राइट सोर्स बफर साइज, (K/M/G) के रूप में निर्दिष्ट। लिखने के लिए यादृच्छिक डेटा की आपूर्ति के लिए प्रयुक्त होता है, जो SQL सर्वर परीक्षण के लिए एक अच्छा विचार है
-L परीक्षण के दौरान विलंबता जानकारी कैप्चर करें, जो SQL सर्वर के परीक्षण के लिए एक बहुत अच्छा विचार है
-c निर्दिष्ट आकार की वर्कलोड फ़ाइल (फ़ाइलें) बनाता है, जिसे (K/M/G) के रूप में निर्दिष्ट किया जाता है

तालिका 1:DiskSpd के लिए मूल कमांड लाइन पैरामीटर

आप पंक्ति के अंत में परीक्षण फ़ाइल स्थान और परिणामों के लिए फ़ाइल नाम भी निर्दिष्ट करना चाहेंगे। यहाँ एक उदाहरण कमांड लाइन है:

diskspd –b8K –d30 –o4 –t8 –h –r –w25 –L –Z1G –c20G T:\iotest.dat> DiskSpeedResults.txt

यह उदाहरण कमांड लाइन T:ड्राइव पर स्थित 20GB परीक्षण फ़ाइल का उपयोग करके 30 सेकंड का यादृच्छिक I/O परीक्षण चलाएगी, जिसमें 25% लेखन और 75% रीड अनुपात, 8K ब्लॉक आकार के साथ होगा। यह आठ वर्कर थ्रेड्स का उपयोग करेगा, प्रत्येक में चार उत्कृष्ट I/Os और 1GB का एक राइट एन्ट्रॉपी वैल्यू सीड होगा। यह परीक्षण के परिणामों को DiskSpeedResults.txt नामक टेक्स्ट फ़ाइल में सहेज लेगा। SQL सर्वर OLTP वर्कलोड के लिए यह पैरामीटर का एक बहुत अच्छा सेट है।

चित्र 1:DiskSpd के लिए उदाहरण कमांड लाइन

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

मेरे वर्कस्टेशन पर चलने वाले इस विशेष परीक्षण के परिणाम इस प्रकार हैं।

चित्र 2:उदाहरण DiskSpd परीक्षा परिणाम

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

परीक्षा परिणामों का अधिक दिलचस्प हिस्सा आगे आता है। आपको कुल बाइट्स, कुल I/Os, MB/सेकंड, I/O प्रति सेकंड (IOPS), और मिलीसेकंड में आपकी औसत विलंबता मिलती है। ये परिणाम प्रत्येक थ्रेड (हमारे मामले में चार) के लिए विभाजित हैं, कुल IO के परिणामों में अलग-अलग अनुभागों के साथ, IO पढ़ें, और IO लिखें। अधिकांश मामलों में प्रत्येक थ्रेड के परिणाम बहुत समान होने चाहिए। शुरू में प्रत्येक माप के लिए निरपेक्ष मूल्यों पर ध्यान केंद्रित करने के बजाय, मैं मूल्यों की तुलना करना पसंद करता हूं जब मैं अलग-अलग तार्किक ड्राइव पर एक ही परीक्षण चलाता हूं, (कमांड लाइन में परीक्षण फ़ाइल का स्थान बदलने के बाद), जो आपको प्रदर्शन की तुलना करने देता है प्रत्येक तार्किक ड्राइव के लिए।

परीक्षा परिणाम का अंतिम खंड और भी दिलचस्प है। यह मिलीसेकंड में न्यूनतम मान से शुरू होकर मिलीसेकंड में अधिकतम मान तक पहुंचने, पढ़ने, लिखने और कुल विलंबता के लिए विभाजित होने वाले विलंबता परीक्षण परिणामों के वितरण का एक प्रतिशतक विश्लेषण दिखाता है। % -ile कॉलम में "नाइन" नौ की संख्या को संदर्भित करता है, जहां 3-नाइन का अर्थ है 99.9, 4-नाइन का अर्थ 99.99, आदि। उच्च प्रतिशतक पंक्तियों के लिए मान समान होने का कारण यह है कि इस परीक्षण में कुल संचालन की अपेक्षाकृत कम संख्या। यदि आप उच्च प्रतिशतक को सटीक रूप से चिह्नित करना चाहते हैं, तो आपको एक लंबी अवधि का परीक्षण करना होगा जो अधिक संख्या में अलग-अलग I/O संचालन उत्पन्न करता है।

आप इन परिणामों में जो देखना चाहते हैं, वह वह बिंदु है जहां मूल्य एक बड़ी छलांग लगाते हैं। उदाहरण के लिए, इस परीक्षण में हम देख सकते हैं कि 99% रीड्स में 1.832 मिलीसेकंड या उससे कम की विलंबता थी।

चित्र 3:विलंबता परिणाम वितरण

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL में प्राथमिक कुंजी कैसे बनाएं

  2. उचित Azure VM आकार चुनने का महत्व

  3. रीथिंक फ्लास्क - फ्लास्क और रेथिंकडीबी द्वारा संचालित एक साधारण टूडू सूची

  4. टी-एसक्यूएल सेट ऑपरेटर्स पार्ट 2:इंटरसेक्ट और एक्सेप्ट

  5. ओवर और पार्टिशन बाय फंक्शंस का उपयोग करके डेटा को समूहीकृत करना