AWS MongoDB परिनियोजन के प्रबंधन के लिए एक अत्यंत लोकप्रिय और विश्वसनीय क्लाउड प्लेटफ़ॉर्म है, लेकिन XFS बनाम EXT4 के प्रश्न में कई डेवलपर्स सोच रहे हैं कि कौन सा Linux फ़ाइल सिस्टम उन्हें अपने अनुप्रयोगों के लिए सर्वश्रेष्ठ प्रदर्शन देगा। उत्पादन के लिए तैनाती पर MongoDB की आधिकारिक गाइड लिनक्स पर XFS फाइल सिस्टम का उपयोग करने की सिफारिश करती है, खासकर जब WiredTiger स्टोरेज इंजन को तैनात करते हैं। हालाँकि, अनुशंसा हमें यह नहीं बताती है कि हमें प्रदर्शन में वृद्धि की उम्मीद क्यों करनी चाहिए या हम किस प्रकार के प्रदर्शन लाभ का अनुभव करेंगे। हमने XFS पर MongoDB प्रदर्शन की मात्रात्मक जांच करके इसकी तह तक जाने का फैसला किया है ताकि आप तुलना कर सकें कि क्या EXT4 आपके AWS EC2 उदाहरणों के लिए बेहतर विकल्प है।
XFS फाइल सिस्टम
XFS 1993 में SGI में विकसित और 2002 में Linux में पोर्ट किया गया एक उच्च स्केलेबल, उच्च-प्रदर्शन 64-बिट जर्नलिंग फ़ाइल सिस्टम है। यह अत्यधिक समानांतर I/O और 9 एक्साबाइट तक फ़ाइल सिस्टम आकार का समर्थन करता है, और केवल फ़ाइल सिस्टम मेटाडेटा जर्नल करता है, उपयोगकर्ता डेटा नहीं। XFS की कुछ प्रमुख प्रदर्शन बढ़ाने वाली विशेषताएं हैं:
- आवंटन समूहों के माध्यम से समानांतर पहुंच सुनिश्चित करती है कि एक ही वॉल्यूम पर एकाधिक थ्रेड I/O एक साथ निष्पादित कर सकते हैं।
- विस्तार आधारित आवंटन विखंडन, मेटाडेटा आकार को कम करता है, और कम और बड़े I/O संचालन की अनुमति देकर I/O प्रदर्शन में सुधार करता है।
- विलंबित आवंटन डेटा की निरंतरता और प्रदर्शन में सुधार करता है। बड़े टुकड़ों में लिखने और विस्तार आवंटित करके विखंडन को कम किया जाता है, और बेतरतीब ढंग से लिखी गई फाइलें (जैसे कि मेमोरी मैप की गई) को लगातार आवंटित किया जा सकता है
एक्स्प्लोर करने के लिए और भी कई एक्सएफएस सुविधाएं हैं, और आप एक्सएफएस की वेबसाइट और एक्सएफएस यूजर गाइड पर अधिक जान सकते हैं।
MongoDB पर प्रदर्शन परीक्षण चलाना
जैसा कि आपने हमारी पिछली पोस्टों में सीखा होगा, हम YCSB का उपयोग MongoDB प्रदर्शन को बेंचमार्क करने के लिए कर रहे हैं, जिसमें विभिन्न क्लाउड प्रदाताओं में MMAP समर्थित MongoDB प्रदर्शन की विस्तृत तुलना शामिल है। हमने YCSB के उसी कार्यभार का उपयोग करने का निर्णय लिया है जिसका हम पहले उपयोग कर रहे हैं:कार्यभार A (अपडेट भारी:50% पढ़ता है + 50% अपडेट)। वर्कलोड का इंसर्ट चरण 100% राइट वर्कलोड के प्रदर्शन को मापता है, जबकि लोड चरण वास्तविक वर्कलोड (50/50% रीड/अपडेट) के खिलाफ प्रदर्शन को मापेगा।
हमारे परीक्षण सिंक MongoDB ड्राइवर पर चलाए गए थे, और Linux डिस्ट्रो Amazon Linux (4.4.44-39.55.amzn1.x86_64) था। हमने अपने परीक्षणों के लिए मोंगोडीबी संस्करण 3.2.10 को वायर्ड टाइगर चलाने के लिए चुना क्योंकि डब्ल्यूटी वह जगह है जहां बेहतर लाभ की उम्मीद थी और 2 अलग हार्डवेयर रिग पर परीक्षण चलाए:
- हाई-स्पीड डिस्क :AWS EC2 c3.बड़ा उदाहरण जहां MongoDB स्टोरेज के लिए RAID 0 कॉन्फ़िगरेशन में SSD डिस्क का उपयोग कर रहा था (स्केलग्रिड क्लस्टर आकार HighPerfLarge के लिए मैप)।
- मध्यम गति डिस्क :AWS EC2 m3.medium उदाहरण जहां MongoDB 300 IOPS पर सेट किए गए EBS (इलास्टिक ब्लॉक स्टोर) IOPS प्रावधानित डिस्क का उपयोग कर रहा था (स्केलग्रिड क्लस्टर आकार माध्यम के लिए मानचित्र)।
नोट:वर्चुअलाइज्ड वातावरण में किसी भी प्रकार का प्रदर्शन परीक्षण नमक के दाने के साथ लिया जाना चाहिए। यहां हमारा उद्देश्य इन परिवेशों पर प्रदर्शन संख्याओं को बेंचमार्क करना नहीं है, बल्कि एक ही वर्चुअलाइज्ड वातावरण में EXT4 और XFS के बीच प्रदर्शन अंतर का कुछ मात्रात्मक माप प्रदान करना है।
हाई-स्पीड SSD डिस्क
हमने अपने उच्च-प्रदर्शन रिग पर निम्न परीक्षण चलाया:
- 6 मिलियन सम्मिलित किए गए विभिन्न सर्वर लोड पर रिकॉर्ड (वाईसीएसबी क्लाइंट थ्रेड्स की संख्या को बदलकर)।
- कार्यभार 10 मिलियन के संचालन की संख्या . पर चला गया विभिन्न सर्वर लोड पर रिकॉर्ड।
SSD डिस्क प्रदर्शन परिणाम
उच्च-प्रदर्शन कॉन्फ़िगरेशन पर 6M रिकॉर्ड प्रविष्टि के लिए थ्रूपुट/विलंबता विशेषताएँ:
उच्च-प्रदर्शन कॉन्फ़िगरेशन पर 10M लिखने/अद्यतन संचालन के लिए थ्रूपुट/विलंबता विशेषताएं:
SSD डिस्क अवलोकन
- एक्सएफएस सम्मिलन चरण और कार्यभार निष्पादन दोनों के दौरान शानदार रूप से तेज है। निचले थ्रेड काउंट पर, यह EXT4 की तुलना में 50% अधिक तेज़ है। जैसे-जैसे लोड बढ़ता गया, दोनों फाइल सिस्टम अंतर्निहित हार्डवेयर के थ्रूपुट द्वारा सीमित थे, लेकिन XFS ने अभी भी अपनी बढ़त बनाए रखी।
- XFS और EXT4 दोनों के लिए विलंबता दोनों रनों में तुलनीय थी। ध्यान दें कि सभी नंबर माइक्रो सेकेंड में हैं।
धीमा EBS प्रावधानित IOPS डिस्क (300 IOPS)
हमारे मध्यम आकार के प्रदर्शन रिग पर निम्नलिखित परीक्षण निष्पादित किया गया था:
- 3 मिलियन सम्मिलित किए गए विभिन्न सर्वर लोड पर रिकॉर्ड (वाईसीएसबी क्लाइंट थ्रेड्स की संख्या को बदलकर)।
- कार्यभार संचालन संख्या 50 लाख विभिन्न सर्वर लोड पर रिकॉर्ड।
हाई-एंड कॉन्फ़िगरेशन पर हमारे अनुभव को देखते हुए, हमें उम्मीद थी कि इस रिग में भी XFS की अच्छी बढ़त होगी।
IOPS डिस्क प्रदर्शन परिणाम
मध्यम कॉन्फ़िगरेशन पर 3M रिकॉर्ड प्रविष्टि के लिए थ्रूपुट/विलंबता विशेषताएँ:
मध्यम कॉन्फ़िगरेशन पर 5M राइट/अपडेट संचालन के लिए थ्रूपुट/विलंबता विशेषताएँ:
IOPS डिस्क अवलोकन
- XFS तुलनीय है, हालांकि मध्यम आकार के विन्यास पर EXT4 से थोड़ा पीछे है। ऐसा लगता है कि सिस्टम संसाधनों के इस स्तर पर, XFS के प्रदर्शन अनुकूलन से वास्तव में कोई फर्क नहीं पड़ता है। यदि आप बेहतर प्रदर्शन की आशा में छोटे उदाहरणों पर XFS परिनियोजित करने पर विचार कर रहे हैं तो यह एक महत्वपूर्ण अवलोकन है।
AWS EC2 पर XFS बनाम EXT4
प्रदर्शन के संदर्भ में, XFS वास्तव में एक बल गुणक है जब उच्च गति डिस्क के साथ जोड़ा जाता है जिससे यह वास्तविक लाभ उठा सकता है। निम्न से लेकर मध्य-अंत तक के सिस्टम के लिए, ऐसा लगता है कि यह आपके प्रदर्शन को बेहतर बनाने के लिए बहुत कुछ करने में सक्षम नहीं है।