सवाल लिनक्स RAID-0 प्रदर्शन 1 जीबी / एस से अधिक नहीं है


मुझे अपने सेटअप से अधिकतम थ्रूपुट प्राप्त करने में परेशानी है। हार्डवेयर निम्नानुसार है:

  • दोहरी क्वाड-कोर एएमडी ओपर्टन (टीएम) प्रोसेसर 2376
  • 16 जीबी डीडीआर 2 ईसीसी रैम
  • दोहरी Adaptec 52245 RAID नियंत्रक
  • 48 1 टीबी सैटा ड्राइव 2 RAID-6 arrays (256KB पट्टी) + स्पेयर के रूप में स्थापित की गई है।

सॉफ्टवेयर :

  • सादा वेनिला 2.6.32.25 कर्नेल, एएमडी -64 के लिए संकलित, NUMA के लिए अनुकूलित; डेबियन लेनी उपयोगकर्तालैंड।
  • बेंचमार्क रन: डिस्कटेस्ट, बोनी ++, डीडी, आदि सभी एक ही परिणाम देते हैं। यहां कोई विसंगति नहीं है।
  • आईओ शेड्यूलर का इस्तेमाल किया: नहीं। हाँ, यहाँ कोई चाल नहीं है।

अब तक मैं मूल रूप से मानता हूं कि स्ट्रिपिंग (RAID 0) कई भौतिक उपकरणों को मोटे तौर पर रैखिक रूप से प्रदर्शन में वृद्धि करना चाहिए। हालांकि यह मामला यहां नहीं है:

  • प्रत्येक RAID सरणी लगभग 780 एमबी / एस लिखती है, निरंतर, और 1 जीबी / एस पढ़ी जाती है, निरंतर होती है।
  • दो अलग-अलग प्रक्रियाओं के साथ-साथ RAID arrays दोनों को लिखना 750 + 750 एमबी / एस देता है, और दोनों से पढ़ना 1 + 1 जीबी / एस देता है।
  • हालाँकि जब मैं दोनों एरे को एक साथ एमडीएडीएम या एलवीएम का उपयोग करके पट्टी करता हूं, तो प्रदर्शन लगभग 850 एमबी / एस लेखन और 1.4 जीबी / एस पढ़ने के बारे में है। उम्मीद से कम से कम 30% कम!
  • धारीदार सरणी के खिलाफ दो समांतर लेखक या पाठक प्रक्रियाओं को चलाने से आंकड़ों में वृद्धि नहीं होती है, वास्तव में यह प्रदर्शन को और भी कम कर देता है।

तो यहाँ क्या हो रहा है? असल में मैंने बस या मेमोरी विवाद से इंकार कर दिया, क्योंकि जब मैं एक साथ दोनों ड्राइवों पर डीडी चलाता हूं, तो कुल लिखने की गति वास्तव में 1.5 जीबी / एस तक पहुंचती है और पढ़ने की गति 2 जीबी / एस होती है।

तो यह पीसीआई बस नहीं है। मुझे लगता है कि यह राम नहीं है। यह फाइल सिस्टम नहीं है, क्योंकि मुझे कच्चे डिवाइस या एक्सएफएस का उपयोग करके बिल्कुल वही संख्या बेंचमार्किंग मिलती है। और मुझे एलवीएम स्ट्रिपिंग और एमडी स्ट्रिपिंग का उपयोग करके बिल्कुल वही प्रदर्शन मिलता है।

क्या गलत है? प्रक्रिया को अधिकतम संभव थ्रूपुट तक जाने से क्या रोक रहा है? क्या लिनक्स दोषपूर्ण है? मैं कौन से अन्य परीक्षण चला सकता हूं?


8
2017-12-17 15:23


मूल


