প্রোফাইল Pprof সঙ্গে যান

Propha Ila Pprof Sange Yana



লিনাক্স অপারেটিং সিস্টেমে, GO ইকোসিস্টেম GO প্রোগ্রামে কর্মক্ষমতা এবং যুক্তি সংক্রান্ত সমস্যাগুলি নির্ণয় করার জন্য সরঞ্জাম এবং SPIs এর একটি বড় স্যুট অফার করে। ডায়াগনস্টিক সমাধানগুলির মধ্যে একটি হল GO প্রোফাইলিং। GO প্রোফাইলিংয়ের কাজ হল খরচ, মেমরি ব্যবহার এবং প্রোগ্রামের সবচেয়ে ব্যয়বহুল বিভাগটি বের করার জন্য ঘন ঘন ফাংশন কলের পরিপ্রেক্ষিতে একটি GO প্রোগ্রাম বিশ্লেষণ করা। এই পৃষ্ঠাটি কয়েক সেকেন্ডের মধ্যে GO প্রোফাইলিং সম্পাদন করতে pprof প্যাকেজের ব্যবহার প্রদর্শন করে। এখানে, আমরা একটি GO প্রোগ্রাম প্রোফাইল করার জন্য pprof ফাংশনটি অন্বেষণ করব। চল শুরু করি!

লিনাক্সে একটি Pprof প্যাকেজ কি?

লিনাক্স অপারেটিং সিস্টেমের pprof প্যাকেজ হল একটি প্রোফাইলিং টুল যা pprof ভিজ্যুয়ালাইজেশন টুলের সাহায্যে প্রয়োজনীয় বিন্যাসে রানটাইম প্রোফাইলিং ডেটা লিখতে ব্যবহৃত হয়। এটি রানটাইম প্রোফাইলিং ডেটার জন্য একটি HTTP সার্ভারের মাধ্যমে পরিবেশন করে এবং এটি বেশিরভাগই এর HTTP হ্যান্ডলারদের নিবন্ধনের পার্শ্ব প্রতিক্রিয়াগুলির জন্য আমদানি করা হয়। pprof কমান্ডের সমস্ত হ্যান্ডেল পাথ /debug/pprof/ দ্বারা একটি নির্দিষ্ট কমান্ড দ্বারা শুরু হয়।

উবুন্টু 22.04 সিস্টেমে GO প্রোফাইলিংয়ের জন্য Pprof প্যাকেজ কীভাবে ইনস্টল করবেন

আপনি যদি প্রোফাইলিংয়ের একটি দ্রুত ইনস্টলেশন প্রক্রিয়া খুঁজছেন, কিন্তু সবকিছুই কষ্টকর, আসুন আমরা নিম্নলিখিত প্রক্রিয়াটি অনুসরণ করি। উবুন্টু 22.04 সিস্টেমে pprof ইনস্টল করার জন্য আপনাকে কিছু পদক্ষেপ অনুসরণ করতে হবে। এখানে সেই পদক্ষেপগুলি রয়েছে:







প্রথমত, আমাদের সমস্ত নির্ভরতা ইনস্টল করতে হবে যাতে pprof প্যাকেজটি থেমে না যায়। প্রথমে, নিম্নলিখিত কমান্ড দিয়ে Graphviz নির্ভরতা ইনস্টল করুন:





রুট সুবিধা দিতে 'sudo' ব্যবহার করতে ভুলবেন না। অন্যথায়, সিস্টেম আপনাকে কোনো প্যাকেজ ইনস্টল করার অনুমতি নাও দিতে পারে। নিম্নলিখিত আউটপুট দেখুন:







এখন, সিস্টেমের pprof প্যাকেজের জন্য নির্ভরতা রয়েছে। এটি আপনাকে pprof প্যাকেজ ইনস্টল করার অনুমতি দেয়। GitHub থেকে pprof পেতে 'go get' কমান্ডটি ব্যবহার করুন। এখানে কমান্ড আছে:

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

