ম্যাক ওএস এক্সে "/ dev / rdisk" কেন "/ dev / ডিস্ক" এর চেয়ে প্রায় 20 গুণ বেশি দ্রুত?


129

রাসবেরি পাই ডকুমেন্টেশন অনুসারে, আপনি আপনার ওএসকে / ডিভ / ডিস্ক বা / দেব / আরডিস্ক দিয়ে কোনও ফ্ল্যাশ কার্ডে লোড করতে পারেন।

rdisk এর অর্থ কাঁচা ডিস্ক।

/ dev / ডিস্ক একটি ব্লক স্তরের ডিভাইস, কেন rdisk 20 গুণ দ্রুত হবে?

ম্যাক ওএসএক্স ব্যবহার করা হচ্ছে

দ্রষ্টব্য: ওএস এক্সে প্রতিটি ডিস্কে / dev: / dev / ডিস্ক # তে দুটি পথের উল্লেখ থাকতে পারে যা একটি বাফার ডিভাইস, যার অর্থ কোনও প্রেরণ করা অতিরিক্ত প্রসেসিংয়ের মধ্য দিয়ে যায়। / dev / rdisk # হল একটি কাঁচা পথ, যা ডিডি প্রোগ্রামটি ব্যবহার করার সময় অনেক দ্রুত এবং পুরোপুরি ঠিক OK একটি ক্লাস 4 এসডি কার্ডে পার্থক্যটি rdisk পাথ ব্যবহার করে প্রায় 20 গুণ দ্রুত হয়।


3
পার্শ্ব নোট হিসাবে, আমি একটি পরীক্ষা চালিয়েছি এবং rdisk আসলে অনেক বেশি সময় নিয়েছিল।
স্পুডার

4
অন্য পক্ষের নোট হিসাবে, আমি অনুভব করেছি যে আমাকে তখনও পরীক্ষা করতে হবে এবং দেখতে পেলাম যে একটি rdisk অনুলিপি (ডিডি মাধ্যমে) ডিস্ক কাউন্টার পার্ট ব্যবহার করার চেয়ে প্রায় 4 গুণ বেশি দ্রুত ছিল।
ট্র্যাভিস গ্রিগস

ম্যাক ওএসএক্স 10.9.1 (ম্যাকবুক প্রো 15 ইঞ্চি, প্রথম দিকে 2011)
ট্র্যাভিস গ্রিগস 19

2
আমি ভেবেছিলাম যে "rdisk" হ'ল আমি যে রাস্পবেরি পাই এসডি কার্ড চিত্রটি পড়ছিলাম তার জন্য কিছু নির্দেশাবলীতে একটি টাইপো। আরও তদন্তের পরে আমি পার্থক্যটি গুগল করেছিলাম এবং এই থ্রেডটি পেয়েছি। আমার ক্ষেত্রে দেখা যাচ্ছে যে কোনও SD কার্ডে / dev / ডিস্কের পরিবর্তে / dev / rdisk ব্যবহার করে একটি 1.7 গিগাবাইট চিত্র লিখতে 13 গুণ বেশি দ্রুত ছিল! ম্যাকবুক প্রো রেটিনা 13 ", 2015 এর প্রথম দিকে মডেল
tobias.mcnulty

2
অন্য একটি সাইডেনোট হিসাবে, আমি সবেমাত্র আমার নতুন ক্রয় করা স্যান্ডিস্ক এক্সট্রিম প্রো মাইক্রোএসডি কার্ডে একটি উবুন্টু এআরএম চিত্রটি করেছি d / dev / ডিস্ক 1 লিখেছেন ২.৩ এমবি / সেকেন্ডে, যখন / ডিভ / আরডিস্ক ১ লিখেছেন .7৩..7 এমবি / সে, অথবা ৩.4.৪ বার দ্রুত গতিতে।
ড্যানিয়েলস্মেডেগার্ডবাউস

উত্তর:


93

থেকে man hdiutil:

/ dev / rdisk নোডগুলি চরিত্র-বিশেষ ডিভাইস, তবে BSD অর্থে "কাঁচা" এবং ব্লক-অ্যালাইন্টড I / O জোর করে। এগুলি বাফার ক্যাশের চেয়ে শারীরিক ডিস্কের কাছাকাছি। অন্যদিকে / ডিভ / ডিস্ক নোডগুলি ব্লফ-বিশেষ ডিভাইসগুলি বাফার করে এবং প্রাথমিকভাবে কার্নেলের ফাইল সিস্টেম কোড ব্যবহার করে।

সাধারণ ব্যক্তির শর্তাবলী /dev/rdiskপ্রায় সরাসরি ডিস্কে /dev/diskযায় এবং আরও দীর্ঘ ব্যয়বহুল রুট দিয়ে যায়


