ডিডি / দেব / শূন্য থেকে / দেব / নাল… আসলে কী ঘটে


13

কমান্ডে কি হয়

sudo dd if=/dev/zero of=/dev/null bs=500M count=1. 

শূন্যরা আসলে কোথায় যায় এবং সাধারণভাবে কী ঘটে? গতিটি 905 এমবি / সেকেন্ড

আমি যদি রামডিস্ক করতে যাই তবে গতিটি কেবল 388 এমবি / সেকেন্ড। এবং আমি যদি ddআমার এইচডি ডি তে গতিটি কেবলমাত্র 63.2 এমবি / সেকেন্ড হয়


1
/dev/nullপড়ার ক্রিয়াকলাপ / সময় নির্ধারণের জন্য একটি ভাল গন্তব্য । /dev/zeroপরীক্ষামূলক / সময়সীমা একটি ভাল উৎস লেখ অপারেশন। একটি উত্সে এই উত্স এবং গন্তব্য একত্রিত করার খুব বেশি অর্থ হয় না। এমনকি এটি কোনও অর্থবহ ওভারহেড নম্বর সরবরাহ করে কিনা তাও নিশ্চিত নয়।
করাতাল

@ সাউডস্ট অন্য পথে, না?
জ্যামি

2
হ্যাঁ, @ সাউডস্ট, উপরের আপনার মন্তব্যটি অদ্ভুত (নতুনদের জন্য)। of = / dev / sda কারওর হার্ড ড্রাইভ পার্টিশন, সামগ্রী ইত্যাদি = = ~ / বিগফাইল.tmp এর ওভাররাইট করে দিতে পারে ... ব্যবহারের জন্য আরও ভাল উদাহরণ হতে পারে ...
কেভিন ট্রাস

2
আমি জানি আমি পার্টিতে বেশ দেরি করেছি, তবে যদি কেউ নিজেরাই এটি চেষ্টা করতে চায়: এই কমান্ডটি রুট হিসাবে চালানোর দরকার নেই, সুতরাং সুডোর কোনও প্রয়োজন নেই।
রোল শ্রোইভেন

@ জামি নাহ, এটি সঠিক উপায়।
শস্যশূক

উত্তর:


14

/dev/zeroপড়ার সময় শূন্য বাইটের অফুরন্ত স্ট্রিম সরবরাহ করে। এই ফাংশনটি কার্নেল দ্বারা সরবরাহ করা হয় এবং বরাদ্দ মেমরির প্রয়োজন হয় না। সমস্ত লেখক /dev/nullনিঃশব্দে বাদ দেওয়া হয়।

ফলস্বরূপ, যখন আপনি সঞ্চালন করেন dd, সিস্টেমটি শূন্য বাইটে 500 মেগাবাইট জেনারেট করে যা কেবল ফেলে দেওয়া হয়। একটি অস্থায়ী বাফার ব্যতীত, এই ক্রিয়াকলাপের আগে, সময় এবং পরে কোনও ডেটা সংরক্ষণ করা হয় না।

থেকে স্থানান্তর গতি /dev/zeroকরতে /dev/nullহলে আপনার প্রসেসর এবং প্রাসঙ্গিক সিস্টেম কলের গতি দ্বারা প্রাথমিকভাবে নির্ধারিত। (আপনার ক্ষেত্রে, বাফারটি 500 এমবি বড়, এবং তাই অপারেশনটি আপনার মেমরির গতিও পরীক্ষা করে))


7

আমি আপনার জন্য এই আদেশটি অনুবাদ করব:

dd if=/dev/zero of=/dev/null bs=500M count=1