প্রথমে 'go' প্যাকেজটি ইনস্টল করুন এবং তারপর GitHub থেকে pprof প্যাকেজ পেতে এটি ব্যবহার করুন। আপনি আগের স্ক্রিনশটটিতে দেখতে পাচ্ছেন, 'গো' প্যাকেজটি ইনস্টল করার জন্য আমাদের কাছে তিনটি ভিন্ন বিকল্প রয়েছে, তাই আমরা তাদের যেকোনো একটি ব্যবহার করতে পারি। সবাই সামান্য ভিন্ন বৈশিষ্ট্যের সাথে একই ফলাফল দেয়। যাইহোক, আমরা 'go' প্যাকেজ সংস্করণ '2:1.18~0ubuntu2' ইনস্টল করতে 'sudo apt install golang-go' কমান্ড ব্যবহার করছি। নিম্নলিখিত কমান্ডটি চালান:

এটি আপনাকে 'গো' প্যাকেজের পাশাপাশি এর সমস্ত নির্ভরতা এবং প্রাসঙ্গিক লাইব্রেরি ইনস্টল করতে দেয়। নিম্নলিখিত আউটপুট দেখুন:

এখন, GitHub সংগ্রহস্থলে যান এবং pprof প্যাকেজটি ইনস্টল করুন। একটি pprof প্যাকেজ হল একটি টুল যা প্রোফাইলিং ডেটার বিশ্লেষণ এবং ভিজ্যুয়ালাইজেশনের জন্য ব্যবহৃত হয়, কিন্তু এটি একটি অফিসিয়াল গুগল পণ্য নয়। এই কারণেই আপনি GitHub সংগ্রহস্থল ব্যবহার করতে পারেন এবং 'go' কমান্ডের সাহায্যে ম্যানুয়ালি pprof প্যাকেজ ইনস্টল করতে পারেন। আপনি 'go install github.com/google/ শুরু করার আগে নিশ্চিত করুন যে আপনার সিস্টেম পূর্বশর্তগুলির সমস্ত প্রয়োজনীয়তা পূরণ করে [ইমেল সুরক্ষিত] 'আদেশ। পূর্বশর্তগুলি হল একটি সমর্থিত সংস্করণের একটি 'গো' ডেভেলপমেন্ট কিট এবং প্রোফাইলগুলির গ্রাফিক ভিজ্যুয়ালাইজেশন তৈরি করার জন্য একটি গ্রাফভিজ অ্যাপ্লিকেশন৷ Graphviz অ্যাপ্লিকেশনটি ঐচ্ছিক, তাই আপনি চাইলে এটি এড়িয়ে যেতে পারেন। যেহেতু আমরা উভয়ই ইনস্টল করেছি এবং pprof প্যাকেজের জন্য একটি প্ল্যাটফর্ম প্রস্তুত করেছি, আমাদের সিস্টেম এটি ইনস্টল করার জন্য প্রস্তুত। ইনস্টলেশন প্রক্রিয়া শুরু করার জন্য আমাদের GitHub সংগ্রহস্থলে অ্যাক্সেস পেতে দিন। নিম্নলিখিত কমান্ড দেখুন:

এই কমান্ডটি 'github.com/google/ এ যায় [ইমেল সুরক্ষিত] ' ঠিকানা। GitHub সংগ্রহস্থল থেকে pprof প্যাকেজগুলি ইনস্টল করুন। নিম্নলিখিত ফলাফল দেখুন:

'go' কমান্ডটি প্যাকেজটি ডাউনলোড করেছে এবং এটি উবুন্টু 22.04 সিস্টেমে ধারাবাহিকভাবে ইনস্টল করা হয়েছে। বাইনারিটি ডিফল্টরূপে $HOME/go/bin অবস্থানে ইনস্টল করা থাকে।

Pprof এর ম্যানুয়াল পৃষ্ঠা প্রদর্শন করুন

