सवाल मैक ओएस एक्स में "/ dev / diskisk" से लगभग 20 गुना तेज "/ dev / rdisk" क्यों है


के अनुसार rasbery पीआई दस्तावेज, आप अपने ओएस को फ़्लैश कार्ड पर / dev / disk या / dev / rdisk के साथ लोड कर सकते हैं।

rdisk कच्चे डिस्क के लिए खड़ा है।

/ dev / disk एक ब्लॉक स्तर डिवाइस है, तीसरा तेज 20 गुना क्यों होगा? 

मैक ओएसएक्स का उपयोग करना

नोट: ओएस एक्स में प्रत्येक डिस्क में दो पथ संदर्भ / dev में हो सकते हैं:   / dev / disk # एक buffered डिवाइस है, जिसका अर्थ है कि कोई भी डेटा भेजा जा रहा है   अतिरिक्त प्रसंस्करण से गुजरता है। / dev / rdisk # एक कच्चा पथ है, जो बहुत अधिक है   डीडी प्रोग्राम का उपयोग करते समय तेज़, और पूरी तरह से ठीक है। कक्षा 4 एसडी पर   तीसरा पथ का उपयोग कर कार्ड अंतर लगभग 20 गुना तेजी से था।


115
2017-08-13 22:26


मूल


एक साइड नोट के रूप में, मैंने एक परीक्षण चलाया और वास्तव में बहुत अधिक समय लिया। - spuder
एक और पक्ष नोट के रूप में, मुझे लगा कि मुझे तब भी परीक्षण करना पड़ा था, और पाया कि एक डिस्क कॉपी (डीडी के माध्यम से) डिस्क समकक्ष का उपयोग करने से लगभग 4 गुना तेज था। - Travis Griggs
@TravisGriggs मैं उत्सुक हूँ कि ओएस, मैक या लिनक्स? - spuder
मैंने सोचा था कि "rdisk" रास्पबेरी पीआई एसडी कार्ड छवि के लिए कुछ निर्देशों में एक टाइपो था जिसे मैं पढ़ रहा था। आगे की जांच के बाद मैंने अंतर को गुमराह किया और यह धागा पाया। मेरे मामले में बाहर निकलता है यह एक डीडी / डिस्क / डीडी / डिस्क के बजाय एक डीडी / rdisk का उपयोग कर 1.7 जीबी छवि लिखने के लिए 13 गुना तेज था! मैकबुक प्रो रेटिना 13 ", 2015 के शुरुआती मॉडल। - tobias.mcnulty
अभी तक एक और sidenote के रूप में, मैंने बस अपने नए खरीदे सैंडिस्क चरम प्रो माइक्रोएसडी कार्ड में एक उबंटू एआरएम छवि डीडी की। / dev / disk1 ने 2.3 एमबी / एस पर लिखा था, जबकि / dev / rdisk1 ने 83.7 एमबी / एस, या 36.4 गुना तेजी से लिखा था। - DanielSmedegaardBuus


जवाब:


से man hdiutil:

/ dev / rdisk नोड्स चरित्र-विशेष उपकरण हैं, लेकिन बीएसडी भावना में बल "कच्चे" हैं और ब्लॉक ब्लॉक-गठबंधन I / O बल हैं। वे बफर कैश की तुलना में भौतिक डिस्क के करीब हैं। / dev / disk नोड्स, दूसरी ओर, ब्लॉक-विशेष डिवाइस buffered हैं और मुख्य रूप से कर्नेल के फाइल सिस्टम कोड द्वारा उपयोग किया जाता है।

आम आदमी के शब्दों में /dev/rdisk डिस्क पर लगभग सीधे चला जाता है और /dev/disk एक और अधिक महंगा मार्ग के माध्यम से चला जाता है


84
2017-08-13 23:23



जब आप rdisk का उपयोग कर सकते हैं डिस्क का उपयोग क्यों करें? - user391339
@ user391339 क्योंकि कैशिंग अभी भी एक वांछनीय चीज है। जिन मामलों में आपके पास हटाने योग्य मीडिया है, आप जितनी जल्दी हो सके भौतिक डिवाइस पर डेटा प्राप्त करना चाहते हैं, क्योंकि आप डेटा को किसी अन्य भौतिक स्थान में चाहते हैं। आंतरिक हार्ड ड्राइव एक अलग कहानी है। आप आमतौर पर उन्हें चारों ओर नहीं ले जाते हैं, इसलिए जब आप वास्तव में डिवाइस पर डेटा लिखे जाते हैं तो आपको परवाह नहीं है। जब आप डिस्क पर लिखने का एक अधिक महंगा तरीका डिवाइस से लिखे गए डेटा को कैश करते हैं / पढ़ते हैं, लेकिन आपके प्रोग्राम अभी भी तेज़ हैं, क्योंकि उन्हें तब तक प्रतीक्षा करने की आवश्यकता नहीं है जब तक कि वे लिखने के लिए इच्छित सभी डेटा डिस्क पर नहीं लिखे जाते हैं। - Kritzefitz
@ डैन, रे "बल"; जिसका अर्थ है? - Pacerier


स्वीकृत उत्तर सही है, लेकिन यह ज्यादा विस्तार से नहीं जाता है।

बीच के महत्वपूर्ण मतभेदों में से एक /dev/disk तथा /dev/rdisk, जब आप उन्हें उपयोगकर्ता स्थान से एक्सेस करते हैं, तो वह है /dev/disk buffered है। के लिए पढ़ने / लिखने के लिए पथ /dev/disk आई / ओ को 4 केबी भाग में विभाजित करता है, जो इसे बफर कैश में पढ़ता है, और उसके बाद उपयोगकर्ता स्पेस बफर में प्रतिलिपि बनाता है (और उसके बाद अगले 4KB पढ़ता है ...)। यह अच्छा है कि आप unaligned पढ़ और लिख सकते हैं, और यह सिर्फ काम करता है। इसके विपरीत, /dev/rdisk मूल रूप से बस डिवाइस को सीधे पढ़ने या लिखने को पास करता है, जिसका अर्थ है कि I / O की शुरुआत और अंत को क्षेत्र की सीमाओं पर गठबंधन करने की आवश्यकता है।