14
আপনি যখন ডিস্ক ব্যবহার করতে পারবেন তখন ডিস্ক কেন ব্যবহার করবেন?
ব্যবহারকারী 39131339

20
@ ব্যবহারকারী 391339 কারণ ক্যাশিং এখনও একটি পছন্দসই জিনিস thing আপনার অপসারণযোগ্য মিডিয়া রয়েছে এমন ক্ষেত্রে, আপনি যত তাড়াতাড়ি সম্ভব শারীরিক ডিভাইসে ডেটা পেতে চান, কারণ আপনি অন্য কোনও শারীরিক অবস্থানের ডেটা চান। অভ্যন্তরীণ হার্ড ড্রাইভগুলি একটি আলাদা গল্প। আপনি সাধারণত এগুলি চারপাশে রাখেন না, সুতরাং যখন ডিভাইসে ডেটা আসলে লেখা হয় তখন আপনি যত্নশীল হন না। আপনি যখন ডিভাইসে লেখা / পড়ার জন্য ডেটা ক্যাশে করেন এটি ডিস্কে লেখার জন্য আরও ব্যয়বহুল উপায়, তবে আপনার প্রোগ্রামগুলি এখনও দ্রুততর হয়, যেহেতু তারা লিখতে চান এমন সমস্ত ডেটা ডিস্কে লেখা না হওয়া পর্যন্ত তাদের অপেক্ষা করার দরকার নেই।
ক্রিজ্জেফিটজ

@ ডান, পুনরায় "বাহিনী"; অর্থ?
পেসিয়ার 0

নিশ্চিত না ক্রিটের ব্যাখ্যা আমার পক্ষে কাজ করে। আমার কেসটি একটি বৃহত বাহ্যিক ডিস্ক ওয়ান-টাইম স্ক্যানিং করতে চেয়ে কিছুটা বিশেষ হতে পারে এবং কোন পদ্ধতিটি এর জন্য আরও ভাল কাজ করে তা আমি নিশ্চিত নই, তবে অন্যথায় আমি এখনও সাধারণ ব্যবহারের সাথে ভাল আছি এবং এটি সাধারণভাবে বের করার জন্য অপেক্ষা করছি I অনুশীলন করা. উইন্ডোজ যাইহোক আমি সবসময় 'দ্রুত আনপ্লাগ' প্রোফাইলটিকে পছন্দ করেছি যা আমি মিরর ম্যাকের আরও 'কাঁচা' মোডের মিরর অনুমান করি কারণ এটি অপ্রত্যাশিত সংযোগ হ্রাস ইভেন্টগুলিতে কম ফাইল সিস্টেমের দুর্নীতির বিজ্ঞাপন দেয়।
বিশ্লেষণ

96

গৃহীত উত্তরটি সঠিক, তবে এটি খুব বেশি বিশদে যায় না।

/dev/diskএবং /dev/rdiskযখন আপনি ব্যবহারকারীর স্থান থেকে এগুলি অ্যাক্সেস করেন তখন এর মধ্যে অন্যতম মূল পার্থক্য হ'ল তা /dev/diskহল বাফার। /dev/diskআই / ওটিকে 4KB খণ্ডে বিভক্ত করার জন্য পড়ার / লেখার পথটি এটি বাফার ক্যাশে পড়ে এবং তারপরে ব্যবহারকারী স্পেস বাফারে অনুলিপি করে (এবং তারপরে পরবর্তী 4KB পড়ার বিষয়টি জারি করে ...)। এটি দুর্দান্ত যে আপনি স্বাক্ষরবিহীন পড়া এবং লেখাগুলি করতে পারেন, এবং এটি কেবল কার্যকর। বিপরীতে, /dev/rdiskমূলত ডিভাইসে সরাসরি পড়া বা লেখার জন্য পাস করে যার অর্থ I / O এর শুরু এবং শেষের ক্ষেত্রের সীমানায় প্রান্তিককরণ করা দরকার।

আপনি যদি এক থেকে এক সেক্টরের চেয়ে বড় পড়েন বা লিখেন তবে /dev/rdiskসেই অনুরোধটি সরাসরি হয়ে যাবে। নীচের স্তরগুলি এটিকে ভেঙে ফেলতে পারে (যেমন, ইউএসবি প্রোটোকলটিতে সর্বাধিক পেওলড আকারের কারণে ইউএসবি এটি 128 কেবি টুকরো টুকরো করে দেয়) তবে আপনি সাধারণত বড় এবং আরও কার্যকর আই / ওএস পেতে পারেন। যখন স্ট্রিমিংয়ের মাধ্যমে dd, 128KB থেকে 1MB এর মতো বর্তমান অ-RAID হার্ডওয়্যারটির নিকটতম অনুকূল পারফরম্যান্স পেতে বেশ ভাল মাপ দেয়।

