পারফেক্ট- লিনাক্সের জন্য পারফরম্যান্স মনিটরিং এবং বিশ্লেষণ সরঞ্জাম


যখন আমরা কম্পিউটিংয়ে পারফরম্যান্সের কথা বলি, আমরা আমাদের সংস্থানসমূহ এবং যে কার্যাদি আমাদের আমাদের একটি নির্দিষ্ট সময়কালে সম্পূর্ণ করতে দেয় তার মধ্যে সম্পর্কের বিষয়টি উল্লেখ করি।

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

একই সময়ে, আমাদের সংস্থানগুলিকে এমন একটি সীমাতে না নিয়ে যাওয়ার বিষয়ে আমাদের সতর্ক থাকতে হবে যেখানে টেকসই ব্যবহারের ফলে অপূরণীয় ক্ষতি হবে।

এই নিবন্ধে আমরা আপনাকে তুলনামূলকভাবে নতুন পারফরম্যান্স বিশ্লেষণ সরঞ্জামের সাথে পরিচয় করিয়ে দেব এবং টিপস সরবরাহ করব যা আপনি হার্ডওয়্যার এবং অ্যাপ্লিকেশন সহ আপনার লিনাক্স সিস্টেমগুলি পর্যবেক্ষণ করতে পারেন। এটি আপনাকে পরিচালনা করতে তা নিশ্চিত করতে সহায়তা করবে যাতে আপনি সংস্থান বা নিজের শক্তি অপচয় না করে কাঙ্ক্ষিত ফলাফল আনতে সক্ষম হন।

পারফ ইন লিনাক্স উপস্থাপন এবং ইনস্টল করা

অন্যগুলির মধ্যে, লিনাক্স একটি পারফরম্যান্স পর্যবেক্ষণ এবং বিশ্লেষণ সরঞ্জাম সরবরাহ করে যা সুবিধাজনকভাবে পারফ বলে called সুতরাং অন্যান্য সুপরিচিত সরঞ্জামগুলির সাথে পারফকে কী আলাদা করে যার সাথে আপনি ইতিমধ্যে পরিচিত?

উত্তরটি হ'ল পারফ সিপিইউতে পারফরম্যান্স মনিটরিং ইউনিটে অ্যাক্সেস সরবরাহ করে এবং এইভাবে আমাদের হার্ডওয়্যার এবং এর সাথে সম্পর্কিত ঘটনাগুলির আচরণ সম্পর্কে ঘনিষ্ঠভাবে নজর রাখার অনুমতি দেয়।

এছাড়াও, এটি সফ্টওয়্যার ইভেন্টগুলিও নিরীক্ষণ করতে এবং সংগ্রহ করা ডেটার বাইরে রিপোর্ট তৈরি করতে পারে।

আপনি এর সাথে আরপিএম-ভিত্তিক বিতরণগুলিতে পারফেক্ট ইনস্টল করতে পারেন:

# yum update && yum install perf     [CentOS / RHEL / Fedora]
# dnf update && dnf install perf     [Fedora 23+ releases]

ডেবিয়ান এবং ডেরিভেটিভগুলিতে:

# sudo aptitude update && sudo aptitude install linux-tools-$(uname -r) linux-tools-generic

উপরের কমান্ডের uname -r যদি প্রকৃত সংস্করণ (আমার ক্ষেত্রে 3.2.0-23-জেনেরিক) ছাড়াও অতিরিক্ত স্ট্রিং প্রদান করে, তার পরিবর্তে আপনাকে লিনাক্স-সরঞ্জাম -3.2.0-23 টাইপ করতে হতে পারে uname আউটপুট ব্যবহার করার।

এটি লক্ষ করাও গুরুত্বপূর্ণ যে পার্শ্বের XEN শীর্ষে কোনও অতিথির সাথে চালিত হলে অসম্পূর্ণ ফলাফল দেয়।

অতিরিক্ত হিসাবে, মনে রাখবেন যে কিছু পারফ কমান্ডগুলি ডিফল্টরূপে মূলের মধ্যেই সীমাবদ্ধ থাকতে পারে যা এগুলি করে (সিস্টেম পুনরায় বুট না হওয়া পর্যন্ত) অক্ষম করা যায়:

# echo 0 > /proc/sys/kernel/perf_event_paranoid

যদি আপনাকে স্থিরভাবে প্যারানয়েড মোডটি অক্ষম করতে হয়, তবে /etc/sysctl.conf ফাইলে নিম্নলিখিত সেটিংসটি আপডেট করুন।

kernel.perf_event_paranoid = 0

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

পারফ তালিকার (বিকল্প ছাড়াই) সমস্ত প্রতীকী ইভেন্টের প্রকার (দীর্ঘ তালিকা) প্রদান করে। আপনি যদি একটি নির্দিষ্ট বিভাগে উপলভ্য ইভেন্টগুলির তালিকা দেখতে চান তবে বিভাগের নাম ([hw | sw | cache | tracepoint | pmu | ইভেন্ট_glob]) এর পরে perf তালিকাটি ব্যবহার করুন, যেমন:

লিনাক্সে সফ্টওয়্যার প্রাক-সংজ্ঞায়িত ইভেন্টগুলির তালিকা প্রদর্শন করুন:

# perf list sw 

পারফ স্ট্যাট একটি কমান্ড চালায় এবং এই জাতীয় কমান্ড কার্যকর করার সময় লিনাক্সের পারফরম্যান্সের পরিসংখ্যান সংগ্রহ করে। আমরা যখন ডিডি চালাই তখন আমাদের সিস্টেমে কী ঘটে?

# perf stat dd if=/dev/zero of=test.iso bs=10M count=1

উপরে দেখানো পরিসংখ্যান অন্যান্য জিনিসগুলির মধ্যেও নির্দেশ করে:

  1. ডিডি কমান্ড কার্যকর করার সময় সিপিইউর 21.812281 মিলিসেকেন্ড লেগেছিল। যদি আমরা এই সংখ্যাটি নীচে "সেকেন্ড সময় অতিবাহিত" মান (23.914596 মিলি সেকেন্ড) দ্বারা ভাগ করে ফেলি, তবে এটির ফলস 0.912 (সিপিইউ ব্যবহৃত)
  2. কমান্ডটি কার্যকর করার সময়, 15 প্রসঙ্গ-স্যুইচগুলি (প্রক্রিয়া স্যুইচ নামেও পরিচিত) ইঙ্গিত দেয় যে সিপিইউগুলি একটি প্রক্রিয়া (বা থ্রেড) থেকে অন্য বারে 15 বার স্যুইচ করা হয়েছিল
  3. 2 সিপিইউ মাইগ্রেশন হ'ল প্রত্যাশিত ফলাফল যখন 2-কোর সিপিইউতে কাজের চাপ কোরের সংখ্যার মধ্যে সমানভাবে বিতরণ করা হয়।
    সেই সময়ের মধ্যে (21.812281 মিলি সেকেন্ড), মোট সিপিইউ চক্রের সংখ্যা ছিল 62,025,623, যা 0.021812281 সেকেন্ড দ্বারা বিভক্ত হয় 2.843 গিগাহার্টজ দেয়
  4. আমরা যদি মোট নির্দেশাবলীর সংখ্যা অনুসারে চক্রের সংখ্যা বিভাজন করি তবে আমরা প্রতি নির্দেশ অনুসারে 4.9 সাইকেল পেয়েছি, যার অর্থ প্রতিটি নির্দেশ প্রায় 5 সিপিইউ চক্র সম্পূর্ণ করতে (গড়) নেয় took আমরা শাখা এবং শাখা-মিসগুলি (নীচে দেখুন) এর সংখ্যার উপর এটি (কমপক্ষে কিছুটা হলেও) দোষ দিতে পারি, যা সিপিইউ চক্রের অপচয় বা অপব্যবহার করে।
  5. কমান্ড কার্যকর হওয়ার সাথে সাথে মোট ৩,55৫২,66০ টি শাখার মুখোমুখি হয়েছিল। কোডের সিদ্ধান্ত পয়েন্টগুলি এবং লুপগুলির এটি সিপিইউ-স্তরের প্রতিনিধিত্ব। আরও শাখা, কর্মক্ষমতা কম। এটির ক্ষতিপূরণ দিতে, সমস্ত আধুনিক সিপিইউ কোডটি গ্রহণ করবে বলে প্রবাহের পূর্বাভাস দেওয়ার চেষ্টা করেছে। 51,348 শাখা-মিসগুলি পূর্বাভাস বৈশিষ্ট্যটি সময়ের 1.45% ভুল ছিল indicate

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

