লিনাক্সে প্রতি প্রক্রিয়া মেমরির ব্যবহার কীভাবে পরীক্ষা করবেন

How Check Memory Usage Per Process Linux



আজকাল, একটি কম্পিউটার একবারে অনেক প্রোগ্রাম চালাতে পারে। সিপিইউতে এই সমস্ত প্রোগ্রামগুলি পরিচালনা করতে কোনও সমস্যা নেই কারণ সিপিইউতে মাল্টি-টাস্কিং পরিচালনা করার জন্য একাধিক কোর রয়েছে।

এই প্রোগ্রামগুলির প্রত্যেকটি এক বা একাধিক প্রক্রিয়া হিসাবে চলে। প্রতিটি প্রক্রিয়া নিজের জন্য কিছু পরিমাণ RAM বা মেমরি বরাদ্দ করে। প্রক্রিয়াটি সঠিকভাবে কাজ করার জন্য এটি অপরিহার্য। যদি একটি প্রক্রিয়া পর্যাপ্ত RAM বা মেমরি বরাদ্দ করতে ব্যর্থ হয়, তাহলে প্রক্রিয়াটি তৈরি করা যাবে না এবং প্রোগ্রামটি শুরু করতে পারবে না।







সুতরাং, আপনার কম্পিউটারে আপনি যে মৌলিক কাজটি করেন তা হল প্রতিটি প্রক্রিয়া কতটা মেমরি বা RAM (র্যান্ডম অ্যাক্সেস মেমরি) ব্যবহার করছে তা পরীক্ষা করা। কারণ, আপনার কম্পিউটারের RAM বা মেমরি সীমিত।



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



এই নিবন্ধে, আমি আপনাকে দেখাব কিভাবে আপনার লিনাক্স মেশিনে চলমান প্রতিটি প্রক্রিয়ার মেমরি ব্যবহার চেক করবেন। আমি এই নিবন্ধে সমস্ত প্রদর্শনের জন্য ডেবিয়ান 9 স্ট্রেচ ব্যবহার করব। তবে এটি যে কোনও আধুনিক লিনাক্স বিতরণে কাজ করা উচিত। চল শুরু করি.





আপনি ব্যবহার করতে পারেন পুনশ্চ লিনাক্সে সমস্ত প্রসেসের মেমরি ব্যবহার চেক করার কমান্ড। এই পদ্ধতিতে একটি সমস্যা আছে। পুনশ্চ একটি প্রক্রিয়া KB বা MB ফরম্যাটে কতটা মেমরি ব্যবহার করে তা আপনাকে দেখায় না, তবে এটি আপনাকে দেখাবে যে শতাংশে কত মেমরি ব্যবহার করা হচ্ছে।

আপনি নিম্নলিখিত কমান্ড দিয়ে আপনার লিনাক্স অপারেটিং সিস্টেমে চলমান সমস্ত প্রক্রিয়ার মেমরির ব্যবহার (শতাংশে) পরীক্ষা করতে পারেন:



$পুনশ্চ -অথবাpid, ব্যবহারকারী,%মেম,কমান্ডকুড়াল| সাজান -বি -কে 3 -আর

আপনি দেখতে পাচ্ছেন, শতকরা মেমোরির ব্যবহার সহ সমস্ত প্রক্রিয়াগুলি ক্রমবর্ধমান ক্রমে তালিকাভুক্ত করা হয়েছে (বেশিরভাগ মেমরি ব্যবহার করে প্রক্রিয়াগুলি প্রথমে তালিকাভুক্ত করা হয়েছে)।

Pmap দিয়ে প্রসেসের মেমরি ব্যবহার চেক করা হচ্ছে:

আপনি একটি প্রক্রিয়ার মেমরি বা মানুষের পাঠযোগ্য বিন্যাসে (KB বা কিলোবাইটে) প্রক্রিয়াগুলির একটি সেট পরীক্ষা করতে পারেন pmap কমান্ড আপনার যা প্রয়োজন তা হল সেই প্রক্রিয়াগুলির PID যা আপনি মেমরির ব্যবহার পরীক্ষা করতে চান।

ধরা যাক, আপনি PID 917 এর সাথে প্রক্রিয়াটি কতটা মেমরি ব্যবহার করছে তা পরীক্ষা করতে চান। এটি করার জন্য, চালান pmap নিম্নরূপ:

$sudopmap917

আপনি দেখতে পাচ্ছেন, 917 প্রক্রিয়া দ্বারা ব্যবহৃত মোট মেমরি 516104 KB বা কিলোবাইট। PID 917 দিয়ে প্রক্রিয়া চালানোর জন্য লাইব্রেরি এবং অন্যান্য ফাইলগুলি কতটা মেমরি ব্যবহার করছে তা আপনি এখানেও দেখতে পারেন।

আপনি যদি লাইব্রেরি বা অন্যান্য নির্ভরশীল ফাইলগুলি কতটা মেমরি ব্যবহার করছেন সে সম্পর্কে চিন্তা না করেন তবে চালান pmap নিম্নরূপ:

$sudopmap917 | লেজ -এন

আপনি দেখতে পাচ্ছেন, PID 917 এর সাথে প্রক্রিয়া দ্বারা ব্যবহৃত মোট মেমরি স্ক্রিনে মুদ্রিত হয়।

