কোনও প্রোগ্রামের ডিস্ক আই / ও ব্যবহার পরিমাপ করা


12

time প্রদত্ত কমান্ডটি কত CPU সময় নেয় তা নির্ধারণ করতে চাইলে আপনি একটি উজ্জ্বল কমান্ড command

আমি অনুরূপ কিছু সন্ধান করছি যা প্রোগ্রামের আই / ও ডিস্ক এবং যে কোনও শিশুদের পরিমাপ করতে পারে। প্রাথমিকভাবে এটি ক্যাশ হওয়া আই / ও এর মধ্যে পার্থক্য করা উচিত (এবং ফলে ডিস্কটি কাটেনি) এবং আই / ও যে ক্যাশে ছিল না।

সুতরাং আমি করতে চাই:

iomeassure my_program my_args

এবং এর মতো আউটপুট পান:

Cached read: 10233303 Bytes
Cached write: 33303 Bytes  # This was probably a tmp file that was erased before making it to the disk
Non-cached read: 200002020 Bytes
Non-cached write: 202020 Bytes

আমি দিকে তাকিয়ে আছে vmstat, iostatআর sar, কিন্তু এই কেউই একটি একক প্রক্রিয়া এ খুঁজছেন। পরিবর্তে তারা পুরো সিস্টেম তাকান।

আমি তাকিয়েছি iotop, কিন্তু এটি আমাকে কেবল এই তাত্ক্ষণিকভাবে একটি ভিউ দেয়।

--- সম্পাদনা ---

স্ন্যাপের উত্তর কাছাকাছি মনে হচ্ছে

'ফাইল সিস্টেম ইনপুটস:' হ'ল 512-বাইট ব্লকে অ-ক্যাশেড পঠন।

'ফাইল সিস্টেম আউটপুটস:' হ'ল 512-বাইট ব্লকে ক্যাশে লেখা।

আপনি এর সাথে ক্যাশেটি খালি জোর করতে পারবেন:

sync ; echo 3 | sudo tee /proc/sys/vm/drop_caches >/dev/null

আমি এটি দিয়ে পরীক্ষা করেছি:

 seq 10000000 > seq
 /usr/bin/time -v bash -c 'perl -e "open(G,\">f\"); print G <>;close G; unlink \"f\";" seq'

উত্তর:


9

আপনি কোন অপারেটিং সিস্টেম ব্যবহার করেন তা নির্দিষ্ট করে নেই।

লিনাক্স

time foo(সাধারণত) অন্তর্নির্মিত শেলটি ব্যবহার করার পরিবর্তে আপনি বাহ্যিক কমান্ডটি চেষ্টা করতে পারেন /usr/bin/time foo। এটি কিছু অতিরিক্ত তথ্য দেয় যেমন ফাইল সিস্টেমের ইনপুট এবং আউটপুটগুলির সংখ্যা (তবে ক্যাশে হিট বা বাইট পরিমাণ সম্পর্কে কোনও তথ্য নেই)। দেখুন man timeএবং man getrusageআরও নির্দেশাবলী জন্য।

নোট করুন যে এই বৈশিষ্ট্যের জন্য লিনাক্স কার্নেল সংস্করণ ২.6.২২ বা আরও নতুন প্রয়োজন।

FreeBSD 'র

ব্যবহার /usr/bin/time -l foo। এটি ইনপুট এবং আউটপুটগুলির সংখ্যা দেয়। দেখুন man timeএবং man getrusageআরও নির্দেশাবলী জন্য।

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