एक मुख्य मीट्रिक, जो मौजूदा या डिज़ाइन किए गए संग्रहण सिस्टम के प्रदर्शन का अनुमान लगाने की अनुमति देता है, वह है IOPS (इनपुट/आउटपुट संचालन प्रति सेकेंड ) सरल शब्दों में, IOPS एक समय इकाई में भंडारण, डिस्क या फ़ाइल सिस्टम के साथ पढ़ने/लिखने के संचालन की संख्या है। यह संख्या जितनी बड़ी होगी, आपके संग्रहण का प्रदर्शन उतना ही अधिक होगा (स्पष्ट रूप से, IOPS मान को अन्य संग्रहण प्रदर्शन विशेषताओं, जैसे विलंबता, थ्रूपुट, आदि के साथ विचार किया जाना चाहिए)।
इस लेख में, हम विंडोज़ में भंडारण प्रदर्शन (आईओपीएस, विलंबता, थ्रूपुट) को मापने के कई तरीकों को देखेंगे (आप इस मैनुअल का उपयोग स्थानीय हार्ड ड्राइव, एसएसडी, एसएमबी नेटवर्क फ़ोल्डर, सीएसवी वॉल्यूम या सैन/आईएससीएसआई पर एलयूएन के लिए कर सकते हैं। भंडारण)।
Windows में डिस्क प्रदर्शन काउंटर का उपयोग करके संग्रहण I/O कैप्चर करना
आप प्रदर्शन मॉनिटर से अंतर्निहित डिस्क प्रदर्शन काउंटरों का उपयोग करके विंडोज़ में वर्तमान संग्रहण I/O कार्यभार का मोटे तौर पर अनुमान लगा सकते हैं . इन काउंटरों का डेटा एकत्र करने के लिए:
- परफमन शुरू करें;
- एक नया डेटा संग्राहक सेट बनाएं और मैन्युअल रूप से बनाएं . चुनें;
- चेकबॉक्स चुनें डेटा लॉग बनाएं -> प्रदर्शन काउंटर;
- अब नए डेटा संग्रह सेट के गुणों में, भौतिक डिस्क के लिए निम्न प्रदर्शन काउंटर जोड़ें ऑब्जेक्ट (आप किसी विशिष्ट डिस्क के लिए या सभी उपलब्ध स्थानीय डिस्क के लिए काउंटरों का चयन कर सकते हैं):
- औसत डिस्क सेक./स्थानांतरण
- औसत डिस्क कतार की लंबाई
- औसत डिस्क बाइट/स्थानांतरण
- डिस्क बाइट्स/सेकंड
- डिस्क स्थानांतरण/सेकंड
- आईओ/सेकंड विभाजित करें
- आप अन्य डेटा संग्रह गुण बदल सकते हैं। डिफ़ॉल्ट रूप से, प्रति मान हर 15 सेकंड में एकत्र किए जाते हैं। रीयल टाइम डिस्क प्रदर्शन प्रदर्शित करने के लिए, आपको निगरानी उपकरण -> प्रदर्शन मॉनिटर में निर्दिष्ट परफ़ॉर्मेंस काउंटर जोड़ने होंगे अनुभाग।
- प्रदर्शन काउंटरों का डेटा एकत्र करना शुरू करना बाकी है (प्रारंभ करें . चुनें) ) और विश्लेषण के लिए पर्याप्त जानकारी के संग्रह की प्रतीक्षा करें। उसके बाद, अपने डेटा संग्राहक सेट पर राइट क्लिक करें और रोकें . चुनें;
- एकत्र किए गए प्रदर्शन डेटा को देखने के लिए परफ़ॉर्मेंस -> रिपोर्ट्स -> उपयोगकर्ता परिभाषित -> Data_Disk_IO —> check_the_last_set पर जाएं . डिफ़ॉल्ट रूप से, डिस्क डेटा ग्राफ़ के रूप में प्रदर्शित होता है;
- रिपोर्ट . पर स्विच करने के लिए Ctrl + G का उपयोग करें तरीका।
Perfmon द्वारा एकत्र किए गए संग्रहण प्रदर्शन काउंटर को कैसे समझें? डिस्क/भंडारण प्रदर्शन के त्वरित विश्लेषण के लिए, आपको कम से कम निम्नलिखित 5 काउंटरों के मूल्यों को देखना होगा।
काउंटर डेटा का विश्लेषण करते समय, आपके लिए वर्तमान भौतिक डिस्क (भंडारण) कॉन्फ़िगरेशन (चाहे RAID या स्ट्राइप का उपयोग किया जाता है, डिस्क की संख्या और प्रकार, कैश आकार, आदि) को समझना उचित है।- डिस्क सेकंड/स्थानांतरण - स्टोरेज डिवाइस या डिस्क के साथ एक राइट/रीड ऑपरेशन करने के लिए आवश्यक समय (डिस्क लेटेंसी ) यदि विलंब 25 ms (0.25) से अधिक है, तो डिस्क सरणी समय पर I/O संचालन को हैंडल नहीं कर सकती है। उच्च लोड सर्वर के लिए, डिस्क विलंबता मान 10 ms (0.1) से अधिक नहीं होना चाहिए;
- डिस्क स्थानांतरण/सेकंड - (आईओपीएस)। प्रति सेकंड पढ़ने/लिखने के संचालन की संख्या। यह डिस्क एक्सेस की तीव्रता का मुख्य संकेतक है (विभिन्न डिस्क प्रकारों के लिए अनुमानित IOPS मान लेख के अंत में सूचीबद्ध हैं);
- डिस्क बाइट्स/सेकंड – कुल डिस्क थ्रूपुट (पढ़ें + लिखें) प्रति सेकंड। अधिकतम मान डिस्क प्रकार पर निर्भर करते हैं (150-250 Mb/s - एक नियमित HDD डिस्क के लिए और SSD के लिए 500-10000);
- आईओ/सेकंड विभाजित करें – एक डिस्क विखंडन संकेतक जब ऑपरेटिंग सिस्टम को एक I/O ऑपरेशन को कई डिस्क अनुरोधों में विभाजित करना होता है। यह यह भी संकेत दे सकता है कि एप्लिकेशन डेटा के बहुत बड़े ब्लॉक का अनुरोध कर रहा है जिसे एक ऑपरेशन में स्थानांतरित नहीं किया जा सकता है;
- औसत डिस्क कतार की लंबाई - कतारबद्ध पढ़ने/लिखने के अनुरोधों की औसत संख्या। एकल डिस्क के लिए, कतार की लंबाई 2 . से अधिक नहीं होनी चाहिए . 4 डिस्क के RAID सरणी के लिए, डिस्क कतार लंबाई का थ्रेशोल्ड मान 8 है।
DiskSpd:Windows में डिस्क प्रदर्शन और IOPS का परीक्षण
Microsoft DiskSpd . का उपयोग करने की अनुशंसा करता है (https://aka.ms/diskspd) डिस्क (स्टोरेज) सिस्टम पर लोड जेनरेट करने और उसके परफॉर्मेंस को मापने के लिए यूटिलिटी। यह एक कमांड लाइन इंटरफ़ेस टूल है जो कई थ्रेड्स में निर्दिष्ट ड्राइव लक्ष्य के साथ I/O संचालन कर सकता है। मैं अक्सर स्टोरेज प्रदर्शन को मापने के लिए डिस्कस्पड का उपयोग करता हूं और विशिष्ट सर्वर से अधिकतम उपलब्ध पढ़ने/लिखने की गति और आईओपीएस प्राप्त करता हूं (बेशक आप स्टोरेज के प्रदर्शन को भी माप सकते हैं, इस मामले में डिस्कस्पड का उपयोग स्टोरेज लोड उत्पन्न करने के लिए किया जाएगा )
DiskSpd को स्थापना की आवश्यकता नहीं है, बस संग्रह को स्थानीय डिस्क पर डाउनलोड करें और निकालें। x64 बिट सिस्टम के लिए, amd64fre . से diskspd.exe के संस्करण का उपयोग करें निर्देशिका।
मैं डिस्क के प्रदर्शन का परीक्षण करने के लिए निम्न कमांड का उपयोग करता हूं:
diskspd.exe –c50G -d300 -r -w40 -t8 -o32 -b64K -Sh -L E:\diskpsdtmp.dat > DiskSpeedResults.txt
-c50G
- फ़ाइल का आकार 50 जीबी (बड़े फ़ाइल आकार का उपयोग करना बेहतर है ताकि यह स्टोरेज कंट्रोलर के कैश में फिट न हो);-d300
- सेकंड में परीक्षण की अवधि;-r
- रैंडम रीड / राइट ऑपरेशंस (यदि आपको अनुक्रमिक एक्सेस का परीक्षण करने की आवश्यकता है, तो -s का उपयोग करें);-t8
- थ्रेड्स की संख्या;-w40
- लिखने और पढ़ने के संचालन का अनुपात 40%/ 60%;-o32
— कतार की लंबाई;-b64K
— ब्लॉक आकार;-Sh
— कैश का उपयोग न करें;-L
— विलंबता मापें;E:\diskpsdtmp.dat
- परीक्षण फ़ाइल पथ।
स्ट्रेस टेस्ट पूरा होने के बाद, आउटपुट टेबल से औसत स्टोरेज परफॉर्मेंस वैल्यू प्राप्त की जा सकती है।
मेरे परीक्षण में, निम्न प्रदर्शन डेटा (कुल IO तालिका की जाँच करें) प्राप्त किया गया था:
- MiB/s — 241 (लगभग 252 Mb/s, खराब नहीं);
- आईओपीएस — 3866 (बिल्कुल ठीक!);
- औसत विलंबता — 66.206 ms (काफ़ी बड़ी विलंबता!).
आप पढ़ने के लिए अलग-अलग मान प्राप्त कर सकते हैं (अनुभाग आईओ पढ़ें) या लिखें (अनुभाग लिखें आईओ) संचालन।
डिस्कएसपीडी का उपयोग करके कई डिस्क या स्टोरेज एलयूएन का परीक्षण करने के बाद, आप उनकी तुलना कर सकते हैं या अपने कार्यों के लिए वांछित प्रदर्शन के साथ एक सरणी का चयन कर सकते हैं।
PowerShell का उपयोग करके संग्रहण IOPS, थ्रूपुट और विलंबता को कैसे मापें?
मुझे एक पावरशेल स्क्रिप्ट मिली है (माइकल निस्ट्रॉम, माइक्रोसॉफ्ट एमवीपी द्वारा), जो अनिवार्य रूप से SQLIO.exe में एक ऐड-ऑन है। उपयोगिता (फ़ाइल भंडारण प्रदर्शन परीक्षणों का एक सेट)।
नोट . दिसंबर, 2015 में, Microsoft ने इस टूल के लिए समर्थन समाप्त करने और SQLIO को एक अधिक सार्वभौमिक टूल Diskspd के साथ बदलने की घोषणा की। , और अपनी वेबसाइट से SQLIO वितरण फ़ाइलों को हटा दिया। तो आपको स्वयं sqlio.exe खोजना होगा, या इसे हमारी वेबसाइट से डाउनलोड करना होगा (यह PowerShell स्क्रिप्ट के साथ संग्रह में स्थित है)।तो, 2 फाइलों वाले संग्रह को डाउनलोड करें:SQLIO.exe और DiskPerformance.ps1 (disk_perf_iops.ZIP - 74 KB) और इसे किसी भी फ़ोल्डर में निकालें।
डिस्क प्रदर्शन और IOPS का अनुमान लगाने के लिए PowerShell स्क्रिप्ट चलाने का एक उदाहरण:
.\DiskPerformance.ps1 -TestFileName test.dat –TestFileSizeInGB 1 -TestFilepath C:\temp -TestMode Get-LargeIO -FastMode True -RemoveTestFile True -OutputFormat Out-GridView
आइए स्क्रिप्ट के तर्कों पर विचार करें:
–TestFileName test.dat
- FSUTIL टूल द्वारा बनाई गई फ़ाइल का नाम;–TestFileSizeInGB 1
- परीक्षण फ़ाइल का आकार। संभावित मान 1.5, 10, 50, 100, 500, 1,000 जीबी हैं। फ़ाइल का आकार स्टोरेज सिस्टम कैश के आकार से बड़ा होना चाहिए। अन्यथा, डिस्क के बजाय कैशे डेटा के लिए IOPS को मापा जाएगा;-TestFilepath C:\Temp
- यहां आप प्रदर्शन को मापने के लिए डिस्क निर्दिष्ट करते हैं और डिस्क पर फ़ोल्डर, जिसमें एक परीक्षण फ़ाइल बनाई जाएगी। आप नेटवर्क साझा फ़ोल्डर (एसएमबी) के लिए यूएनसी पथ भी निर्दिष्ट कर सकते हैं;-TestMode Get-LargeIO
- इनपुट-आउटपुट मापन के दो विकल्प हैं। गेट-स्मॉलियो IOPS को मापने की अनुमति देता है, और Get-LargeIO डेटा अंतरण दर को मापता है। स्मॉलआईओ और लार्जियो तर्कों के बीच का अंतर 8 केबी और 512 केबी के ब्लॉक आकार में है, जबकि दर को मापते समय, और एक्सेस के प्रकार, रैंडम या अनुक्रमिक, तदनुसार;-FastMode True
- फास्टमोड में, प्रत्येक परीक्षण 10 सेकंड तक चलता है, अन्यथा इसमें 60 सेकंड लगते हैं;-RemoveTestFile True
- परीक्षण समाप्त होने के बाद परीक्षण फ़ाइल को हटा दें;-OutputFormat Out-GridView
- परीक्षण के परिणाम या तो पावरशेल कंसोल में प्रदर्शित किए जा सकते हैं (प्रारूप-तालिका ) या एक अलग ग्राफिक चार्ट विंडो में (आउट-ग्रिडव्यू )।
हमारे मामले में (SAN से जुड़े HP MSA 2040 पर VMFS डेटास्टोर पर एक vmdk वर्चुअल डिस्क का उपयोग किया जाता है) डिस्क सरणी ने लगभग 15,000 का औसत IOPS मान दिखाया। और डेटा संचरण दर (थ्रूपुट) लगभग 5 Gbit/s ।
निम्न तालिका में, विभिन्न डिस्क प्रकारों के लिए अनुमानित IOPS मान दिखाए गए हैं:
प्रकार | आईओपीएस |
SSD(SLC) | 6000 |
SSD(MLC) | 1000 |
15K RPM | 175-200 |
10K RPM | 125-150 |
7.2K RPM | 50-75 |
Raid5 में से 10K RPM वाली 6 ड्राइव | 1000 |
मुझे कुछ लोकप्रिय Microsoft सेवाओं के लिए IOPS में डिस्क प्रदर्शन के लिए कुछ अनुशंसाएँ मिली हैं:
- माइक्रोसॉफ्ट एक्सचेंज 2010 5,000 उपयोगकर्ताओं के साथ, उनमें से प्रत्येक 75 प्राप्त करता है और प्रति दिन 30 ईमेल भेजता है, इसके लिए कम से कम 3,750 आईओपीएस की आवश्यकता होगी;
- माइक्रोसॉफ्ट एसक्यूएल 2008 सर्वर 3,500 SQL लेनदेन प्रति सेकंड (TPS) के लिए 28,000 IOPS की आवश्यकता होती है;
- एक सामान्य विंडोज़ अनुप्रयोग सर्वर 10-100 उपयोगकर्ताओं के लिए 10-40 आईओपीएस की आवश्यकता होती है।