পারফ শীর্ষ শীর্ষ কমান্ডের অনুরূপ, এটি প্রায় রিয়েল-টাইম সিস্টেম প্রোফাইল প্রদর্শন করে (এটি সরাসরি বিশ্লেষণ হিসাবেও পরিচিত)।

-a বিকল্পের সাহায্যে আপনি সমস্ত পরিচিত ইভেন্টের ধরণ প্রদর্শন করবেন, যেখানে -e বিকল্প আপনাকে একটি নির্দিষ্ট ইভেন্ট বিভাগ বাছাই করতে অনুমতি দেবে (পারফ তালিকার মাধ্যমে প্রত্যাবর্তন হিসাবে) :

সমস্ত চক্র ইভেন্ট প্রদর্শন করবে।

perf top -a 

সিপিইউ-ক্লক সম্পর্কিত সমস্ত ইভেন্ট প্রদর্শন করবে।

perf top -e cpu-clock 

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

পারফ রেকর্ড একটি কমান্ড চালায় এবং পরিসংখ্যানের ডেটা বর্তমান ওয়ার্কিং ডিরেক্টরিের মধ্যে পারফড্যাডাটা নামের একটি ফাইলে সংরক্ষণ করে। এটি পারফ স্ট্যাটে একইভাবে চলে।

কমান্ডের পরে পারফেকর্ড রেকর্ড করুন:

# perf record dd if=/dev/null of=test.iso bs=10M count=1

পার্ফ রিপোর্টটি পারফরম্যাডেটে সংগৃহীত ডেটাটিকে উপরের পারফরম্যান্স রিপোর্টে ফর্ম্যাট করে:

# sudo perf report

উপরের সমস্ত সাবকম্যান্ডের একটি ডেডিকেটেড ম্যান পেজ রয়েছে যা এই হিসাবে আহ্বান করা যেতে পারে:

# man perf-subcommand

যেখানে সাবকম্যান্ড হয় তালিকা, স্ট্যাট, শীর্ষ, রেকর্ড, বা প্রতিবেদন। এগুলি প্রায়শই ব্যবহৃত সাবকম্যান্ডসমূহ; অন্যদের ডকুমেন্টেশনে তালিকাভুক্ত করা হয়েছে (লিঙ্কটির সংক্ষিপ্তসার বিভাগটি দেখুন)।

সারসংক্ষেপ

এই গাইডে আমরা আপনাকে পারফের সাথে পরিচয় করিয়েছি, লিনাক্সের জন্য একটি পারফরম্যান্স পর্যবেক্ষণ এবং বিশ্লেষণ সরঞ্জাম। Https://perf.wiki.kernel.org এ রক্ষণাবেক্ষণ করা এর ডকুমেন্টেশনের সাথে পরিচিত হতে আমরা আপনাকে উত্সাহিত করি।

যদি আপনি এমন অ্যাপ্লিকেশনগুলি খুঁজে পান যা উচ্চ শতাংশের সংস্থান গ্রহণ করে, আপনি উত্স কোডটি সংশোধন করতে বা অন্য বিকল্পগুলি ব্যবহার করতে পারেন।

এই নিবন্ধটি বা উন্নতির পরামর্শ সম্পর্কে আপনার যদি প্রশ্ন থাকে তবে আমরা সকলেই কান। নীচে মন্তব্য ফর্ম ব্যবহার করে আমাদের কাছে নির্দ্বিধায় যোগাযোগ করুন।