क्या SSD छापा रामदिस्क से तेज हो सकता है?


9

तो एक सामान्य ssd में 250 - 500 mb / सेकंड की रीड स्पीड होगी। और एक राम की तुलना में लगभग 10x होगा।

मेरा प्रश्न है: क्या RAID-0 के साथ 4 ssds किसी कारण के लिए एक सिंगल मेमोरी मेमोरी ब्लॉक से तेज हो सकता है?

मैं या तो बहुत सारे राम और रामदिस्क के साथ जाने वाला हूं, या छापे के साथ 4 एसएसडी। कौन सा तेज है?

जवाबों:


12

तो एक सामान्य ssd में 250 - 500 mb / सेकंड की रीड स्पीड होगी। और एक राम की तुलना में लगभग 10x होगा।

आप किस तरह की रैम की बात कर रहे हैं? निश्चित रूप से ऐसा कुछ नहीं है जो हाल ही में पीसी में आम उपयोग में रहा हो, ऐसा प्रतीत होगा।

DDR3 SDRAM तुच्छ रूप से आपको लगभग 10 GB / s की ट्रांसफर दर दे सकता है (आपको इसके लिए DDR3-1333 की आवश्यकता है) और वर्तमान में DDR3-2133 के लिए लगभग 17 GB / s में सबसे ऊपर है।

मान लीजिए कि आप चार एसएसडी को 500 एमबी / एस तक पहुंचाने में सक्षम हैं और समग्र प्रणाली यह संभालने में सक्षम है (कोई बस विवाद नहीं है, सिस्टम अभी भी I / O- बाध्य है, आदि)। यह आपको 2 जीबी / एस का एक सैद्धांतिक अधिकतम थ्रूपुट देता है । 4xSSD लगभग 10 का एक कारक खो देता है

DDR3 SDRAM की 10 ns क्षेत्र में एक विलंबता है। एक अच्छा SSD आपको 100k IOPS दे सकता है, सबसे ऊपर, जो 10,000 ns की विलंबता में बदल जाता है। (उदाहरण के लिए, इंटेल 530 यादृच्छिक 4k रीड्स के लिए 41k IOPS निर्दिष्ट करता है, जो आपको लगभग 25,000 ns की विलंबता देता है।)

स्ट्रिप चार एसएसडी और सभी ओवरहेड को अनदेखा करें, और आपको 400k IOPS, या 2,500 ns विलंबता मिल सकती है। 4xSSD 250 के एक कारक द्वारा खो देता है

एसएसडी से डेटा को कहीं जाना है, और यह कि "कहीं" रैम होगा। सीपीयू इसे वहां से हड़प सकता है, लेकिन यह एसएसडी से सीधे बात नहीं करता है, क्योंकि यह सीधे कताई-थाली हार्ड डिस्क ड्राइव पर बात करता है।

यदि हम मानते हैं कि आप SSD पर बस विवाद से ग्रस्त नहीं हैं, तो रैम के लिए एक ही बात मान लेना समझ में आता है। जिससे यह निष्कर्ष निकलता है कि इनमें से किसी भी मैट्रिक्स के द्वारा, DDR3 SDRAM की तुलना में SSD भयावह रूप से धीमी है।

रैम में अन्य कमियां हैं। SSDs की तुलना में भी यह प्रति गीगाबाइट बहुत महंगा है, और इसे अपनी सामग्री को बनाए रखने के लिए निरंतर शक्ति की आवश्यकता होती है। इसके अलावा, रैम डिस्क रैम के समान कार्य नहीं करता है, क्योंकि यह ऑपरेटिंग सिस्टम में एक सॉफ्टवेयर निर्माण है। आपको अभी भी RAM का अधिकांश प्रदर्शन लाभ मिलना चाहिए, लेकिन आप उसी मात्रा में RAM खो देते हैं जिसके कारण सिस्टम को अधिक बार स्वैपिंग का सहारा लेने की आवश्यकता हो सकती है (जो प्रदर्शन के लिए मौत की सजा है) और इसकी संभावना नहीं होगी कच्चे रैम के रूप में काफी एक ही प्रदर्शन दे।


