হার্ড ড্রাইভে কী প্রসেস লিখছে তা সন্ধান করুন


31

আমার লেনোভো টি 400 এবং উবুন্টুতে, হার্ড ড্রাইভ লেখার জন্য আলো জ্বলতে থাকে। আমি ভাবছিলাম যে লিনাক্সে কি হার্ডড্রাইভের মধ্যে I / Oগুলি কী প্রক্রিয়াগুলি করছে তা সন্ধান করা সম্ভব? ঠিক এর মতো top, আপনি কী প্রসেসগুলি সর্বাধিক সিপিইউ এবং মেমরি ব্যবহার করছেন তা জানতে পারবেন।

উত্তর:


41

আপনি যা চান তার জন্য আইটপ একটি ভাল সরঞ্জাম। এটির মাধ্যমে ডিস্ক রিড, ডিস্ক রাইট, সোয়াপিন এবং আইও (সামগ্রিক শতাংশ) এর যে কোনও একটিতে I / O এর সঞ্চিত পরিমাণ প্রদর্শন করার অনুমতি দেয়। এটি একটি নিফটি ইন্টারফেসের মাধ্যমে:

  • আপনি কেবল aকীবোর্ডে টিপুন , এবং এটি শীর্ষে হাংরিস্ট প্রসেসগুলি সাজিয়ে তুলবে।
  • অর্ডার বিপরীতে, আপনি কেবল টিপুন r
  • আপনি যদি অন্য কলম্ব অনুসারে বাছাই করতে চান তবে আপনি কেবল বাম / ডান কী টিপুন।

মত top, উপস্থাপনা বরং ব্যস্ত। আরেকটি বিষয় হ'ল এতে অবিচ্ছিন্ন বিকল্পগুলি নেই যা top(যেমন আমি আগ্রহী না এমন কলামগুলির মধ্যে কোনওটি লুকিয়ে রাখতে পছন্দ করতে পারি না) তবে তার নির্দিষ্ট উদ্দেশ্যটির জন্য সরঞ্জামটি যথেষ্ট ভাল।


3
ল্যাপটপে ব্যাটারি কী ব্যবহার করছে তা পাওয়ার জন্য পাওয়ারটপও দরকারী; আইটপটি এখনও ডিস্ক অ্যাক্সেসগুলির সন্ধানের জন্য প্রথম স্থান।
গিলস

এক পাস করতে পারেন -o( --only) প্রকৃতপক্ষে করছেন না কোনো ইনপুট / আউটপুট সমস্ত কর্ম ফিল্টার করার জন্য। এটি তালিকাটিকে কম ভিড় করে তোলে
মার্সিন ওরোলোস্কি

15

আপনি lsof( man lsof ) ব্যবহার করতে পারেন । নিম্নলিখিত লেখার জন্য উন্মুক্ত সমস্ত ফাইলের একটি তালিকা ফিরিয়ে দেবে:

lsof | grep -e "[[:digit:]]\+w"

1
কোন ফাইলগুলি খোলা আছে এবং কোন ফাইলগুলি আসলে অ্যাক্সেস করা হচ্ছে তা দুটি আলাদা জিনিস।
psusi

@psusi লেখার জন্য একটি উন্মুক্ত ফাইল খুব সম্ভবত "অ্যাক্সেস করা" is এছাড়াও, এর ম্যানপেজের মাধ্যমে lsof শিখিয়ে আরও তথ্য পুনরুদ্ধার করা যেতে পারে।
জেমস সামার্স

5
লেখার জন্য খোলা ফাইলগুলি কোনও সময়ে লিখিত হতে পারে তবে এখনই অগত্যা নয়। অনেকগুলি ফাইল খোলা রাখা হয় তবে খুব কমই লেখা থাকে। অন্যদিকে, লিখিত হওয়া ফাইলগুলি দ্রুত খোলা এবং বন্ধ হয়ে যেতে পারে এবং তাই lsof এ প্রদর্শিত হবে না। যে কোনও উপায়ে, এই মুহূর্তে ডিস্কে আসলে কী প্রক্রিয়াটি লিখছে তা নির্ধারণ করা খুব সামান্যই।
psusi

wকরতে উপরে হুকুম থেকে আপনি ফাইল এমন একটি লেখার জন্য খোলা থাকে জন্য grep শুধুমাত্র । ( ) লেখার জন্য এবং পড়ার জন্য খোলা ফাইলগুলি uপ্রদর্শিত হবে না, তবে সেগুলিতে এতে লিখিতও হতে পারে। আপনি যদি লেখার জন্য এবং পড়ার জন্য + লেখার জন্য ফাইলগুলি দেখতে দেখতে চান তবে আমি বিশ্বাস করি এটিই আপনি খুঁজছেন:lsof | grep -e "[[:digit:]]\+[wu]\{1\}"
মার্টিজেন

1
@ মার্তিজন আপনি অন্য কলামগুলির সাথে grep -e**w**মিল এড়াতে ব্যবহার করতে [0-9]\+[wu]

2

ব্যবহার strace


6
এটি আপনাকে একটি নির্দিষ্ট প্রক্রিয়া কী করছে তা জানাতে চলেছে, কোন প্রক্রিয়াটি কিছু করছে তা খুঁজে পেতে সহায়তা করবে না।
গিলস

2

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

এখন পর্যন্ত iotopসেরা সামগ্রিক সমাধান। নিম্নলিখিত কমান্ডটি আপনাকে ডিস্ক ব্যবহার করে সমস্ত প্রক্রিয়াটির একটি রিয়েল-টাইম আউটপুট দেয়।

iotop -bktoqqq -d .5

where: -b     is batch mode
       -k     is kilobytes/s
       -t     adds timestamp
       -o     only show processes or threads actually doing I/O
       -qqq   removes output headers
       -d .5  updates every .5 seconds

আপনার প্রসেস আইডি একবার হয়ে গেলে আপনি ফাইলগুলিও খুঁজে পেতে পারেন

 lsof -p $PID

1
উপরের (খুব পুরানো) উত্তরগুলির থেকে এই উত্তরটি কীভাবে আলাদা? আপনার উত্তরটি আগের উত্তরগুলির থেকে কীভাবে আলাদা হয় তা বোঝাতে কোনও পুরানো প্রশ্নের উত্তর দেওয়ার সময় ভাল is এটি পাঠকদের উত্তরের মধ্যে বাছাই করতে সহায়তা করে।
স্টিফেন রাউচ

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