मुझे समझ में नहीं आता कि आप RAID 6 + 0 क्यों जा रहे हैं, आप ऐसा क्यों करेंगे जब आप नियमित RAID 1 + 0 का उपयोग कर सकते हैं? - Chopper3
इससे समस्या हल नहीं होगी। RAID-10 arrays को दबाते समय md / lvm वही व्यवहार साझा करते हैं। मैं प्रदर्शन की सामान्य कमी की देखभाल कर रहा हूं, एक विशेष सेटअप नहीं। यह एक परीक्षण प्रणाली है, उत्पादन मशीन नहीं। - wazoox
अपने RAID 0 धारियों को अपने RAID 6 धारियों के साथ संरेखित करें? आम तौर पर स्तरित RAID एक बहुत ही अनिश्चित क्षेत्र है और यह मानना ​​ठीक नहीं है कि दिया गया RAID कार्य करेगा जैसे कि यह एक ही गति का एक हार्डड्राइव था। - JamesRyan
क्या आपने एडैप्टेक कार्ड को जेबीओडी के रूप में कॉन्फ़िगर करने और केवल सॉफ्टवेयर (एमडी) में RAID-10 करने की कोशिश की है? यह मुझे आश्चर्य नहीं करेगा अगर नियंत्रक की RAID सुविधा ड्राइवरों द्वारा संचालित की जाती है, तो एक बार जब आप दो अलग-अलग RAID को इंटरलव करते हैं तो किसी भी प्रदर्शन लाभ को अस्वीकार कर देते हैं। दूसरी तरफ, एमडी स्वतंत्र रूप से प्रत्येक ड्राइव तक पहुंच को अनुकूलित करने का प्रयास करेगा, सैद्धांतिक समयों को अपनाने (अगर कोई अन्य बाधा नहीं है) - Javier
यह एक आसान जांच की तरह नहीं लगता है। पहली नज़र में मैं संभावना का पक्ष लेगा कि striping कार्यक्रम एक बहु थ्रेडिंग एल्गोरिदम के माध्यम से प्रदर्शन करने में सक्षम नहीं है। चूंकि आप से सॉफ्ट रेड का उपयोग कर रहे हैं mdadm, मैं आपको स्रोत पर नज़र रखने का सुझाव दूंगा। - Ring Ø


जवाब:


क्या आपने बेंचमार्क करते समय लेटेंसीटॉप चलाने की कोशिश की है? यह देखने में सहायक हो सकता है कि कौन सी लिनक्स syscall अपराधी है (यदि कोई है)।


3
2017-12-23 13:23





यह एक एक्स 8 पीआईसीई जेन 1 कार्ड है जहां तक ​​मैं कह सकता हूं - पूर्ण अधिकतम डेटा दर जो इसका समर्थन कर सकती है वह 2 जीबीईटी / सेकंड शून्य ओवरहेड मानती है। Adaptec खुद ही दावा करते हैं कि कार्ड 1.2Gbytes / sec को सर्वोत्तम रूप से बनाए रख सकते हैं और आप इससे अधिक हो रहे हैं।

उद्योग के अग्रणी के साथ सुसज्जित   चिप पर दोहरी कोर RAID (आरओसी), एक्स 8 पीसीआई   एक्सप्रेस कनेक्टिविटी और 512 एमबी डीडीआर   कैश, वे 250,000 से अधिक आईओ प्रदान करते हैं   प्रति सेकंड और 1.2 जीबी / एस।

मेरा अनुमान है कि चूंकि आप अपने दावा किए गए प्रदर्शन को काफी हद तक पार करने में सक्षम हैं क्योंकि दो RAID 0 सेट स्वतंत्र रूप से अतिरिक्त लोड करते हैं, छोटे और सब कुछ ऐसा हो सकता है, जो स्ट्राइपिंग जोड़ता है RAID RAID के ओवरस्ट्रेसिंग, या संभवतः रैम उपप्रणाली पर नियंत्रक, GByte / सेकंड भार पर।


2
2017-12-23 13:41



मुझे काफी समझ में नहीं आ रहा है ... ओपी वाक्यांशों के रूप में, ऐसा लगता है कि उसके पास 2 RAID नियंत्रक हैं, प्रत्येक RAID6 सरणी को संभालने वाला है। फिर वह RAID 0 के दो RAID 6 सरणी सॉफ़्टवेयर में है, यानी। कर्नेल RAID में निर्मित लिनक्स का उपयोग कर। इस मामले में, प्रत्येक नियंत्रक को केवल आधे भार को संभालना चाहिए, इसलिए प्रत्येक नियंत्रक को केवल 780 एमबी / एस लिखने और 1 जीबी / एस पढ़ने की जरूरत है। नियंत्रक पहले ही साबित कर चुके हैं कि वे ऐसा कर सकते हैं (सॉफ्टवेयर RAID जोड़ा जाने से पहले)। तो पीसीआई-एक्सप्रेस बस / RAID नियंत्रक स्वयं सीमित कारक नहीं होना चाहिए? - Jesper Mortensen
उचित बिंदु - दोहरी नियंत्रक टिप्पणी (और उस एलवीएम \ md भाग पर जोर दिया जो उस पर जोर दिया) याद किया। इसके बारे में उनका मुद्दा बस \ IO सीमा नहीं है, तब काफी साबित हुआ है। - Helvick