প্রক্রিয়া অনুযায়ী ডিস্কের আই / ও ব্যবহার কীভাবে পরীক্ষা করা যায়


45

আমার একটি স্টলিং লিনাক্স সিস্টেম নিয়ে সমস্যা আছে এবং আমি ডিস্ক আই / ও ব্যবহারের গড় শিখর, গড় সার্ভিসের সময় এবং সিস্টেম স্টলের সময় অপেক্ষা করার জন্য গড় অপেক্ষা করার জন্য সিস্টেস্ট / সার খুঁজে পেয়েছি।

পরের বারের মতো ঘটার পরে কোন প্রক্রিয়া এই শিখরগুলি সৃষ্টি করছে তা আমি কীভাবে নির্ধারণ করতে পারি?
সারের সাথে কি করা সম্ভব (যেমন: আমি কী অ্যালরেডি রেকর্ডকৃত সর ফাইলগুলি থেকে এই তথ্যটি পেতে পারি?

"সর-ডি" এর আউটপুট, রাত 12.58-13.01 টার দিকে সিস্টেম স্টলটি ঘটেছিল।

12:40:01          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
12:40:01       dev8-0     11.57      0.11    710.08     61.36      0.01      0.97      0.37      0.43
12:45:01       dev8-0     13.36      0.00    972.93     72.82      0.01      1.00      0.32      0.43
12:50:01       dev8-0     13.55      0.03    616.56     45.49      0.01      0.70      0.35      0.47
12:55:01       dev8-0     13.99      0.08    917.00     65.55      0.01      0.86      0.37      0.52
13:01:02       dev8-0      6.28      0.00    400.53     63.81      0.89    141.87    141.12     88.59
13:05:01       dev8-0     22.75      0.03    932.13     40.97      0.01      0.65      0.27      0.62
13:10:01       dev8-0     13.11      0.00    634.55     48.42      0.01      0.71      0.38      0.50

এটি গতকাল শুরু হওয়া একটি থ্রেডের ফলো-আপ প্রশ্ন: হঠাৎ লোড এবং ডিস্ক ব্লক অপেক্ষার প্রান্তে , আমি আশা করি এটি ঠিক আছে যে আমি এখনও সমস্যার সমাধান করতে সক্ষম না হওয়ায় বিষয়টি নিয়ে একটি নতুন বিষয় / প্রশ্ন তৈরি করেছি।


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



উত্তর:


45

আপনি যদি পরবর্তী শিখর ব্যবহারের সময়কালের জন্য যথেষ্ট ভাগ্যবান হন তবে আপনি আইওটপ ব্যবহার করে প্রতিটি প্রক্রিয়া I / O পরিসংখ্যান ইন্টারেক্টিভভাবে অধ্যয়ন করতে পারেন ।


হেই ধন্যবাদ! তবুও আমার সরঞ্জাম বাক্সে সঞ্চয় করার জন্য আরও একটি গীক খেলনা। :-)
জান্নে পিক্কারাইনেন

উপরের "পিএস-ইইও" সমাধানটির জন্য ব্যাচ মোডে আইওটপ চালানো খুব ভাল পরিপূরক / প্রতিস্থাপন হতে পারে। ধন্যবাদ!
আভাদা কেদাভরা

2
দুর্দান্ত, "iotop -n 1 -b -o" আমার সঠিক আউটপুট সরবরাহ করে। ধন্যবাদ!
আভাদা কেদাভরা

দেখে মনে হচ্ছে এটি চালানোর জন্য সিস্টেমে রুট অ্যাক্সেসের প্রয়োজন
ব্যবহারকারীর 35359531

29

আপনি এই কমান্ডটি দিয়ে প্রতি 20 সেকেন্ডে প্রক্রিয়া অনুযায়ী ক্রিয়াকলাপ আইও পরিসংখ্যান প্রিন্ট করতে পিডস্ট্যাট ব্যবহার করতে পারেন :