আপনি যদি চান, আপনি এটি দিয়ে আরও ফিল্টার করতে পারেন awk এবং শুধুমাত্র KB বা কিলোবাইটের আকার পান। এটি করার জন্য, চালান pmap নিম্নরূপ:

$sudopmap917 | লেজ -এন | awk ' / [0-9] কে / {মুদ্রণ $ 2}'

আপনি দেখতে পাচ্ছেন, কেবল KB বা কিলোবাইটে মেমরির ব্যবহার মুদ্রিত হয়।

এখন আপনি তাদের পিআইডি ব্যবহার করে একাধিক প্রক্রিয়া দ্বারা কত মেমরি ব্যবহার করা হয় তা তালিকাভুক্ত করতে পারেন pmap নিম্নরূপ:

$sudopmap917 531 | খপ্পরমোট

বিঃদ্রঃ: এখানে 917 এবং 531 হল প্রসেস আইডি বা পিআইডি। আপনি এই ভাবে আপনি যতটা PIDs রাখতে পারেন।

কিলোবাইটের সমস্ত প্রসেসের মেমরি ব্যবহারের তালিকা করার জন্য pmap ব্যবহার করা:

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

প্রথমে একটি নতুন ফাইল তৈরি করুন sysmon নিম্নলিখিত কমান্ড দিয়ে আপনার বর্তমান কাজের ডিরেক্টরিতে:

$স্পর্শsysmon

এখন নিম্নলিখিত কমান্ড দিয়ে ফাইলটি এক্সিকিউটেবল করুন:

$chmod+x sysmon

sysmon শেল স্ক্রিপ্ট যা সমস্ত চলমান প্রক্রিয়া প্রদর্শন করবে পিআইডি , মালিক , স্মৃতি (ক্রমবর্ধমান ক্রমে KB তে) এবং আদেশ । চল শুরু করি.

খোলা sysmon আপনার প্রিয় টেক্সট এডিটর সহ স্ক্রিপ্ট, আমি ব্যবহার করতে যাচ্ছি কেট

এখন, আমি যে প্রথম কমান্ডটি চালাতে যাচ্ছি তা আমাকে দেবে পিআইডি , মালিক এবং আদেশ কোলন (:) প্রতীক দ্বারা পৃথক সমস্ত চলমান প্রক্রিয়াগুলির মধ্যে এবং এটিতে সংরক্ষণ করুন RAWIN পরিবর্তনশীল তারপর আউটপুট মাধ্যমে লুপ এবং পর্দায় এটি মুদ্রণ।

আপনি দেখতে পাচ্ছেন, আমি সঠিক আউটপুট পাচ্ছি।

এখন প্রতিটি লাইন প্রক্রিয়া করার সময়, কোলন সীমিত তথ্য পৃথক ভেরিয়েবলে সংরক্ষণ করুন। লাইন 7, 8 এবং 9 এ আমি এটাই করেছি।

আপনি দেখতে পাচ্ছেন, আমি মুদ্রণ করতে পারি পিআইডি , মালিক এবং আদেশ এখন আমার নিজস্ব বিন্যাসে।

এখন সময় এসেছে প্রতিটি পিআইডির মেমরি ব্যবহার করার। লাইন 10 ঠিক তাই করে।

আপনি দেখতে পারেন, সবকিছু নিখুঁতভাবে কাজ করছে। এখন আমি কিলোবাইটে (KB) প্রতিটি প্রক্রিয়ার মেমরি ব্যবহার মুদ্রণ করতে পারি।

এখন যা করার বাকি আছে তা হল সুন্দর দেখতে আউটপুট ফরম্যাট করা। আমি টেবিল ফরম্যাট পছন্দ করি। লাইন 5 টেবিলের প্রতিটি কলামের হেডার প্রিন্ট করে।

অবশেষে, আমি ছাপলাম পিআইডি , মালিক , স্মৃতি (কেবিতে) এবং আদেশ লাইন 14 ব্যবহার করে একটি সারণী বিন্যাসে প্রতিটি প্রক্রিয়ার।

আপনি দেখতে পাচ্ছেন, এটি কিছুটা ভাল কাজ করছে। একটু সমস্যা আছে যদিও, প্রক্রিয়াগুলি সঠিকভাবে মেমরি ব্যবহারের দ্বারা ক্রমবর্ধমান ক্রমানুসারে সাজানো হয় না।

এটি ঠিক করার জন্য, আমি সরিয়েছি সাজান -bnr -k3 লাইন 3 থেকে এবং একটি শেল ফাংশনে সবকিছু আবৃত sysmon_main () । তারপর বাছাইয়ের কাজ ছেড়ে দিলেন সাজান কমান্ড

চূড়ান্ত শেল স্ক্রিপ্টটি এরকম কিছু দেখায়:

আপনি দেখতে পাচ্ছেন, এটি দুর্দান্ত কাজ করে।

এখন আপনি এটিকে কোথাও সরিয়ে নিতে পারেন /usr/bin এবং অন্যান্য কমান্ডের মত এটি নিচের মত করে চালান:

$sudo mv -ভিsysmon/ইউএসআর/আমি

নির্বাহ sysmon :

এই নিবন্ধটি পড়ার জন্য ধন্যবাদ।