SSD (Intel 530) पढ़े / लिखें गति बहुत धीमी है RAID 10 के साथ


11

स्पष्टीकरण:

हमारे पास एक सर्वर है:

  • मॉडल: HP प्रोलिएंट DL160 G6
  • 4 x 240GB SSD (RAID-10)
  • 72GB DDR3 रैम
  • 2 एक्स एल 5639
  • HP P410 RAID नियंत्रक (256MB, V6.40, रोम संस्करण: 8.40.41.00)

SSD ड्राइव 4 ब्रांड नए 2.5 "इंटेल 530 540MB / s पढ़ने की गति और 490MB / s लिखने की गति के साथ हैं

  • सेंटोस 6
  • फ़ाइल सिस्टम ext4 हैं

लेकिन यह छापे 10 पर पढ़ने की गति के लिए परीक्षा परिणाम है:

hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads:  824 MB in  3.00 seconds = 274.50 MB/sec
[root@localhost ~]# hdparm -t /dev/mapper/vg_localhost-lv_root

/dev/mapper/vg_localhost-lv_root:
 Timing buffered disk reads:  800 MB in  3.01 seconds = 266.19 MB/sec

और यह लिखने की गति के लिए है:

dd bs=1M count=512 if=/dev/zero of=test conv=fdatasync
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 4.91077 s, 109 MB/s

हम छापे 10 के साथ 1GB रीड स्पीड की उम्मीद कर रहे थे लेकिन 270MB भी एक डिस्क की गति नहीं है!

प्रशन:

  1. यह इतना धीमा क्यों है?
  2. यह RAID नियंत्रक की वजह से है?

अद्यतन 1 - एक ही पढ़ें / गति लिखें:

उत्तर में बताए अनुसार कुछ सेटिंग्स बदलने के बाद मेरा परिणाम नीचे है:

(कोई भी जानता है कि यह 400 एमबी के बजाय 4 जीबी क्यों दिखाता है पढ़ने की गति के रूप में ?!

संपादित करें: ऐसा लगता है कि आदेश गलत था और हमें राम की इस राशि के लिए -144g का उपयोग करना चाहिए, यही कारण है कि यह 4GB दिखाता है (जैसा कि ewwhite द्वारा टिप्पणियों में सुझाया गया है)

[root@192 ~]# iozone -t1 -i0 -i1 -i2 -r1m -s56g
        Iozone: Performance Test of File I/O
                Version $Revision: 3.408 $
                Compiled for 64 bit mode.
                Build: linux

        Record Size 1024 KB
        File size set to 58720256 KB
        Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s56g
        Output is in Kbytes/sec
        Each process writes a 58720256 Kbyte file in 1024 Kbyte records

        Children see throughput for  1 initial writers  =  135331.80 KB/sec
        Children see throughput for  1 rewriters        =  124085.66 KB/sec
        Children see throughput for  1 readers          = 4732046.50 KB/sec
        Children see throughput for 1 re-readers        = 4741508.00 KB/sec
        Children see throughput for 1 random readers    = 4590884.50 KB/sec
        Children see throughput for 1 random writers    =  124082.41 KB/sec

लेकिन पुराने hdparm -t /dev/sdaआदेश अभी भी दिखाता है:

टाइमिंग बफ़र्ड डिस्क पढ़ती है: 810 सेकंड में 3.00 सेकंड = 269.85 एमबी / सेकंड

अपडेट 2 (ट्यून्ड-बर्तन पैक) - पढ़ें स्पीड अब 600MB / s है:

अंत में कुछ आशा है, हमने छापे नियंत्रक से कैश को निष्क्रिय कर दिया था और कुछ अन्य चीजें पहले बिना किसी भाग्य के की थीं, लेकिन क्योंकि हमने सर्वर को फिर से लोड किया और ओएस को फिर से स्थापित किया, हम ईवसाइट के उत्तर में सुझाए अनुसार "ट्यून-बर्तन" स्थापित करना भूल गए (धन्यवाद आपके द्वारा सुझाए गए इस भयानक पैकेज के लिए ewwhite)

प्रोफ़ाइल को स्थापित करने tuned-utilsऔर चुनने के बाद enterprise-storageरीड स्पीड अब ~ 600MB / s + है लेकिन लिखने की गति अभी भी बहुत धीमी है (~ 160MB) (:

यहाँ iozone -t1 -i0 -i1 -i2 -r1m -s144gआदेश के लिए परिणाम है :

    Children see throughput for  1 initial writers  =  165331.80 KB/sec
    Children see throughput for  1 rewriters        =  115734.91 KB/sec
    Children see throughput for  1 readers          =  719323.81 KB/sec
    Children see throughput for 1 re-readers        =  732008.56 KB/sec
    Children see throughput for 1 random readers    =  549284.69 KB/sec
    Children see throughput for 1 random writers    =  116389.76 KB/sec

hdparm -t /dev/sdaहमारे पास कमांड के साथ भी :

टाइमिंग बफ़र डिस्क पढ़ता है: 1802 एमबी 3.00 सेकंड में = 600.37 एमबी / सेकंड

बहुत धीमी गति लिखने के लिए कोई सुझाव?

अपडेट 3 - टिप्पणियों में मांगी गई कुछ जानकारी:

लिखने की गति अभी भी बहुत कम है (~ 150MB / s जो कि एक डिस्क का 1/3 भी नहीं है)

के लिए आउटपुट df -hऔर fdisk -l:

[root@192 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       441G  3.2G  415G   1% /
tmpfs            36G     0   36G   0% /dev/shm


[root@192 ~]# fdisk -l
Disk /dev/sda: 480.0 GB, 480047620096 bytes
255 heads, 63 sectors/track, 58362 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00040c3c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       58363   468795392   83  Linux

इस परीक्षण के लिए, आपको संभवतः सर्वर में स्थापित रैम की मात्रा को दोगुना करना चाहिए।
21

क्या आप हमें अपने स्मार्ट ऐरे P410 कंट्रोलर का फर्मवेयर संस्करण बता सकते हैं?
ewwhite 22

@ आपकी टिप्पणी के लिए धन्यवाद, फर्मवेयर संस्करण p410 (256MB, V6.40) है और रोम संस्करण 8.40.41.00 है, क्या मेरा iozone कमांड गलत था? यदि हाँ, तो आप कृपया मुझे परीक्षण करने के लिए सही आदेश बता सकते हैं? क्योंकि सब कुछ मैं कोशिश करता हूं कि मुझे जीबी में पढ़ने की गति मिल जाए
आरा

यहाँ कुछ बहुत गलत है। आप केवल ~ 122MB / s लिख रहे हैं। आपके द्वारा देखे जाने वाले 4 जीबी / एस के आंकड़े कैश से परिचालन होते हैं, इसलिए आपका कमांड स्ट्रिंग जैसा दिखना चाहिए iozone -t1 -i0 -i1 -i2 -r1m -s144g। :(
ewwhite

@ बहुत बहुत धन्यवाद, पढ़ने की गति अब बहुत अच्छी है (मेरे प्रश्न में अपडेट 2 के रूप में विस्तृत है), लेकिन लिखने की गति बहुत निराशाजनक है, क्या आपके पास इसके लिए कोई सुझाव है?
आरा

जवाबों:


16

जबकि दूसरा उत्तर यहाँ कुछ बिंदुओं पर है, आपके विशिष्ट मुद्दे प्लेटफ़ॉर्म सीमाओं और OS कॉन्फ़िगरेशन के कारण हैं:

  • आप HP स्मार्ट एरे P410 RAID नियंत्रक पर उपभोक्ता SATA SSDs के उपयोग से थ्रूपुट-सीमित हैं । SATA डिस्क 6.0Gbps (6G) के बजाय इन नियंत्रकों पर 3.0Gbps (3G) पर चलती है। तो यह एक अवरोध है जो आपके इंटेल एसएसडी की रीड गति को प्रभावित करता है; 300MB / s या कम प्रति ड्राइव।

  • जब SSDs के साथ उपयोग किया जाता है तो स्मार्ट ऐरे P410 नियंत्रक की विशिष्ट आवश्यकताएं और सर्वोत्तम प्रथाएं होती हैं। संक्षेप में, नियंत्रक 50,000 IOPS के लिए सक्षम है, अपने SSD वॉल्यूम और प्रदर्शन टॉप के लिए सरणी त्वरक को निष्क्रिय करें ~ 6 ड्राइव पर।

  • डिस्क प्रदर्शन हमेशा अनुक्रमिक पढ़ने / लिखने की गति के बारे में नहीं होता है। Iozone या bonnie ++ जैसे उचित उपकरण के साथ बेंचमार्किंग करने का प्रयास करें। आप अभी भी अपने कई ड्राइव के यादृच्छिक I / O लाभ प्राप्त करते हैं।

  • ऑपरेटिंग सिस्टम स्तर पर, ट्यून-बर्तन पैकेज स्थापित करें enterprise-performanceऔर अपने फाइल सिस्टम से लिखने की बाधाओं को हटाने के लिए प्रोफ़ाइल सेट करें और अपने सेटअप के लिए सही I / O एलिवेटर सेट करें। यह यहां अन्य प्रश्नों में भी शामिल है।

  • ऐसा लगता है कि आप LVM का उपयोग कर रहे हैं। कि एक प्रभाव के रूप में अच्छी तरह से कर सकते हैं ...

यहाँ एक ही HP Smart Array P410 RAID कंट्रोलर पर चार उपभोक्ता 6G SATA SSDs (3G स्पीड में डाउनस्ट्रीम किया गया) के साथ चलने वाले G7 प्रोलिएंट के लिए iozone रिपोर्ट दी गई है ।

आपको ~ 470MB / s लिखना चाहिए और 650MB / s + पढ़ना चाहिए।

[root@mdmarra /data/tmp]# iozone -t1 -i0 -i1 -i2 -r1m -s56g
        Iozone: Performance Test of File I/O
                Version $Revision: 3.394 $
                Compiled for 64 bit mode.
                Build: linux 

        Record Size 1024 KB
        File size set to 58720256 KB
        Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s56g
        Output is in Kbytes/sec
        Each process writes a 58720256 Kbyte file in 1024 Kbyte records

        Children see throughput for  1 initial writers  =  478209.81 KB/sec
        Children see throughput for  1 rewriters        =  478200.84 KB/sec
        Children see throughput for  1 readers          =  677397.69 KB/sec
        Children see throughput for 1 re-readers        =  679523.88 KB/sec
        Children see throughput for 1 random readers    =  437344.78 KB/sec
        Children see throughput for 1 random writers    =  486254.41 KB/sec

बहुत बहुत धन्यवाद, मॉडल "DL160 G6" है, हाँ इसमें बैकप्लेन शामिल है :( मैं यहां 600MB से भी खुश रहूंगा, लेकिन 270MB वास्तव में धीमा है, आपको क्या लगता है कि मुझे क्या करना चाहिए, सॉफ्टवेयर छापे मदद करता है?
आरा

2
ठीक है, एक DL160 G6 के साथ, आपके पास दो केबल होने चाहिए RAID नियंत्रक से ड्राइव बैकप्लेन ... 8 ड्राइव स्लॉट। यहां आपकी समस्या ड्राइव थ्रूपुट, आपकी परीक्षण पद्धति और सर्वर की सेटिंग है। मेरे उत्तर में सूचीबद्ध अन्य सुझावों की कोशिश करें।
इविविट

P410 के बारे में दिलचस्प सा SATA पर केवल 3 जी कर रहा है, और विशिष्ट सर्वोत्तम प्रथाओं। मॉड ऊपर। (LVM को नकारात्मक प्रदर्शन प्रभाव के मामले में भारी हिटर नहीं होना चाहिए, यहां भी नोट किया गया है: unix.stackexchange.com/questions/7122/… )
रोमन

1
@ आरा ProLiant के लिए कोई 6G SATA नियंत्रक नहीं है। यही तो बात है। जब तक आप एसएएस एसएसडी का उपयोग नहीं करेंगे, तब तक आपके एसएसडी इस प्लेटफॉर्म पर केवल 3 जी की गति से चलेंगे ।
इविविट

1
@Ara Software RAID एक अलग नियंत्रक से जुड़ने की कोशिश करेगा, जैसे कि एसएएस एचबीए (जैसे LSI 9211-8i) ... यह आपको अपने डिस्क की पूर्ण बैंडविड्थ देखने की अनुमति देगा, लेकिन शुद्ध रूप से SSD प्रदर्शन के अन्य पहलू हैं। अनुक्रमिक पढ़ने / लिखने बैंडविड्थ।
14

12

ओह प्रिय, कहाँ से शुरू करें?

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

इसका उत्तर आसानी से नहीं दिया जा सकता है। लेकिन कम से कम, यहाँ सामान की एक सूची है जिसे आपको देखना है:

  • क्या नियंत्रक को भी थ्रूपुट की आवश्यकता है? (-> डेटाशीट्स)
  • क्या नियंत्रक के पास होस्ट के लिए पर्याप्त बैंडविड्थ है (यह v1.0 पर भी है, क्योंकि यह x8 है)
  • क्या सिस्टम के चिपसेट में पर्याप्त थ्रूपुट (सीपीयू-नियंत्रक) है? (अनजान)
  • आपने किस रणनीति के तहत नियंत्रक को नियोजित करने का निर्देश दिया है? ( यह वही है जो आपको सबसे अधिक संभावना है )
  • क्या सब कुछ गठबंधन है (विभाजन शुरू होता है, LVs, PVs)?
  • क्या ब्लॉक आकार सामंजस्यपूर्ण हैं? (RAID धारी आकार, ब्लॉक आकार, FS ब्लॉक, ...)
  • फ़ाइल सिस्टम RAID सेटअप के लिए अनुकूलित है? (स्तर और ब्लॉक आकार)

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


यह वास्तव में मैंने सोचा था की तुलना में कठिन है, मुझे लगता है कि यह RAID नियंत्रक राम को 512MB में अपग्रेड करने के रूप में सरल है! , रोमन धन्यवाद, मुझे कुछ की जाँच करने के लिए क्या आप सिर्फ कारण खोजने की उम्मीद कर कहा
आरा

उपर्युक्त में से अधिकांश किनारे के मामलों के लिए वैध समस्या निवारण रणनीति हैं, लेकिन मूल पोस्टर के विन्यास की बारीकियों पर लागू नहीं होते हैं। यहां नियंत्रक के पास आवश्यक थ्रूपुट और बैंडविड्थ है, सीपीयू ठीक है, RAID नियंत्रक में 25:75 आर / डब्ल्यू कैश अनुपात (पूरी तरह से एसएसडी उपयोग के लिए अक्षम होना चाहिए), CentOS6 विभाजन को सही ढंग से संरेखित करता है और प्राप्त करने के लिए बहुत अधिक संभावित अमूर्तता है। ब्लॉक आकार "सामंजस्य"। हाथ में तीन मुद्दे हैं 6 जी डिस्क 3 जी गति से थ्रॉटल किए जाते हैं, फाइलसिस्टम लिखते हैं अवरोध संभवत: सक्षम होते हैं और आई / ओ लिफ्ट डिफ़ॉल्ट सीएफक्यू है।
ewwhite

1
दुर्भाग्यवश मेरे जवाब के समय सर्वर मॉडल को नोट नहीं किया गया था। थ्रॉटलिंग के बारे में जानना अच्छा है। मुझे लगता है कि बाधाओं और सीएफक्यू ने इस विशिष्ट "बेंचमार्क" में बहुत अधिक खर्च नहीं किया, लेकिन फिर भी मूल्यवान जानकारी।
रोमन

@Roman क्षमा करें, मैंने पहले इस मॉडल का उल्लेख नहीं किया था, मैं वास्तव में आपकी मदद की सराहना करता हूं, मैं आपकी और ewwhite की मार्गदर्शिका दोनों को 500-600MB तक पहुंचाने की कोशिश कर रहा हूं, मुझे लगता है कि इस 3 जी की सीमा के साथ मैं उच्चतम गति तक पहुंच सकता हूं
आरा

1
बिल्कुल भी परेशानी नहीं है। सुनिश्चित करें कि आप ewwhite के उत्तरों में लिंक का पालन करते हैं, क्योंकि वहाँ है विशिष्ट बातें P410 के साथ संयोजन के रूप में है राष्ट्रपति के। इसके अलावा, आप यह सुनिश्चित करें कि आप चार कनेक्शनों को समान रूप से दो समतल से पीछे के नियंत्रक तक वितरित करते हैं।
रोमन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.