/dev/diskপড়া এবং লেখার পথ দ্বারা চালিত ক্যাচিংটি খুব সাধারণ এবং প্রায় মস্তিষ্কের মৃত। এটি কঠোরভাবে প্রয়োজনীয় না হলেও ক্যাশে করে; ডিভাইস মেমরি মানচিত্র এবং সরাসরি আপনার অ্যাপ্লিকেশন বাফার মধ্যে স্থানান্তর করতে পারে যদি পছন্দ। এটি ছোট (4KB) আই / ওস করে, যা প্রতি-I / O ওভারহেডের দিকে পরিচালিত করে। এটি সামনে কোনও পঠন বা পিছনে লেখায় না।


6

দেখে মনে হয় /dev/diskএবং /dev/rdiskএইচডিডি এবং এসএসডিগুলির জন্য আলাদা কাজ করে। ওয়ান্ডা এটি মাইক্রোএসডি কার্ডের জন্য পরীক্ষা করেছে। সানডিস্ক আল্ট্রা মাইক্রোএসডি 64 জিবি ( https://www.amazon.com/gp/product/B073JYVKNX ) তে সবেমাত্র 2GB ডিস্ক চিত্র লিখেছেন ।

: বারবার পরীক্ষার বেশ কয়েকবার, কিন্তু ফলাফল স্থিতিশীল ছিল 17MB / সেকেন্ড জন্য /dev/diskবনাম 20MB / সেকেন্ড জন্য /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

আমি জানি যে এটি একটি পুরানো থ্রেড, তবে অন্যান্য লোকেরা আমি যা চেষ্টা করেছি তার গতিবেগের বিষয়ে আগ্রহী হতে পারে। আমি আমার ম্যাকবুক প্রো 13 "রেটিনা (সিলিকন পাওয়ার 1 টিবি এসএসডি সহ) একটি বহিরাগত ইউএসবি 3.0 2.5" হার্ড ডিস্ক ড্রাইভের মধ্যে ম্যাকওস এবং বুটক্যাম্প পার্টিশন ক্যাপচার করতে চাইলে আমার অভ্যন্তরীণ এসএসডি ব্যাকআপ করতে চাই। আমার প্রাথমিক কমান্ড লাইনটি ছিল:

sudo dd if=/dev/disk0 of=/dev/disk2 bs=1m

ফলাফলগুলি 31.3 মেগাবাইট / সেকেন্ডের অনুলিপি ছিল। আমার অপেক্ষায় থাকার জন্য এটি খুব দীর্ঘ ছিল। সুতরাং, দ্বিতীয় প্রচেষ্টায় কমান্ড লাইনটি ছিল:

sudo dd if=/dev/rdisk0 of=/dev/rdisk2 bs=1m

প্রায় 98.4 এমবি / সেকেন্ডে উল্লেখযোগ্য পরিমাণে গতি বাড়ানোর /dev/rdiskপরিবর্তে ব্যবহার করা /dev/disk! তবে এটি আরও ভাল হয় better সুতরাং, তৃতীয় প্রয়াসের জন্য, আমি এই কমান্ড লাইনটি ব্যবহার করেছি:

sudo dd if=/dev/rdisk0 of=/dev/rdisk2 bs=1m conv=sparse

স্পার্স অপশনটি ডিডিকে বলে যে ইনপুটটিতে সমস্ত 0 এস আউটপুট ব্লকগুলিতে লেখার বিষয়ে বিরক্ত না করা। কী দুর্দান্ত এটি হ'ল ডিস্কের "পূর্ণ" অঞ্চলের মাঝখানে থাকা অবস্থায়ও আপনি যা ভাবেন তার চেয়ে তত দ্রুত গতি পায়। যে কোনও ড্রাইভে পূর্ণ নয়, আপনার কাছে 0 ডি-এর বিশাল অংশ থাকবে, আরও দ্রুত গতিসম্পন্ন ডিডি করুন। এখনও অবধি, কমপক্ষে, ডিডি আমার হার্ড ডিস্কের তাত্ত্বিক স্থানান্তর গতিতে প্রায় চলমান: 116.4 এমবি / সেকেন্ড এবং এটি এখনও এত বড় ফাঁকা জায়গায় পৌঁছায় না।

এই বিকল্পগুলি ব্যবহার করে দেখুন - তারা কাজ করে! দয়া করে নোট করুন: সাবধানে পরিবর্তন if=এবং  of=সঠিকভাবে (ম্যাকের জন্য) তালিকাভুক্ত সঠিক ড্রাইভগুলিকে নির্দেশ করতে:

diskutil list

1
conv=sparseআপনি ফাইল অনুলিপি করার সময় দুর্দান্ত    আমি উদ্বিগ্ন যে পুরো ডিস্ক, একটি পার্টিশন বা একটি  ফাইল সিস্টেম অনুলিপি করার সময় এটি দুর্নীতি প্রবর্তন করতে পারে , যদি না আপনি 100% নিশ্চিততার সাথে জানেন যে গন্তব্য ডিস্কে শূন্য ছাড়া কিছুই নেই।
জি ম্যান

1

রেকর্ডের জন্য, ম্যাকোস হাই সিয়েরায় কমপক্ষে, / ডিভ / ডিস্ক / দেব / আরডিস্কের চেয়ে অনেক দ্রুত গতিতে দেখা যায়। ডিডি বা ডিড্রেসকিউ চলমান, আমার থ্রিপুট তুলনাটি চৌম্বকীয় এইচডি থেকে কোনও এসএসডি-তে অনুলিপি করা হয়েছিল / dev / rdisk ব্যবহার করে 7.7 এমবিপিএস এবং / ডিভ / ডিস্ক ব্যবহার করে ৪৫ এমবিপিএস। সুতরাং, ম্যাকোসের পরবর্তী সংস্করণগুলিতে, সেরা পারফরম্যান্সের জন্য / dev / rdisk এর পরিবর্তে / dev / ডিস্ক ব্যবহার করা ভাল।


2
অভ্যন্তরীণ এসএসডি স্টোরেজ থেকে ডিডি এবং 1 এমবি / ডিভ / আরডিস্কের বিএস সহ একটি এসডি কার্ডে একটি 4.6 গিগাবাইটের রাস্পিয়ান-প্রসারিত চিত্র লেখার সময় এখনও 2013 সালের ম্যাকবুক প্রো চলমান ম্যাকোএস 10.13.2-তে / ডিভ / ডিস্কের চেয়ে অনেক বেশি দ্রুত সম্পাদন করে। এটি / dev / ডিস্ক ব্যবহার করে 27.16 মিনিট এবং / dev / rdisk ব্যবহার করে মাত্র 5.18 মিনিট সময় নেয়।
ডিজিটালডিকশনগুলি

@ ডিজিটাল্ডডিকশনগুলি সদ্য সাম্প্রতিক ম্যাকোস-এর উপর কয়েকটি পরীক্ষা করেছে: superuser.com/a/1346063/126537
k06a

0

আমি মনে করি বিতর্ক করার আগে কোন পাথ নোডটি দ্রুত বা সিরিয়াল পরীক্ষায় ডুব দেয়। আমাদের অন্যান্য বিষয়গুলি বিবেচনা করা উচিত যা চূড়ান্ত পঠন / লেখার গতি নাটকীয়ভাবে প্রভাবিত করবে।

মাইক্রো এসডি কার্ড স্পেক, ক্লাস 4/10 / এইচসি আমি ... এসডি কার্ড রিডার চিপ এবং ইন্টারফেস, ইউএসবি 1.1 / 2.0 / 3.0 / 3.1 ওএস মোট স্মৃতি / ফ্রি মেমরি, ওএস লোড, ওএস হার্ডডিস্ক টাইপ, এইচডিডি / এসএসডি, এইচডিডি স্পিন গতি এবং ক্যাশের আকার, এসএসডি আকার / ক্যাশে / ফ্রি স্পেস / ওএস হার্ডডিস্ক ইন্টারফেস, আতা / সাতা / এসটাটা,

যদি কোনও ফ্যাক্টর বাধা হয়ে দাঁড়ায় তবে আমরা ভুল উপসংহারে পৌঁছে যাব।

এখানে আমার ফলাফল: osx 10.12.6, এসএসডি,

ইউএসবি 2.0 কার্ডের মাধ্যমে মাইক্রোএসডি 16 জি পড়ুন এবং ইউএসবি 3.0 দ্বারা বাহ্যিক 3.5 ইঞ্চি এইচডিডি লিখুন,

15193+1 records in
15193+1 records out
15931539456 bytes transferred in 1423.067033 secs (11195214 bytes/sec)

অভ্যন্তরীণ কার্ড পাঠের মাধ্যমে মাইক্রোএসডি 32 জি লিখুন এবং ডেটা উত্সটি ইউএসবি 3.0 দ্বারা বাইরের 3.5 ইঞ্চি এইচডিডি,

0+253945 records in
0+253945 records out
15931539456 bytes transferred in 440.093686 secs (36200336 bytes/sec)

আপনি দেখতে পাবেন, গতি লিখুন> পড়ার গতি !!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.