লিনাক্স কার্নেলে পারফ সাবসিস্টেমটি কীভাবে অক্ষম করবেন?


15

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

[2015-08-17 10:20:14 সতর্কতা] dmesg পরিবর্তন হয়েছে বলে মনে হচ্ছে! ডিফ অনুসরণ করে:
--- 2015-08-17 09:55:00
+++ 2015-08-17 10:20:14
@@ -825,3 +825,4 @@
 [৩.৮০২২০6] [ড্রাম] আরসি En সক্ষম করে জানিয়েছে: আরসি on চালু, আরসি p পি বন্ধ, আরসি pp পিপি বন্ধ
 [7.900533] r8169 0000: 06: 00.0 এথ0: লিঙ্ক আপ
 [7.900541] IPv6: ADDRCONF (NETDEV_CHANGE): eth0: লিঙ্কটি প্রস্তুত হয়ে গেছে
+ [236832.221937] পারফেক্ট ইন্টারপেন্ট খুব দীর্ঘ সময় নিয়েছে (2504> 2500), কার্নেল.পার্ফ_ভেনিউট_ম্যাক্স_সাম্পল_রেটকে 50000 এ নামিয়েছে

কিছু অনুসন্ধানের পরে, আমি এখন এটি "পারফ" নামক লিনাক্স কার্নেলের একটি প্রোফাইলিং সাবসিস্টেমের সাথে সম্পর্কিত know আমি মনে করি না এটি আমাদের দরকার, তাই আমি এটি পুরোপুরি অক্ষম করতে চাই।

আবার অনুসন্ধানে, আমি দেখতে পেলাম যে সিস্টালটি perf_cpu_time_max_percentসাহায্য করতে পারে। এখানে কেউ এটি 0 এ সেট করে অক্ষম করার পরামর্শ দেয় এখানে আরও কিছু পড়তে এখানে :

perf_cpu_time_max_percent:

পারফ স্যাম্পলিং ইভেন্টগুলি পরিচালনা করতে কতটা সিপিইউ সময় ব্যবহার করা উচিত তা কার্নেলকে ইঙ্গিত। পারফ সাবসিস্টেমকে যদি জানানো হয় যে এর নমুনাগুলি এই সীমাটি অতিক্রম করছে, তবে এটি এর সিপিইউ ব্যবহার কমাতে চেষ্টা করার জন্য তার নমুনা ফ্রিকোয়েন্সি ফেলে দেবে।

কিছু পারফ স্যাম্পলিং এনএমআইতে ঘটে। যদি এই নমুনাগুলি অপ্রত্যাশিতভাবে কার্যকর করতে খুব বেশি সময় নেয় তবে এনএমআইগুলি একে অপরের পাশে এত বেশি স্ট্যাক হয়ে যেতে পারে যে অন্য কোনও কিছুই কার্যকর করার অনুমতি নেই is

0: প্রক্রিয়াটি অক্ষম করুন। সিপিইউ সময় যতই লাগে তা পারফেক্টের স্যাম্পলিং হারকে পর্যবেক্ষণ বা সংশোধন করবেন না।

1-100: সিপিইউর এই শতাংশে পারফের নমুনা হারকে থ্রোটল্ট করার চেষ্টা করুন। দ্রষ্টব্য: কার্নেল প্রতিটি নমুনা ইভেন্টের একটি "প্রত্যাশিত" দৈর্ঘ্য গণনা করে। এখানে 100 এর অর্থ প্রত্যাশিত দৈর্ঘ্যের 100%। এটি যদি 100 এ সেট করা থাকে তবে এই দৈর্ঘ্য অতিক্রম করা গেলেও আপনি নমুনা থ্রোটলিং দেখতে পাবেন। আপনি যদি সিপিইউ কতটা খাওয়াচ্ছেন তা যদি সত্যই চিন্তা না করে তবে 0 তে সেট করুন।

এটি আমার কাছে 0 এর মতো মনে হচ্ছে প্রোফাইলিং নমুনার হার আর পরীক্ষা করা হয় না, তবে ফ্রিক সাবসিস্টেমটি চলমান থাকে (?)।

কীভাবে ফ্রিক্স দিয়ে কার্নেল প্রোফাইল সম্পূর্ণরূপে অক্ষম করা যায় সে সম্পর্কে কেউ আলোকপাত করতে পারেন?

সম্পাদনা: কেউ পরামর্শ দিয়েছে যে আমি পার্ফ ছাড়াই কার্নেল তৈরির চেষ্টা করব, তবে আমি মনে করি এটি এমনকি সম্ভব নয়। বিকল্পটি পরিবর্তনযোগ্য বলে মনে হচ্ছে না:

menuconfig

সম্পাদনা 2: আরও পড়ার পরে, আমি সিদ্ধান্ত নিয়েছি আমি kernel.perf_event_max_sample_rateশূন্যে সেট করতে সক্ষম হব । অর্থাৎ প্রতি সেকেন্ডে কোনও নমুনা নেই। তবে আপনি এটি ( উত্স ) কোনওটিই করতে পারবেন না :

কমিট 02f98e3e36da106338b7c732fed516420fb20e2a
লেখক: নট পিটারসেন 
তারিখ: বুধ সেপ্টেম্বর 25 14:29:37 2013 +0200

পারফ: পারফিউভ_ম্যাক্স_ম্যাক্স_সাম্পল_রেটের জন্য নিম্ন সীমা হিসাবে 1 প্রয়োগ করুন