এখন, pprof প্যাকেজের বিবরণ পেতে pprof এর ম্যানুয়াল পৃষ্ঠাটি দেখুন। ম্যানুয়াল পৃষ্ঠায় প্রতিটির একটি সংক্ষিপ্ত বিবরণ সহ pprof প্যাকেজের জন্য সমস্ত বিকল্প রয়েছে। এটি আপনাকে pprof এর প্রতিটি বিকল্প জানতে এবং সহজেই আপনার কোডগুলিতে সেগুলি ব্যবহার করতে দেয়৷ তাছাড়া, যখনই আপনার প্রয়োজন, আপনি –help পতাকা ব্যবহার করে ম্যানুয়াল পৃষ্ঠায় ফিরে যেতে পারেন। এখানে আপনি কিভাবে এটি করতে পারেন:

এটি আপনার টার্মিনালে সম্পূর্ণ ম্যানুয়াল পৃষ্ঠা প্রদর্শন করে। নিম্নলিখিত এক নজর রাখুন:

আপনি দেখতে পাচ্ছেন, pprof কমান্ডের জন্য অনেকগুলি বিকল্প উপলব্ধ রয়েছে। প্রয়োজনীয় ফরম্যাট করা প্রোফাইলিং ডেটা পেতে আপনি তাদের যেকোনো একটি ব্যবহার করতে পারেন।

ডেটা প্রোফাইলিংয়ের জন্য Pprof ব্যবহার করুন

আপনার প্রোগ্রামে pprof ব্যবহার করতে, প্রথমে pprof প্যাকেজ আমদানি করুন। pprof প্যাকেজ আমদানি করতে নিম্নলিখিত কমান্ড ব্যবহার করুন:

আপনি আমদানি শুরু করার আগে, নিশ্চিত করুন যে অ্যাপ্লিকেশনটি ইতিমধ্যেই একটি HTTP সার্ভার চালাচ্ছে৷ আপনার যদি কোনো HTTP সার্ভার অ্যাপ্লিকেশন সার্ভার চালু না থাকে, তাহলে আপনার আমদানিতে 'net/http' এবং 'লগ' যোগ করে একটি শুরু করা উচিত এবং নিম্নলিখিত কোডটি যোগ করা উচিত:

এখন, আপনি হিপ প্রোফাইল দেখতে pprof কমান্ড ব্যবহার করতে পারেন। নিম্নলিখিত কমান্ডটি http://localhost এর হিপ প্রোফাইল চেক করতে ব্যবহৃত হয়:

এটি প্রোফাইল খুঁজতে শুরু করে এবং http সার্ভারের সাথে সংযোগ করার চেষ্টা করে। নিম্নলিখিত প্রতিক্রিয়া দেখুন:

একই পদ্ধতি অনুসরণ করে, আপনি একটি 30-সেকেন্ডের CPU প্রোফাইল, একটি গোরুটিন ব্লকিং প্রোফাইল, বিতর্কিত মিউটেক্সের ধারক ইত্যাদি দেখতে পারেন।

উপসংহার

এই ম্যানুয়ালটি উবুন্টু 22.04 অপারেটিং সিস্টেমে ব্যবহৃত একটি pprof কমান্ডের একটি দ্রুত ওয়াকথ্রু। লিনাক্স সিস্টেমে pprof কমান্ড কী তা আমরা অন্বেষণ করেছি। এবং আমরা আমাদের উবুন্টু 22.04 সিস্টেমে এটি কীভাবে ইনস্টল করতে হয় তা শিখেছি। আমরা লিনাক্স অপারেটিং সিস্টেমে pprof প্যাকেজের জন্য উপলব্ধ বিভিন্ন বিকল্প সম্পর্কেও শিখেছি। pprof প্যাকেজের মৌলিক কাজ হল রানটাইম প্রোফাইলিং ডেটার জন্য একটি HTTP সার্ভারের মাধ্যমে পরিবেশন করা এবং pprof ভিজ্যুয়ালাইজেশন টুলের মাধ্যমে প্রয়োজনীয় বিন্যাসে প্রোফাইল করা ডেটা প্রদান করা। এটি আপনাকে মাত্র 30 সেকেন্ডের মধ্যে GO প্রোফাইল করতে দেয়।