মাঝে মধ্যে সিপিইউ কার্নেল হগ সনাক্ত করুন


11

আমার কাছে একটি মাঝারি গতির এআরএমভি 7 প্রসেসরের চলমান একটি 2.6.35 পিআরইএমপিটি কার্নেল রয়েছে। প্রায় প্রতি 100 - 125 এর মধ্যে একবার, কোনও কারণে কর্নেল কিছু অডিও-সম্পর্কিত ড্রাইভারকে আন্ডারআরেন্সগুলি এড়াতে পর্যাপ্ত দ্রুত প্রক্রিয়া করতে ব্যর্থ করে তোলে। হোল্ড-আপটি সাধারণত 15-30 মিমি মধ্যে থাকে তবে এটি খুব বেশি দীর্ঘ হতে পারে। এটি পরিষ্কার নয় যে হোল্ড-আপ পুরোপুরি কার্নেলের মধ্যে রয়েছে বা রিয়েল-টাইম অগ্রাধিকার (SCHED_RR, 2) দিয়ে চলমান কোনও ব্যবহারকারী প্রক্রিয়ার সময়সূচী সম্পর্কিত হতে পারে।

আমার অনুমান যে এখানে একজন (কমপক্ষে একজন) ড্রাইভার আছেন যে প্রিমেট দিয়ে ভাল খেলছেন না।

ব্যবহারকারীর প্রক্রিয়া থেকে কিছু স্ট্রেস আউটপুট স্বাভাবিক এবং অস্বাভাবিক উভয় আচরণের কিছু দিক চিত্রিত করে, যদিও আমি বিভিন্ন সময়ের প্রতিবেদনের ব্যাখ্যা কীভাবে করব তা নিশ্চিত না?