ডুপ্লিকেট তথ্য ( dd) ইনপুট ফাইল (থেকে ifএর) /dev/zero(ভার্চুয়াল সীমাহীন সরবরাহ 0আউটপুট ফাইল (মধ্যে 'গুলি) ofএর) /dev/null(ভার্চুয়াল সিঙ্কহোল) 500M আকার (ব্লক ব্যবহার bs= ব্লক সাইজ) এবং এই (পুনরাবৃত্তি count) শুধু একবার ( 1)।

সাধারণভাবে, এই আদেশটি কেবল মেমরি এবং বাসের গতি পরিমাপ করা উচিত। তবে, আপনার যদি 500MB র্যাম না পাওয়া যায় তবে এটি ব্যর্থ হতে পারে। সুতরাং, এক অর্থে, এটি স্পষ্টভাবে বেঞ্চমার্ক করে যে কীভাবে আপনার ওএস বড় মেমরি খণ্ডগুলি বরাদ্দ করতে পারে।


যদি এটি মেমরির পরিমাপ করে তবে র‌্যামডিস্কে লেখা কীভাবে উল্লেখযোগ্যভাবে ধীর হয়?
এজিজেড

2
কারণ র‌্যামডিস্কটিকে এখনও একটি ফাইল সিস্টেমের জন্য ফর্ম্যাট করতে হবে যা কার্নেল ড্রাইভার দ্বারা রক্ষণাবেক্ষণ করতে হবে। এর অর্থ রামডিস্কে লেখার ক্ষেত্রে ইউজারস্পেস থেকে কার্নেল স্পেসে ডেটা অনুলিপি করার ওভারহেড থাকবে - ঠিক নিখরচায় নয়। / দেব / শূন্য বা / দেব / নাল সহ, এই ওভারহেড প্রায় শূন্য।
এমভিপি

আমি এর আগে "সদৃশ ডেটা" কখনও দেখিনি। আমি পুরানো সানোস ম্যান পৃষ্ঠাগুলিতে পড়ার কথা মনে করি যা ডিডি "কপি এবং রূপান্তর" (সিসি নেওয়া হয়েছিল) এর জন্য দাঁড়িয়ে।
ড্যান প্রিটস 21

5

/ dev / নাল একটি ব্ল্যাক হোল। এটি স্বাভাবিক লেখার ক্রিয়াকলাপ পরীক্ষা করার জন্য সঠিক নয় কারণ এটি সাধারণত কোনও ফাইল যেমন ডিস্কে লিখেনি। ডিস্কে মাথা লেখার পরিবর্তে, ডিভাইসে লেখার সাথে সাথে ডেটা তাত্ক্ষণিকভাবে ফেলে দেওয়া হয়, তাই এটি সর্বদা স্থানীয় স্থানীয় লেখার চেয়ে দ্রুত হবে।

/ দেব / শূন্য পাঠের জন্য একই। এটি থেকে পড়তে মাথা নড়াচড়া করার প্রয়োজন হয় না, এটি নাল অক্ষরের কেবল সীমাহীন সরবরাহ, তাই এটি সর্বদা কোনও স্থানীয় পঠনের চেয়ে দ্রুত পড়বে।

অন্য কথায়, এটি শূন্যতার মধ্যে পরীক্ষার মতো এবং সাধারণ স্থানীয় কী পড়বে এবং লিখতে হবে তার সঠিক চিত্র দেবে না।


রামও এতে জড়িত নেই আমি ধরে নিই ... তাহলে এই পরীক্ষাটি ... ঘড়ির গতি কী করে?
এজিজেড

1
  1. /dev/nullকোথাও নেই; এতে লিখিত তথ্য কেবল মুছে ফেলা হয়।

  2. আপনার র‌্যামডিস্কে এটি ব্যবহার করতে হবে এমন একটি ফাইল সিস্টেম রয়েছে। ddএকটি ফাইল সিস্টেম এন্ট্রি তৈরি করতে হবে এবং ফাইল সিস্টেমের নিয়ম অনুসরণ করে লিখতে হবে। এছাড়াও আপনার ওএস একই সাথে অন্যান্য জিনিসের জন্য আপনার স্মৃতি ব্যবহার করছে যাতে আপনার লেখার ক্রিয়াটি যা বাকী থাকে তা পায়।

  3. নন এসএসডি হার্ড ড্রাইভ কেবল সাধারণ ধীর তাই এটিও সঠিক is

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