रमदिस्क यह तब है ..
कोरा तुगे

1
@KorayTugay यदि आपको प्रदर्शन में सबसे अधिक आवश्यकता है, तो आपको रैम डिस्क के साथ जाना चाहिए, लेकिन ध्यान रखें कि रैम डिस्क रैम के समान कार्य नहीं करती है और इसकी कमियां भी हैं, जिनमें से कम से कम कीमत नहीं है । (इसके अलावा, जब मैं स्वीकार की सराहना करता हूं, तो मैं आपको एक दिन इंतजार करने के लिए प्रोत्साहित करता हूं या किसी अन्य व्यक्ति के मामले में जवाब देने से पहले एक और भी बेहतर उत्तर प्रदान करता है।)
एक CV

@KorayTugay: आम तौर पर बोल, "क्या मुझे RAMDisk की आवश्यकता है?" लगभग हमेशा "नहीं। यदि आपको वास्तव में इसकी आवश्यकता है, तो आपको पर्याप्त पता चल जाएगा कि आपको पूछना नहीं होगा।" आप क्या कर रहे हैं जो आपको लगता है कि आपको इसकी आवश्यकता होगी?
१०:१३

एक विशाल डेटाबेस के साथ @afrazier विकास / परीक्षण और मैं इसके लिए कई बार पहुंचता हूं और इससे बहुत अधिक डेटा प्राप्त होता है। मैं राम में डीबी रखूंगा। मैं इसे प्रतिदिन 8 10 घंटे करता हूं और 4 5 सेकंड के लिए इंतजार करना कुछ समय के बाद बहुत लंबा लगता है। मैं तेजी से DB हिट करने की जरूरत है।
कोरे तुगे

5
कोई भी सक्षम DBMS जितना संभव हो उतना RAM में DB को रखेगा। यदि आपका DB RAMdisk में फिट होने के लिए छोटा है, तो यह RAM में फिट होने के लिए पर्याप्त छोटा है। SSD के साथ अपने DBMS को सही तरीके से ट्यून करने से आपको वह प्रदर्शन मिलेगा जिसकी आप तलाश कर रहे हैं - स्थानीय विकास के लिए, आप ऐसी चीजों का लाभ भी उठा सकते हैं जैसे कि वापस कैशिंग लिखना और ACID के बारे में कम चिंता करना। एक रैमडिस्क सिस्टम से लड़ रहा है।
afrazier

4

"नहीं" उत्तर का वास्तविक कारण न केवल दोनों के बीच तुलनात्मक अंतर है, बल्कि इसलिए कि ओएस अंततः एसएसडी से पढ़े गए डेटा को कैश करेगा। यह आपके RAM में इसे कैश कर देगा । इस प्रकार SSD से एक ब्लॉक रीडिंग का अर्थ है रैम के साथ-साथ ब्लॉक-राइट। हमेशा।

यही कारण है कि बहुत विशेष हार्डवेयर संयोजनों में भी रैम डिस्क तेजी से होता है (उदाहरण के लिए बहुत तेज एसएसडी को बहुत धीमी रैम के साथ जोड़ा गया था)।


1
यह वास्तव में सबसे अच्छा जवाब है।
क्रिसइंनमोंटॉन

sudo zfs set primarycache=none tankवहाँ आपके RAM- आधारित कैश जाता है। (निश्चित रूप से आप ZFS का उपयोग कर रहे हैं।)
एक CVn

@ माइकलकॉर्जलिंग यह सही है, और गैर-ज़ोफ़ निर्माणों पर भी रीड कैश को बंद करने की संभावनाएं हैं। लेकिन इस मामले में भी, यदि आप $ रीड () $ कॉल करते हैं, तो यह वास्तव में SSD से RAM की कॉपी होगी । आप इससे बच नहीं सकते, सिवाय इसके कि आप डेटा को किसी तरह सीधे सीपीयू कैश में पढ़ रहे हैं (जिसका मतलब है कि आप किसी तरह डीएमए से बचें), AMD cpus (और शायद intels) में एक एकीकृत मेमोरी मैनेजर है, मुझे लगता है कि उनका थोड़ा संशोधित संस्करण है किसी तरह वह कर सका। लेकिन इस मामले में भी इसे सीपीयू को संशोधित करना होगा।
पीटर - मोनिका