সাধারণ ক্ষেত্রে:

     0.000518 পোল ([{এফডি = 10, ইভেন্টস = পলিন | পোলার | পোলনওয়াল, আয় = পোলিন}], 1, 3415) = 1 
     0.010202 পোল ([{এফডি = 10, ইভেন্টস = পলিন | পোলার 
     0.000585 পোল ([{এফডি = 10, ইভেন্টস = পলিন | পোলার 
     0.000302 পোল ([{এফডি = 10, ইভেন্টস = পলিন | পল্লার | পোলনওয়াল, আয় = পোলিন}], 1, 3404) = 1 
     0.010706 পোল ([{এফডি = 10, ইভেন্টস = পোলিন | পোলার 
     0.000480 পোল ([{এফডি = 10, ইভেন্টস = পোলিন | পোলার 

Fd6 এ আউটপুট দেওয়ার জন্য জরিপে কোনও ব্লকিং ঘটে না এবং যখন কেবল fd10 ইনপুট জন্য পোল করা হয় তখন প্রায় 10 মিমি ব্লক হয়। এটি সিস্টেম কলের সময়কাল এবং সিস্টেম কলগুলির মধ্যবর্তী ব্যবধানের প্রতিবেদনে উভয়ই প্রতিফলিত হয় (তারা ধারাবাহিক হয়)।

ব্যর্থতার কেস (চরম উদাহরণ):

     0.000305 পোল ([{এফডি = 10, ইভেন্টস = পলিন | পোলার 
     0.010730 পোল ([{এফডি = 10, ইভেন্টস = পোলিন | পোলার 
     0.000475 পোল ([{এফডি = 10, ইভেন্টস = পোলিন | পোলার 
     0.000329 পোল ([{এফডি = 10, ইভেন্টস = পলিন | পোলার 
     0.953349 পোল ([{এফডি = 10, ইভেন্টস = পলিন | পোলার 

এক্ষেত্রে লক্ষ্য করুন যে, দ্বিতীয়-শেষ কলটি 10 ​​মিমি (সাধারণ) হিসাবে রেকর্ড করা হলেও এটি শেষ কলের আগে 953ms।

অপরাধীর সন্ধানের জন্য আমি কোন সরঞ্জামগুলি ব্যবহার করতে পারি?


2
আকর্ষণীয় প্রশ্নের জন্য বোনাস পয়েন্ট। আমি কীভাবে উত্তর দেব তা নিশ্চিত নই তবে সিপিইউ ব্যবহারে এটি কীভাবে ট্র্যাক করা যায় (উদাহরণস্বরূপ আইওয়েটে স্পাইকগুলির বিপরীতে) আমার কাছে একটি প্রশ্ন রয়েছে?
ব্র্যাচলে

1
প্রথম অনুমানটি হ'ল যদি আপনি জেএফএফএস 2 বা ওয়াইএফএফএস একটি বড় ন্যান্ড ফ্ল্যাশে চালাচ্ছেন, বিশেষত যদি আপনি রেকর্ডিং করছেন। ফ্ল্যাশ করতে লিখতে পারে এমন কোনও কিছু অক্ষম করুন এবং দেখুন কিনা এটি সাহায্য করে। আপনার প্রসেস টেবিলটি দেখতে কেমন? কার্নেল তৈরির জন্য যদি আপনার কোনও সরঞ্জামচেন থাকে তবে আপনি শেষ অবলম্বন হিসাবে ftrace ব্যবহার করতে পারেন।
জোনাথন বেন-অভ্রহাম

সর -বু এটি করতে পারে .. linux.die.net/man/1/sar
গ্রিজলি

কিছু ফ্ল্যাশ ব্যবহার আছে; মাউন্ট করা ext4 ফাইল সিস্টেমের সাথে একটি এসডি কার্ড। এবং এগুলিকে লিখলে এটি অবশ্যই এই সমস্যার সম্ভাব্য উত্স (তবে কেন, ঠিক?) তবে সম্ভবত একমাত্র এটি নয় one
awy

উত্তর:


1

perfআপনার জন্য সহায়ক হতে পারে। এটি লিনাক্স কার্নেল ইউটিলিটির অংশ।

এই ক্ষেত্রে:

perf record -R -a -g fp -e cycles -e syscalls:sys_enter_poll -e syscalls:sys_exit_poll
#Just ctrl+c if you are done, and view ith
perf script 

এটি সমস্ত সিস্টেমে প্রবেশ / প্রস্থান সময় এবং প্যারামিটারগুলি (স্ট্রেসের মতো) দেখায়, সাইনস্কেলকে অনুরোধ করা বাইনারিটির নাম সরবরাহ করে এবং প্রতিটি সিপিইউর কলস্ট্যাকের নমুনা কিছু ফ্রিকোয়েন্সি (কার্নেল চিহ্ন সহ )কে প্রদর্শন করে। সুতরাং আপনি বাস্তবে সিস্কলের সময় কী কোডটি কার্যকর করা হয়েছিল তা দেখতে পারেন। একটি মাল্টিপ্রসেসর সিস্টেমে আপনাকে সিপিইউ আইডিটিতে মনোযোগ দিতে হবে (উদাঃ [001])।


আমি প্ল্যাটফর্মটির জন্য পারফেক্ট তৈরির বিষয়টি সন্ধান করব - টিপটির জন্য ধন্যবাদ।
awy

0

হতে পারে atopআপনার সমস্যার উপর কিছু আলোকপাত করতে পারে ।

এটি ইতিমধ্যে উপস্থিত থাকা প্রক্রিয়াগুলি দেখায় এবং এটি সিপিইউ , মেমরি , ডিস্ক এবং নেটওয়ার্কের ব্যবহার দেখায় ।

আপনি এটি ইন্টারেক্টিভ চালাতে পারেন, এটি কোনও পাঠ্য ফাইলকে লিখতে দিন বা sarপূর্বনির্ধারিত ব্যবধানের মতো চালাতে দিন, এমন একটি বাইনারি ইতিহাস ফাইল তৈরি করুন যা আপনি পরে পদক্ষেপ নিতে পারেন।

আমি এটি সমস্ত ধরণের হগগুলি খুঁজে পেতে ব্যবহার করি যা খুঁজে পাওয়া শক্ত :-)

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