আমি এই কমান্ডটি ব্যবহার করে কিছু লিনাক্স 4.x ওএসের একটি হার্ড ড্রাইভ খালি করছি:
sudo sh -c 'pv -pterb /dev/zero > /dev/sda'
এবং আমি আর একটি tty খুললাম এবং শুরু sudo htop
এবং লক্ষ্য করেছি:
PID USER PRI NI CPU% RES SHR IO_RBYTES IO_WBYTES S TIME+ Command
4598 root 20 0 15.5 1820 1596 4096 17223823 D 1:14.11 pv -pterb /dev/zero
এর মানটি IO_WBYTES
বেশ স্বাভাবিক বলে মনে হয় তবে IO_RBYTES
এটি 4 কিবিতে থাকে এবং কখনও পরিবর্তন হয় না।
আমি উদাহরণস্বরূপ আরও কয়েকটি প্রোগ্রাম চালিয়েছি
dd if=/dev/zero of=/dev/zero
cat /dev/zero > /dev/zero
এবং তারা কেউই প্রচুর পরিমাণে IO_RBYTES
বা উত্পাদন করে না দেখে অবাক হয়েছিল IO_WBYTES
।
আমি মনে করি এটি কোনও প্রোগ্রামের সাথে সুনির্দিষ্ট নয়, তবে কেন আমি / ও বাইট হিসাবে গণনা করতে পাঠ করি /dev/zero
এবং /dev/{zero,null}
লিখি না?
/dev/null
এই জাতীয় হার্ডওয়ারের সাথে ইন্টারফেসিং শেষ করবেন না এবং I / O বাসগুলি আটকে রাখবেন না। চূড়ান্তভাবে নেওয়া; আমি / হে মেমরি থেকে / পড়তে / লিখতে হয়? অবশ্যই, এই বিষয়গুলির জন্য কোনও কঠোর চিত্রায়ন নেই এবং আপনি এই বিষয়গুলিতে কোন দৃষ্টিকোণটি গ্রহণ করেন এবং এই দৃষ্টিভঙ্গিটি আপনার কাছে কতটা কার্যকর তা নির্ভর করে all
/dev/{null,zero}
(যা সাধারণত কোনও বাধা নয়) তুলনায় আসল হার্ডওয়্যারের (যা খুব ভাল একটি বাধা হতে পারে) থেকে I / O পরিসংখ্যানগুলিতে অনেক বেশি আগ্রহী হব । যদিও এটি কেবল আমার দৃষ্টিভঙ্গি :)
read(2)
এবং write(2)
আই / ও হিসাবে গণনা করা হয় যা এটি নিজস্ব অর্থে অত্যন্ত যুক্তিসঙ্গত।