3

आपके वास्तविक प्रश्न का उत्तर देने के लिए: No. RAM में परिमाण का अधिक बैंडविड्थ है और परिमाण का एक क्रम कम विलंबता है। पास भी नहीं है।

उस प्रश्न का उत्तर देने के लिए जो आप नहीं पूछ रहे हैं: आप क्या करने की योजना बना रहे हैं, यह एक बुरा विचार है, जब तक कि आपके पास बहुत विशिष्ट उपयोग का मामला न हो, जिसके लिए उस तरह के बैंडविड्थ की आवश्यकता होती है। यदि आपको वास्तव में उस तरह की गति की आवश्यकता है, तो PCIe आधारित SSD (जैसे ioDrive या Intel 910) प्राप्त करना RAID-0 में SATA SSDs के एक बैग की तुलना में बहुत तेज होने वाला है।

कोई भी वर्तमान SSD उपभोक्ता और उत्साही कार्यभार के लिए काफी तेज़ होने वाला है जो आप अड़चन बन रहे हैं।


दरअसल, DDR3 विलंबता SSD की तुलना में कम परिमाण का एक आदेश नहीं है। यह परिमाण के तीन से चार क्रम कम है। कुछ वास्तविक संख्याओं के लिए मेरा उत्तर देखें। (हालांकि, बॉलपार्क में बैंडविड्थ अंतर निश्चित रूप से है।)
एक CVn

लेटेंसी महत्वपूर्ण नहीं है, क्योंकि आईओ ब्लॉकों में होता है। कम से कम 4K ब्लॉक में। बैंडविड्थ महत्वपूर्ण है।
पीटर - मोनिका

@PeterHorvath: SSDs के साथ विलंबता अभी भी एक बड़ी बात है। सभी शोधों और बेंचमार्क को एकरूपता और शुरुआती एसएसडी में होने वाली हकलाने वाली समस्याओं को देखें। और जैसा कि माइकल Kjörling ने उल्लेख किया है, RAM विलंबता SSD से कम परिमाण के कई आदेश हैं। एलएक्स कैश पर विलंबता अभी भी काफी कम है, और सीपीयू रजिस्टर विलंबता अभी भी कम है। और यह प्रदर्शन के लिए सभी मायने रखता है।
१ier

1

परिधीय बस-प्रणाली (जैसे एसएटीए) वितरित कर सकती है, रैम हमेशा से तेज होगी।

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

कितनी तेजी से राम-डिस्क वास्तव में पूरी तरह से उस सॉफ़्टवेयर की गुणवत्ता पर निर्भर करेगा।

कहा जा रहा है कि: आम तौर पर यह अभी भी कई गुना तेज होना चाहिए क्योंकि सबसे तेज भंडारण समाधान आप मदरबोर्ड से जोड़ सकते हैं।

कुछ कोने-मामले हो सकते हैं जहां विशिष्ट उपयोग-पैटर्न अंतर को छोटा या लगभग शून्य बना देंगे, लेकिन इस तरह की प्रणाली के साथ आप क्या करने जा रहे हैं, इस पर अधिक विस्तार के बिना यह कहना असंभव है कि क्या यह आपकी स्थिति पर लागू होगा।

PS भालू ध्यान में रखें कि एक रैम-डिस्क अस्थिर होगी। मशीन के बूट के बाद आपको शुरू में इसे डेटा के साथ लोड करना होगा। मशीन के बंद होने पर आपको सामग्री को सहेजना होगा (यदि आपको अगले रन के लिए इसकी आवश्यकता है)। अगर सिस्टम आपको कुछ भी बचाने के लिए रैम-डिस्क को ढीला करता है।
यह कुछ ऐसा है जिसे आपको ध्यान में रखना होगा, खासकर यदि आप बार-बार रिबूट की उम्मीद करते हैं। राम-डिस्क सामग्री को सहेजना / पुनः लोड करना तुच्छ से कम हो सकता है।


मैं अपने डेटाबेस को राम में रखूंगा।
कोरे तुगाय
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.