ইউজারস্পেস 'পারফ' টুলটি চালানোর জন্য আমার কি রুট (অ্যাডমিন) অনুমতি দরকার? (পারফেক্ট ইভেন্টগুলি লিনাক্স কার্নেলে সক্ষম করা আছে)


25

আমার কি perfসিস্টেম অ্যাডমিনিস্ট্রেটর (মূল) হিসাবে ইউজারস্পেস টুল চালানো দরকার , না আমি সাধারণ ব্যবহারকারী হিসাবে এটিকে (বা কমপক্ষে কয়েকটি সাবকম্যান্ড) চালাতে পারি?


2
ইউনিক্স প্রোগ্রামগুলি যা অনুমতিগুলির অভাবে তাদের যা করার প্রয়োজন তা করতে পারে না যদি তারা তাদের কাজটি না করতে পারে তবে সাধারণত একটি ত্রুটি ফেলে দেয়। এটি চালান এবং দেখুন!
কালেব

1
আমি এই প্রশ্নটি জিজ্ঞাসা করছি এটি সিদ্ধান্ত নেওয়ার জন্য কিনা (সাধারণ ব্যবহারকারী হিসাবে, $ HOME তে) ব্যবহারকারীর জায়গার অংশটি perf(যা / অ-তুচ্ছ হতে পারে ) ইনস্টল করার চেষ্টা করে ।
জাকুব নারেবস্কি

উবুন্টুতে অবগতির জন্য perfরয়েছে linux-tools, প্যাকেজ তাই ইনস্টল করার perfসহজ নেই।
জাকুব নারেবস্কি

1
@ জাকুবনারাইবস্কি: যদি এটি আপনার নিজস্ব মেশিন না হয় এবং অ্যাডমিনরা প্যাকেজ ইনস্টল করতে নারাজ।
মার্টিন উয়েডিং

উত্তর:


33

perfমূল না হয়ে আপনি যা করতে পারেন তা সিস্টেস্টেল সেটিংয়ের উপর নির্ভর করে ।kernel.perf_event_paranoid

  • kernel.perf_event_paranoid= 2: আপনি কোনও পরিমাপ নিতে পারবেন না। perfউপযোগ এখনও সঙ্গে বিদ্যমান রেকর্ড বিশ্লেষণ করতে সহায়ক হতে পারে perf ls, perf report, perf timechartবা perf trace
  • kernel.perf_event_paranoid= 1: আপনি কমান্ডটি সন্ধান করতে পারেন perf statবা এর সাথে perf record, এবং কার্নেল প্রোফাইলিং ডেটা পেতে পারেন।
  • kernel.perf_event_paranoid= 0: আপনি কমান্ডটি ট্রেস করতে পারেন perf statবা এর সাথে perf record, এবং সিপিইউ ইভেন্ট ডেটা পেতে পারেন।
  • kernel.perf_event_paranoid= -1: আপনি কার্নেল ট্র্যাসপয়েন্টগুলিতে কাঁচা অ্যাক্সেস পান (বিশেষত, আপনি mmapফাইলটি তৈরি করতে পারেন perf_event_open, এর অর্থ কী তা আমি জানি না)।

1
খুশী হলাম। cat /proc/sys/kernel/perf_event_paranoid1 প্রদান করে, সুতরাং দেখে মনে হচ্ছে আমি কমপক্ষে কিছু পরিমাপ করতে সক্ষম হব (বিটিডাব্লু। "কার্নেল প্রোফাইলিং ডেটা" এবং "সিপিইউ ইভেন্টের ডেটা" এর মধ্যে পার্থক্য কী? রেফারেন্স যথেষ্ট)
জাকুব নারাবস্কি

2
@ জাকুব: আমি যা বুঝি তার থেকে কার্নেল ইভেন্টগুলি আপনাকে বিভিন্ন কার্নেল ফাংশনে কল দেখতে দেয়। সিপিইউ ইভেন্টগুলি হল সিপিইউতে থাকা কাউন্টার যা আপনাকে জানায় মেমরির একটি নির্দিষ্ট অবস্থানকে কতবার আঘাত করা হয়েছিল। আমি সেগুলি কখনই ব্যবহার করি নি, তাই এগুলি সম্পর্কে আমি আপনাকে আর বলতে পারি না; এলডব্লিউএন বিষয়টিতে বেশ কয়েকটি নিবন্ধ রয়েছে এবং এটি এখনও বিকশিত হচ্ছে।
গিলস 'দুষ্ট হওয়া বন্ধ করুন'

4
প্যারানয়েড = ২ দিয়ে আপনি এখনও ব্যবহারকারী-স্পেসে নিজের কোডটি প্রোফাইল করতে পারেন (যেমন perf stat awk 'BEGIN{for(i=0;i<10000000;i++){}}'সঠিক ব্যবহারকারী-স্পেস চক্র এবং নির্দেশের সংখ্যা দেখায়, এবং এমনকি আপনি আরও অনেক কিছু পেতে পারেন uops_issued.any ) তবে আপনি কোডের জন্য গণনা পান না যা সিস্টেম কল / বিঘ্নের সময় চলছিল। সুতরাং রিপোর্ট করা সিপিইউ ফ্রিকোয়েন্সি (চক্র / সময়) কার্নেলের সময় ব্যয় করার কারণে আসল থেকে কমপক্ষে কিছুটা কম। আরও দেখুন পার্ফ_সেন্ট_প্যারানয়েড == 1 আসলে x86 পারফের উপর কী বাধা রয়েছে?
পিটার কর্ডেস

"সিপিইউ ইভেন্টস" মানে প্রতি-প্রক্রিয়া / থ্রেডের পরিবর্তে সমস্ত কিছুকে পুরো কোরতে প্রোফাইল করা। অর্থাত্ প্যারানয়েড = 1 বা তার বেশি আপনাকে অন্য ব্যবহারকারীর কোডটি প্রোফাইলিং করা থেকে বিরত রাখে এবং 1 কেবল আপনাকে নিজের প্রসেস দ্বারা প্রবর্তিত প্রোফাইল কার্নেল কোড (সিস্টেম কল।) দেয়
পিটার কর্ডেস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.