एक उपयोगी भंडारण परीक्षण संचालन आकार, एक्सेस पैटर्न, समवर्तीता और टिकाऊपन आवश्यकताओं को एप्लिकेशन से मिलाता है। परीक्षण की स्थितियां और लेटेंसी वितरण रिकॉर्ड करें, फिर एप्लिकेशन मापों से परिणाम की पुष्टि करें।
स्कोर से नहीं, भंडारण प्रश्न से शुरू करें
बेंचमार्क चलाने से पहले तय करें कि आपको क्या जानना है। आप धीमे डेटाबेस कमिट, फ़ाइल-वितरण थ्रूपुट या ऐसी बिल्ड प्रक्रिया की जांच कर रहे हों जो कई छोटी फ़ाइलें बनाती है। ये वर्कलोड डिस्क से एक ही चीज़ नहीं मांगते। एक बड़ी अनुक्रमिक कॉपी प्रभावशाली दिख सकती है, जबकि छोटे रैंडम रीड करने वाली सेवा द्वारा अनुभव की जाने वाली देरी के बारे में बहुत कम बताती है।
NVMe को नॉन-वोलेटाइल मीडिया और कुशल समानांतर I/O के लिए डिज़ाइन किया गया था, लेकिन इसका प्रोटोकॉल नाम होस्टेड भंडारण पथ के हर हिस्से का वर्णन नहीं करता। वर्चुअलाइज़ेशन, फ़ाइल सिस्टम, संसाधन विवाद और एप्लिकेशन अभी भी मायने रखते हैं। एक परीक्षण परिकल्पना लिखें, जैसे कि क्या भंडारण लेटेंसी किसी विशेष संचालन को धीमा कर रही है, न कि ऐसी संख्या उत्पन्न करने का प्रयास करें जो साबित करे कि पूरा सर्वर तेज़ है।
वर्कलोड को पुनरुत्पादक शब्दों में वर्णित करें
संचालन आकार, अनुक्रमिक या रैंडम पैटर्न, पढ़ने-से-लिखने का मिश्रण, जॉब की संख्या और क्यू गहराई रिकॉर्ड करें। डेटासेट आकार और परीक्षण अवधि शामिल करें। fio दस्तावेज़ इन वर्कलोड नियंत्रणों और उपलब्ध I/O इंजनों की व्याख्या करता है। हर इंजन या सेटअप द्वारा इच्छित गहराई प्राप्त नहीं की जा सकती, इसलिए रिपोर्ट किए गए व्यवहार को भी पढ़ें, साथ ही आपके द्वारा अनुरोधित कॉन्फ़िगरेशन को भी।
परिणाम के साथ परीक्षण विवरण की एक प्रति रखें। ऑपरेटिंग सिस्टम, फ़ाइल सिस्टम, माउंट विकल्प, सेवा गतिविधि और उपलब्ध क्षमता नोट करें। यदि आप कॉन्फ़िगरेशन की तुलना करते हैं, तो एक बार में एक प्रासंगिक शर्त बदलें। भिन्न एक्सेस पैटर्न या समवर्तीता वाले परीक्षण को निष्पक्ष रूप से ऐसे प्रस्तुत नहीं किया जा सकता जैसे केवल भंडारण माध्यम बदला गया हो।
| एप्लिकेशन पैटर्न | वर्णन करने के लिए परीक्षण आयाम | जांचने के लिए परिणाम |
|---|---|---|
| बड़ी फ़ाइल डिलीवरी | अनुक्रमिक रीड और समवर्ती क्लाइंट | निरंतर थ्रूपुट और CPU उपयोग |
| रिकॉर्ड लुकअप | छोटे रैंडम रीड और प्रतिनिधि समवर्तीता | लेटेंसी वितरण और पूर्ण संचालन |
| टिकाऊ लेनदेन | लिखने और सिंक्रनाइज़ेशन की आवश्यकताएं | कमिट-संबंधित देरी, न कि केवल बफ़र्ड लेखन गति |
| बिल्ड या निष्कर्षण | मिश्रित छोटी-फ़ाइल संचालन | एंड-टू-एंड जॉब अवधि और I/O प्रतीक्षाएं |
कैशिंग को नियंत्रित करें, बिना यह दिखावा किए कि यह मायने नहीं रखती
मेमोरी में फिट होने वाला डेटासेट पहले पास के बाद अधिकतर कैश व्यवहार माप सकता है। यह उपयोगी हो सकता है यदि एप्लिकेशन को सामान्य रूप से उसी कैश से लाभ होता है, लेकिन इसे कच्चे डिवाइस प्रदर्शन का लेबल नहीं दिया जाना चाहिए। जानबूझकर चुनें कि परीक्षण गर्म एप्लिकेशन पथ, ठंडे डेटासेट या ऐसे I/O मोड की जांच करता है जिसका उद्देश्य ऑपरेटिंग सिस्टम के बफ़रिंग प्रभाव को कम करना है।
डायरेक्ट-I/O समर्थन और अलाइनमेंट प्लेटफ़ॉर्म और इंजन पर निर्भर करते हैं। यह स्वतः एप्लिकेशन की टिकाऊपन आवश्यकताओं को व्यक्त नहीं करता या स्टैक में हर कैश को समाप्त नहीं करता। चुने गए मोड को स्पष्ट रूप से बताएं, और बफ़र्ड परीक्षण की तुलना अनबफ़र्ड परीक्षण से ऐसे न करें जैसे वे समान कार्य का प्रतिनिधित्व करते हों। जहां व्याख्या में सहायता हो, वहां वार्म-अप और मापे गए अंतरालों को अलग रखें।
थ्रूपुट के साथ लेटेंसी टेल भी पढ़ें
औसत लेटेंसी उन धीमे संचालनों को छिपा सकती है जो वास्तविक अनुरोधों को प्रभावित करते हैं। रिपोर्ट किए गए प्रतिशतक और उनके पीछे के नमूनों की संख्या जांचें। उच्च प्रतिशतक उस सीमा का वर्णन करता है जिसके नीचे उस परीक्षण के दौरान देखे गए संचालनों का बताया गया अंश आया; यह स्थायी सेवा गारंटी नहीं है। छोटे या अप्रतिनिधि रन व्यस्त उत्पादन अवधियों के बारे में सीमित साक्ष्य देते हैं।
उच्च क्यू गहराई प्रतीक्षा समय बढ़ाते हुए पूर्ण थ्रूपुट में सुधार कर सकती है। यह ट्रेड-ऑफ बैच प्रोसेसिंग के लिए उपयुक्त हो सकता है और इंटरैक्टिव सेवा को नुकसान पहुंचा सकता है। एप्लिकेशन जैसी समवर्तीता पर परिणामों की तुलना करें, और साथ ही CPU और I/O दबाव की निगरानी करें। इससे पहले रोकें कि परीक्षण पर्यावरण साझा करने वाले किसी अन्य वर्कलोड के लिए अनावश्यक व्यवधान पैदा करे।
परीक्षण को अधिकृत और गैर-विनाशकारी रखें
समर्पित परीक्षण निर्देशिका या तैयार डिस्पोज़ेबल वॉल्यूम का उपयोग करें, जिसमें पर्याप्त खाली स्थान और स्पष्ट सफ़ाई योजना हो। कभी भी राइट बेंचमार्क को असत्यापित कच्चे डिवाइस या उत्पादन डेटासेट पर निर्देशित न करें। शुरू करने से पहले टूल के लक्ष्य और लेखन व्यवहार की जांच करें, और सीमित रन से शुरू करें। सिंथेटिक I/O क्षमता का उपभोग कर सकता है और सेवाओं में हस्तक्षेप कर सकता है, भले ही यह उपयोगी फ़ाइलों को अधिलेखित न करे।
उत्पादन-जैसे मूल्यांकन के लिए, रखरखाव विंडो पर सहमति बनाएं और एप्लिकेशन निगरानी बनाए रखें। जहां संभव हो काल्पनिक डेटा का उपयोग करें। गति परीक्षण से भंडारण विश्वसनीयता का अनुमान न लगाएं: अखंडता जांच, बैकअप और पुनर्स्थापन अलग कार्य हैं। बेंचमार्क पूरा करने वाले डिवाइस को अभी भी विलोपन, सॉफ़्टवेयर गलतियों या मशीन के नुकसान के लिए रिकवरी रणनीति की आवश्यकता होती है।
एप्लिकेशन साक्ष्य के साथ लूप बंद करें
मान लें कि एक रिपोर्ट सेवा अपना अधिकांश समय रैंडम रीड की प्रतीक्षा में बिताती है। टीम एक प्रतिनिधि रीड पैटर्न का परीक्षण करती है, फिर तुलनीय डेटा पर वास्तविक रिपोर्ट दोहराती है। यदि रिपोर्ट में सुधार होता है जबकि उसका अन्य कार्य स्थिर रहता है, तो परिणाम भंडारण परिकल्पना का समर्थन करता है। यदि नहीं, तो व्यापक सिंथेटिक परीक्षण दोहराने के बजाय क्वेरी डिज़ाइन, मेमोरी या किसी अन्य निर्भरता की जांच करें।
Pulse NVMe और चयनित समर्पित कॉन्फ़िगरेशन SwissOctet कैटलॉग में NVMe भंडारण सूचीबद्ध करते हैं। उनके लेबल विनिर्देश हैं, प्रकाशित एप्लिकेशन बेंचमार्क नहीं। वितरित परिवेश का मूल्यांकन करने के लिए नियंत्रित विधि का उपयोग करें और निष्कर्षों के साथ शर्तों को सुरक्षित रखें। निर्णय तब अधिक मजबूत होता है जब भंडारण माप और उपयोगकर्ता-दृश्य परिणाम एक ही प्रश्न का उत्तर देते हैं।
आपकी व्यावहारिक चेकलिस्ट।
- पहले एप्लिकेशन प्रश्न को परिभाषित करें।
- पैटर्न, ब्लॉक आकार, समवर्तीता और अवधि रिकॉर्ड करें।
- कैश और I/O-मोड की धारणाएं बताएं।
- थ्रूपुट के साथ-साथ लेटेंसी प्रतिशतक भी जांचें।
- सत्यापित डिस्पोज़ेबल लक्ष्य और सीमित प्रारंभिक लोड का उपयोग करें।
- एप्लिकेशन परीक्षण से निष्कर्ष की पुष्टि करें।
महत्वपूर्ण विवरण।
क्या डेटाबेस भंडारण की तुलना करने के लिए अनुक्रमिक कॉपी पर्याप्त है?+
आमतौर पर नहीं। डेटाबेस एक्सेस में छोटे रैंडम रीड, राइट और सिंक्रनाइज़ेशन शामिल हो सकते हैं। प्रासंगिक पैटर्न को मॉडल करें और वास्तविक एप्लिकेशन को सत्यापित करें।
क्या डायरेक्ट I/O टिकाऊ लेखन सिद्ध करता है?+
नहीं। बफ़रिंग और टिकाऊपन अलग-अलग मामले हैं। एप्लिकेशन द्वारा आवश्यक सिंक्रनाइज़ेशन व्यवहार से मिलान करें।
क्या मैं एक परीक्षण को गारंटीकृत प्लान गति के रूप में प्रकाशित कर सकता हूं?+
नहीं। इसकी शर्तें और दायरा प्रकाशित करें। एक रन का मापा गया परिणाम सेवा-स्तर या भविष्य के प्रदर्शन की गारंटी नहीं है।
स्रोत पर जाएं।
ये संदर्भ इस गाइड में तकनीकी अवधारणाओं का समर्थन करते हैं। उत्पादन प्रणाली बदलने से पहले वर्तमान दस्तावेज़ का पालन करें।
- fio: लचीला I/O परीक्षक दस्तावेज़ fio.readthedocs.io
- NVM Express: विनिर्देश अवलोकन और FAQ nvmexpress.org
- Linux कर्नेल: प्रेशर स्टॉल सूचना docs.kernel.org
SwissOctet द्वारा संपादकीय मार्गदर्शन। उदाहरण केवल दृष्टांत हैं। सेवा विशिष्टताएं, उपलब्ध विकल्प और संविदात्मक शर्तें अलग से सत्यापित की जानी चाहिए।