# pidstat -dl 20

প্রতিটি সারিতে ফোলউইং কলাম থাকবে:

  • পিআইডি - প্রক্রিয়া আইডি
  • kB_rd / s - টাস্কটি প্রতি সেকেন্ডে ডিস্ক থেকে পড়ার কারণ হয়ে কিলোবাইটের সংখ্যা।
  • kB_wr / s - টাস্কটি কিলোবাইটের ফলে তৈরি করেছে বা প্রতি সেকেন্ডে ডিস্কে লিখিত হতে পারে।
  • kB_ccwr / s - ডিস্কে লেখা কিলোবাইটের সংখ্যা টাস্ক দ্বারা বাতিল করা হয়েছে। টাস্কটি কিছু নোংরা পৃষ্ঠাচিহ্ন ছিন্ন করলে এটি ঘটতে পারে। এই ক্ষেত্রে, কিছু আইও যা অন্য কোনও কাজের জন্য গণ্য করা হয়েছে তা ঘটবে না।
  • কমান্ড - কার্যটির আদেশের নাম।

আউটপুট এর মতো দেখাচ্ছে:

05:57:12 PM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
05:57:32 PM       202      0.00      2.40      0.00  jbd2/sda1-8
05:57:32 PM      3000      0.00      0.20      0.00  kdeinit4: plasma-desktop [kdeinit]              

05:57:32 PM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
05:57:52 PM       202      0.00      0.80      0.00  jbd2/sda1-8
05:57:52 PM       411      0.00      1.20      0.00  jbd2/sda3-8
05:57:52 PM      2791      0.00     37.80      1.00  kdeinit4: kdeinit4 Running...                   
05:57:52 PM      5156      0.00      0.80      0.00  /usr/lib64/chromium/chromium --password-store=kwallet --enable-threaded-compositing 
05:57:52 PM      8651     98.20      0.00      0.00  bash 

05:57:52 PM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
05:58:12 PM       202      0.00      0.20      0.00  jbd2/sda1-8
05:58:12 PM      3000      0.00      0.80      0.00  kdeinit4: plasma-desktop [kdeinit]              

10

চলমান পর্যবেক্ষণকে কিছুই মারবে না, আপনি কেবল ইভেন্টের পরে সময় সংবেদনশীল ডেটা ফিরে পেতে পারবেন না ...

কয়েকটি বিষয় যা আপনি জড়িত বা মুছে ফেলার জন্য যাচাই করতে সক্ষম হতে পারেন - /procএটি আপনার বন্ধু।

sort -n -k 10 /proc/diskstats
sort -n -k 11 /proc/diskstats

10, 11 ক্ষেত্রগুলি সঞ্চিত লিখিত খাতগুলি এবং জমে থাকা সময় (এমএস)। এটি আপনার হট ফাইল-সিস্টেম পার্টিশনগুলি দেখায়।