সম্পাদনা 3: এফডাব্লুআইডাব্লু, perf_cpu_time_max_percent25 এ সেট করা হয়েছে, যার অর্থ কার্নেল তার 25% সময় ব্যয় করছিল হার্ডওয়্যার রেজিস্টারগুলির নমুনা দেওয়ার সময়। এটি একটি বেঞ্চমার্কিং মেশিনের জন্য অগ্রহণযোগ্য।

আমি এখন নিশ্চিত যে সেটিংটি আছি perf_cpu_time_max_percentশুন্যতে শুধুমাত্র অবস্থা আরো খারাপ হবে, যেহেতু কার্নেল হবে অবিরত এটা সময় পড়া হার্ডওয়্যার রেজিস্টার 25% বেশি ব্যবহার করতে। নমুনা হার সামঞ্জস্য করতে ত্রুটিটি আগুন ধরে যায়, সুতরাং এটি নিশ্চিত করার চেষ্টা করে যে কার্নেলটি তার 25% সময় ব্যবহারের কোটা পূরণ করে qu 25% এখনও অনেক বেশি আইএমএইচও।

আমি যদি সত্যিই পারফ অক্ষম করতে না পারি তবে সম্ভবত সেরা আপসটি perf_event_max_sample_rate1 এ সেট করা হবে ।

সম্পাদনা 4: একটি বন্ধু প্রস্তাব দিয়েছিল যে আমি এর অর্থের ভুল ব্যাখ্যা করতে পারি perf_cpu_time_max_percent, সুতরাং উপরের বিবৃতিগুলি ভুল হতে পারে। 25 এর মান ইঙ্গিত দেয় যে কার্নেলটি কিছু নির্বিচার দৈর্ঘ্যের 25% এর বেশি ব্যবহার করে যা পারফেক্ট ইন্টারফেটগুলি পরিবেশন করার জন্য সংরক্ষণ করা হয়েছিল।

EDIT5:

মন্তব্যে নির্দেশিত হিসাবে, -*-পারফ বিকল্পের বিপরীতে প্রস্তাবিত হয় যে বৈশিষ্ট্যটি অন্য একটি সক্ষম বৈশিষ্ট্য দ্বারা বাধ্য করা হয়েছে। আমি যদি সন্ধান করি তবে helpএটিতে এই বৈশিষ্ট্যগুলি হ'ল:

সাহায্যের

আমি মনে করি না যে আমি এখানে জিততে পারি। বুলিয়ান সূত্রটি selected byবলে

আপনি যদি X86, বা ...

আমি সবেমাত্র পরীক্ষা করেছি যে X86_64 লক্ষ্য নির্ধারণ করা সত্যিই সক্ষম করে CONFIG_X86। সুতরাং দেখে মনে হচ্ছে আপনি X86 বা X86_64 টার্গেট করার সাথে সাথে আপনি পারফেক্ট পাবেন।

সুতরাং আমি আমার প্রশ্নটি সামান্য পরিবর্তন করতে চাই:

পারফ রুটিনগুলিতে কার্নেলের দ্বারা ব্যয় করা সময়টি হ্রাস করতে আমি কোন পারফিং সেটিংস ব্যবহার করতে পারি?

মনে রাখবেন যে সামগ্রিক লক্ষ্য বেঞ্চমার্কিংয়ের জন্য এলোমেলো পরিবর্তনের উত্সগুলি নিয়ন্ত্রণ করা। আমি পারফ অক্ষম করতে না পারলে আমি কীভাবে বেঞ্চমার্কে এর প্রভাব হ্রাস করব?


1
আপনার পূর্ববর্তী স্ক্রিনে পারফ অক্ষম করতে সক্ষম হওয়া উচিত।
মাইকেল হ্যাম্পটন

1
আপনি কি "প্রোফাইলিং সমর্থন" বলতে চান? যদি আমি এটি অক্ষম করি তবে আমি উপরে চিত্রিত বিকল্পটি চেক করতে পারি না। আমি যদি কনফিগ পরীক্ষা করি তবে আমার CONFIG_HAVE_PERF_EVENTS=yও আছে CONFIG_PERF_EVENTS=y। আমি এই প্রতিবন্ধী পারফ মনে করি না।
এডিট ব্যারেট

2
বার্তাটি তথ্যগত। কার্নেলটি স্বয়ংক্রিয়ভাবে একটি নমুনা হার নির্ধারণ করে যা সিস্টেমের কার্যকারিতা প্রভাবিত না করে ব্যবহার করা যেতে পারে এবং পারফ সক্রিয় বা এমনকি ইনস্টল না থাকা অবস্থায়ও এটি লগ করে। যখন সিস্টেমের লোড বেশি হয় বা ফ্রিকোয়েন্সি স্কেলিং হয় আপনি প্রায়শই সেই বার্তাগুলি পাবেন।
ব্রায়ান

1
প্রতীকটির -*-অর্থ হ'ল কিছু উপ-সিস্টেম পারফিউম মডিউলটির উপর নির্ভর করে। Helpনির্ভরতার গাছটি দেখায় যা আপনাকে [*]বা বিকল্পটিতে পরিবর্তন করতে অক্ষম করতে হবে [M]
রুফো এল মাগুফো

4
এটিকে আমলে নেওয়ার জন্য আমি প্রশ্নটি সংশোধন করেছি। সংক্ষেপে, পারফ X86_64 এ বাধ্যতামূলক বলে মনে হচ্ছে।
এড ব্যারেট

উত্তর:


2

[HAVE_PERF_EVENTS] কার্নেল বিকল্পটি অক্ষম করুন এবং লিনাক্স কার্নেলটি পুনরায় কম্পাইল করুন।

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