ক্যাশে না পড়তে বা ডিডি না করার জন্য জোর করে ডিডি করুন


22

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

আমি এটিকে ডিডি-তে সংকুচিত করেছিলাম যখন আমি একটি প্রাথমিক ডিডি করি, ডেটা দেখুন, ক্যাশেটি ফ্লাশ করার জন্য আমার সিস্টেমটি পুনরায় চালু করুন, মুছে ফেলুন এবং তারপরে আবার ডিডি চালালেন এটি সমস্ত জিরো নিয়ে এসেছিল।

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

আমি জিএনইউ ম্যানেজটিতে পড়েছি যে ডিডি ইফলাগ অপ্টকে একটি নোকাসা পতাকা সহ সমর্থন করে, তবে ব্যস্তবক্স সেই বিকল্পটি সমর্থন করে না তাই প্রশ্নটি বাইরে।

আমার প্রশ্ন হ'ল আমি কীভাবে ডিডিকে ক্যাশে না দিয়ে আবার ডিস্ক থেকে পড়তে বাধ্য করতে পারি?


2
সম্ভাব্য নিটপিকিং, কিন্তু ... ডিডি এটি ক্যাশে করে না। কার্নেল / ডিস্ক সিস্টেমটি করে। এই কারণেই ফ্রস্টচটজ কমান্ড (যা ডিডিতে প্রেরণ পায় না) কাজ করে।
হেনেস

আমার এটি দরকার ড্রাইভটি সজাগ হওয়ার অপেক্ষা না করে জাগ্রত রাখার জন্য।
কখনই মাইন্ড 9

উত্তর:


11

আপনি চেষ্টা করতে পারেন

sync
echo 3 > /proc/sys/vm/drop_caches

যা সব ধরণের ক্যাশে ড্রপ করে।

বিস্তারিত জানার জন্য দেখুন /usr/src/linux/Documentation/sysctl/vm.txtউপর drop_caches

(দ্রষ্টব্য: প্রশ্নটি ব্যস্তবক্স ডিডি সম্পর্কে ছিল যা এখনও তারিখটি সমর্থন করে না iflag=direct))


1
কেবল একটি নোট: এটি কেবল লিনাক্সের সাথে কাজ করে। এছাড়াও, /procলিনাক্সের কিছু এম্বেড কনফিগারেশনে ফাইল সিস্টেম অক্ষম করা আছে।

@ ইভানটিটেলম্যান ঠিক আছে, যদিও এটি এখানে কাজ করছে বলে মনে হচ্ছে, তাই আমি উত্তরটি উত্সাহিত করতে এবং গ্রহণ করতে চলেছি।
উত্সাহিত

2
আমি ভাবলাম এটি একবারে প্রভাব আছে কিনা, বা চলমান আছে। মতে এই , প্রভাব একটি একবার-বন্ধ।
ক্রেগ ম্যাককুইন

এটি ক্যাশেগুলি ফেলে দেবে, তবে ddপ্রচুর পরিমাণে ডেটা স্থানান্তরিত করলে প্রক্রিয়াটিতে ট্র্যাশ হওয়া থেকে বাঁচানোর জন্য কিছুই করে না ।
জানু হুডেক

9

@ সেন্ডমোরইনফো এর উত্তরের ভিত্তিতে:

dd if=/dev/device iflag=direct bs=1M

এটি পঠন-ক্যাশে প্রভাবিত করে না।


এটি কাজ করে, তবে কী কী পড়ছে তাও ক্যাশে করে না ?.
কখনই মাইন্ড 9

1
সঠিক। এটাই লক্ষ্য।
ওলে টাঞ্জ

8

ডাইরেক্ট আই / ও (ওপেন মোড O_DIRECT) কাজ করা উচিত তবে আপনার কার্নেল এবং / অথবা ddএটি সমর্থন নাও করতে পারে।


4
এটি সঠিক উত্তর: ডিডি if = / dev / ডিভাইস iflag = সরাসরি বিএস = 1 এম; এটি পঠন-ক্যাশে প্রভাবিত করে না।
ওলে টেঞ্জ

1
@ ওলেট্যাঞ্জ: আপনি তখন নিজের উত্তর হিসাবে পোস্ট করেন না কেন? এটি "ডিডি নো ক্যাশে" এর জন্য গুগলে # 1 টি হিট এবং আসল সঠিক উত্তরটি কিছু অ-গৃহীত উত্তরের মন্তব্যে ...
mic_e

5

Iflag = প্রত্যুত্তর উত্তর; একটি অগ্রগতি বার প্রদান:

dd iflag=direct if=~/source.iso | pv | dd oflag=direct of=/dev/sdb bs=8M

Iflag / oflag ছাড়া pv রিপোর্ট করে এটি শেষ হয়েছে এবং তারপরে দেখতে এটি স্তব্ধ হয়ে গেছে; তবে ডিভাইসে থাকা ডিডি এখনও ক্যাশে কাজ করছে।

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