यदि आप एक सेक्टर से बड़े पढ़ने या लिखते हैं /dev/rdisk, वह अनुरोध सीधे पारित किया जाएगा। निचली परतें इसे तोड़ सकती हैं (उदाहरण के लिए, USB यूएसबी प्रोटोकॉल में अधिकतम पेलोड आकार के कारण 128KB टुकड़ों में इसे तोड़ देता है), लेकिन आप आम तौर पर बड़े और अधिक कुशल I / Os प्राप्त कर सकते हैं। स्ट्रीमिंग करते समय, जैसे dd, मौजूदा गैर-RAID हार्डवेयर पर निकटतम प्रदर्शन प्राप्त करने के लिए 128 केबी से 1 एमबी बहुत अच्छे आकार हैं।

कैशिंग द्वारा किया जा रहा है /dev/diskपढ़ना और लिखना पथ बहुत सरल है और लगभग मस्तिष्क मृत है। यह कड़ाई से जरूरी नहीं होने पर भी कैश करता है; जैसे कि डिवाइस मेमोरी मैप कर सकता है और सीधे आपके ऐप के बफर में स्थानांतरित कर सकता है। यह छोटा (4 केबी) I / Os करता है, जो बहुत से प्रति I / O ओवरहेड की ओर जाता है। यह आगे पढ़ता या पीछे लिखता नहीं है।


90
2018-03-23 04:54



विवरण में स्पष्टीकरण के लिए बहुत धन्यवाद। - gpanda


ऐसा लगता है /dev/disk तथा /dev/rdisk एचडीडी और एसएसडी के लिए अलग काम करता है। माइक्रोएसडी कार्ड के लिए इसे जांचना चाहते हैं। सैंडिस्क अल्ट्रा माइक्रोएसडी 64 जीबी में बस 2 जीबी डिस्क छवि लिखी (https://www.amazon.com/gp/product/B073JYVKNX)।

कई बार बार-बार परीक्षण किया गया, लेकिन परिणाम स्थिर थे: 17MB / s के लिये /dev/disk बनाम 20MB / s के लिये /dev/rdisk। बदलना bs=1m सेवा मेरे bs=16m लेखन गति में बिल्कुल कोई फर्क नहीं पड़ता है।

  1. लिखना /dev/disk2

    sudo dd if=~/Downloads/ubuntu-18.04-4.14-minimal-odroid-xu4-20180531.img of=/dev/disk2 bs=1m
    2094006272 bytes transferred in 121.860007 secs (17183704 bytes/sec)
    
  2. लिखना /dev/rdisk2

    $ sudo dd if=~/Downloads/ubuntu-18.04-4.14-minimal-odroid-xu4-20180531.img of=/dev/rdisk2 bs=1m
    2094006272 bytes transferred in 102.743870 secs (20380839 bytes/sec)
    

फिर मैंने पढ़ने की गति का परीक्षण करने का फैसला किया: 26MB / s के लिये /dev/disk बनाम 87MB / s के लिये /dev/rdisk। बदलना bs=1m सेवा मेरे bs=16m पढ़ने की गति में बिल्कुल कोई फर्क नहीं पड़ता है।

  1. से पढ़ना /dev/disk2

    sudo dd if=/dev/disk2 of=~/Downloads/ubuntu-18.04-4.14-minimal-odroid-xu4-20180531-2.img bs=1m
    257949696 bytes transferred in 9.895572 secs (26067184 bytes/sec)
    
  2. से पढ़ना /dev/rdisk2

    $ sudo dd if=/dev/rdisk2 of=~/Downloads/ubuntu-18.04-4.14-minimal-odroid-xu4-20180531.img bs=1m
    877658112 bytes transferred in 10.021974 secs (87573377 bytes/sec)
    

2
2017-08-04 06:56





रिकॉर्ड के लिए, कम से कम मैकोज़ उच्च सिएरा में, / dev / disk / dev / rdisk से बहुत तेज प्रतीत होता है। या तो डीडी या डीड्रेस्यूक चलाना, मेरी थ्रूपुट तुलना एक चुंबकीय एचडी से एसएसडी में कॉपी करना 3.7 एमबीपीएस / dev / rdisk का उपयोग करके, और / dev / डिस्क का उपयोग करके 45 एमबीपीएस था। तो, मैकोज़ के बाद के संस्करणों पर, सर्वोत्तम प्रदर्शन के लिए / dev / rdisk के बजाय / dev / disk का उपयोग करना सबसे अच्छा हो सकता है।


1
2018-01-14 18:07



आंतरिक एसएसडी स्टोरेज से एक 4.6 जीबी रास्पियन-खिंचाव छवि को डीडी के साथ एक एसडी कार्ड में लिखते हुए और 1 एमबी / डीवी / rdisk के बीएस अभी भी देर से 2013 मैकबुक समर्थक मैकोज़ 10.13.2 पर / dev / डिस्क से अधिक तेज़ प्रदर्शन करता है। इसमें / dev / disk का उपयोग करके 27.16 मिनट और / dev / rdisk का उपयोग करके केवल 5.18 मिनट लग गए। - digitaladdictions
@ डिजीटलडैडिक्स ने हाल ही में नवीनतम मैकोज़ पर कुछ परीक्षण किए हैं: superuser.com/a/1346063/126537 - k06a