cut -d" " -f 1,2,42 /proc/*/stat | sort -n -k +3

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

উপরেরটির উপযোগিতা আপটাইম, আপনার দীর্ঘ চলমান প্রক্রিয়াগুলির প্রকৃতি এবং আপনার ফাইল সিস্টেমগুলি কীভাবে ব্যবহৃত হয় তার উপর নির্ভর করে।

ক্যাভেটস: প্রাক-2.6 কার্নেলের ক্ষেত্রে প্রযোজ্য নয়, অনিশ্চিত হলে আপনার ডকুমেন্টেশন চেক করুন।

(এখন যান এবং আপনার ভবিষ্যতের স্ব-অনুগ্রহ করুন, মুনিন / নাগিওস / ক্যাকটি / যা কিছু ইনস্টল করুন ;-)


10

ব্যবহার atop। ( http://www.atoptool.nl/ )

সংক্ষিপ্ত ফাইলটিতে ডেটা লিখুন যা atopপরবর্তীতে ইন্টারেক্টিভ স্টাইলে পড়তে পারে। প্রতি 10 সেকেন্ডে একটি পঠন (ব-দ্বীপ) নিন। এটি 1080 বার করুন (3 ঘন্টা; সুতরাং আপনি যদি এটির কথা ভুলে যান তবে আউটপুট ফাইলটি আপনাকে ডিস্ক থেকে চালিয়ে দেবে না):

$ atop -a -w historical_everything.atop 10 1080 &

খারাপ জিনিস আবার ঘটে:

(এটি এখনও পটভূমিতে চলমান থাকলেও, এটি প্রতি 10 সেকেন্ডের মধ্যে কেবল সংযোজন করা হয়)

% atop -r historical_everything.atop

যেহেতু আপনি আইও বলেছেন, আমি তিনটি কী টিডি করব: টিডিডি

t - move forward to the next data gathering (10 seconds)
d - show the disk io oriented information per process
D - sort the processes based on disk activity
T - go backwards 1 data point (10 seconds probably)
h - bring up help
b - jump to a time (nearest prior datapoint) - e.g. b12:00 - only jumps forward
1 - display per second instead of delta since last datapiont in the upper half of the display

4

ব্যবহার btrace। উদাহরণস্বরূপ এটি ব্যবহার করা সহজ btrace /dev/sda। যদি কমান্ডটি উপলভ্য না হয় তবে এটি সম্ভবত প্যাকেজ ব্লকট্র্যাসে উপলব্ধ ।

সম্পাদনা : যেহেতু কার্বনে ডিবাগগুলি সক্ষম নয়, আপনি চেষ্টা করতে পারেন date >>/tmp/wtf && ps -eo "cmd,pid,min_flt,maj_flt" >>/tmp/wtfবা অনুরূপ হতে পারে । লগিং পৃষ্ঠার ত্রুটিগুলি অবশ্যই ব্রেট্রেস ব্যবহারের তুলনায় মোটেই এক নয়, তবে আপনি যদি ভাগ্যবান হন তবে এটি আপনাকে সবচেয়ে ডিস্কের ক্ষুধার্ত প্রক্রিয়া সম্পর্কে কিছু ইঙ্গিত দিতে পারে। আমি কেবল চেষ্টা করেছি যে আমার বেশিরভাগ I / O নিবিড় সার্ভারগুলির মধ্যে একটি এবং তালিকায় আমি জানি যে প্রচুর প্রসেস I / O ব্যবহার করছে included


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

ঠিক আছে, আমি আমার উত্তরটি কিছুটা সম্পাদনা করেছি :)
জান্নে পিকারকেনেন

দুর্দান্ত, এখন আমরা কোথাও পাচ্ছি! আমি এটিকে ক্রোনজবের মধ্যে রাখার কথা ভাবছি এবং সার ক্রোন কাজের সাথে সাথে এটি সম্পাদন করব। তারপরে, পরের বার সার্ভার স্টলে আমার কোনও পৃষ্ঠা / ত্রুটিগুলির পৃষ্ঠার ত্রুটিগুলির ক্রমবর্ধমান হার রয়েছে তা দেখতে পৃষ্ঠা ফল্টগুলির হারের তুলনা করতে সক্ষম হওয়া উচিত। আমার ধারণা, আমি দুর্ভাগ্য হতে পারি এবং স্টল চলাকালীন সমস্ত প্রক্রিয়াগুলির জন্য ডিস্ক io বৃদ্ধি করতে পারি তবে এটি অবশ্যই ভাল চেষ্টা করার মতো। ধন্যবাদ জান্নে! (আমি পারলে আপনার উত্তরদাতাকে ভোট দিয়ে দেব: এস)
আভাদা কেদাভরা

আপনাকে স্বাগতম. এটি কীভাবে চলল আমাকে জানতে দিন, এটি আমার কাছ থেকে সৃজনশীল সমস্যা সমাধানের চেষ্টা ছিল। :-)
জান্নে পিক্কারাইনেন

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