সিপুটুল - লিনাক্সের যে কোনও প্রক্রিয়ার সীমাবদ্ধতা এবং নিয়ন্ত্রণ CPU ব্যবহার


লিনাক্স পারফরম্যান্স মনিটরিং সরঞ্জামগুলির অধীনে অন্যতম জটিল ক্ষেত্র যা সিস্টেমে কীভাবে বিষয়গুলি প্রকাশ পাচ্ছে তা লক্ষ্য রাখুন।

এই সরঞ্জামগুলির মধ্যে বেশ কয়েকটি কেবল সিস্টেমের অবস্থা/পরিসংখ্যানকে আউটপুট দেয় অন্য কয়েকজন আপনাকে সিস্টেমের কার্য সম্পাদন পরিচালনার মাধ্যম সরবরাহ করে। এমনই একটি সরঞ্জাম যাকে সিপিউটুল বলে।

সিপিইটুল হ'ল একটি সীমাবদ্ধ এবং কোনও প্রক্রিয়ার সিপিইউ ব্যবহারকে নির্দিষ্ট সীমাতে নিয়ন্ত্রণের জন্য শক্তিশালী কমান্ড-লাইন সরঞ্জাম এবং সিস্টেম লোড একটি সংজ্ঞায়িত থ্রোহোল্ডকে ছাড়িয়ে গেলে প্রক্রিয়া সম্পাদনকে বাধা দেয়।

সিপিইউ ব্যবহার সীমাবদ্ধ করার জন্য, সিপুটুল প্রসেসগুলিতে SIGSTOP এবং SIGCONT সিগন্যাল প্রেরণ করে এবং এটি সিস্টেমের লোড দ্বারা নির্ধারিত হয়। এটি পিআইডি এবং তাদের সিপিইউ ব্যবহারের পদক্ষেপগুলি পড়তে/proc সিউডো-ফাইল সিস্টেমের উপর নির্ভর করে।

এটি কোনও একক প্রক্রিয়া বা প্রসেসের একটি গ্রুপ দ্বারা প্রদত্ত সিপিইউ ব্যবহার বা সিস্টেম লোডকে একটি নির্দিষ্ট সীমাতে সীমাবদ্ধ করতে এবং/অথবা সিস্টেম লোড একটি প্রান্তিকের বাইরে চলে গেলে প্রক্রিয়াগুলি স্থগিত করতে ব্যবহৃত হতে পারে।

সিপিইউল ইনস্টল করুন সিপিইউ ব্যবহার এবং লোড গড় সীমিত করতে

একটি সিপিইউটিউল কেবলমাত্র প্যাকেজ পরিচালনা সরঞ্জাম ব্যবহার করে ডিবিয়ান/উবুন্টু এবং এর ডেরাইভেটিভগুলিতে ডিফল্ট সিস্টেমের সংগ্রহস্থল থেকে ইনস্টল করার জন্য উপলব্ধ।

$ sudo apt install cputool

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

# dd if=/dev/zero of=/dev/null &

সিপিইউ ব্যবহার নিরীক্ষণ করতে আমরা সেই ঝলক সরঞ্জামগুলি ব্যবহার করতে পারি যা আমাদের চলমান লিনাক্স সিস্টেম প্রক্রিয়াগুলির একটি রিয়েল-টাইম নিয়মিত আপডেট হওয়া অবস্থা দেখতে দেয়:

# top

উপরের আউটপুট থেকে, আমরা দেখতে পাচ্ছি যে ডিডি কমান্ডের সিপিইউ সময়ের সর্বাধিক শতাংশ রয়েছে 99.7%) এখন আমরা নীচের চিত্রের মতো সিপুটুল ব্যবহার করে এটি সীমাবদ্ধ করতে পারি।

--cpu-limit বা -c পতাকাটি একটি প্রক্রিয়া বা প্রক্রিয়া গোষ্ঠীর জন্য ব্যবহারের শতাংশ নির্ধারণ করতে এবং -p নির্দিষ্ট করতে ব্যবহৃত হয় একটি পিআইডি নিম্নলিখিত কমান্ডটি dd কমান্ড (PID 8275) কে একটি CPU কোর ব্যবহারের 50% সীমাবদ্ধ করবে:

# cputool --cpu-limit 50 -p 8275 

সিপুটুল চালানোর পরে, আমরা আরও একবার প্রসেসের জন্য নতুন সিপিইউ ব্যবহার (পিআইডি 8275) পরীক্ষা করতে পারি। এখন ডিডি প্রক্রিয়াটির জন্য সিপিইউ ব্যবহারের পরিমাণটি (49.0% -52.0%) হতে হবে।

# top

ডিডির সিপিইউ ব্যবহারকে 20% পর্যন্ত সীমাবদ্ধ করতে আমরা দ্বিতীয়বারের জন্য সিপুটুল চালাতে পারি:

# cputool --cpu-limit 20 -p 8275 

তারপরে তাত্ক্ষণিকভাবে এই জাতীয় ঝলকগুলির মতো সরঞ্জামগুলি ব্যবহার করে চেক করুন (ডিডির সিপিইউ ব্যবহার এখন 19.0% -22.0% বা এর থেকে কিছুটা বেশি হওয়া উচিত):

# top

নোট করুন যে সিপুটুল চলাকালীন শেলটি কোনও ব্যবহারকারীর ইনপুট আশা করে না; সুতরাং প্রতিক্রিয়াহীন হয়ে যায়। এটি হত্যা করতে (এটি সিপিইউর ব্যবহার সীমাবদ্ধকরণ অপারেশনটি শেষ করবে), Ctrl + C টিপুন।

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

# pidof apache2
9592 3643 3642 3641 3640 3638 3637 1780

-P পতাকাটি এর মতো ব্যবহার করুন:

# cputool --cpu-limit 20 -P 1780

প্রক্রিয়া বা প্রক্রিয়া গোষ্ঠীটি চলমান অব্যাহত রাখার জন্য সিস্টেমটি যেতে পারে সর্বাধিক লোড নির্দিষ্ট করতে -l বিকল্পটি ব্যবহৃত হয়। আমরা একটি ভগ্নাংশ মূল্য ব্যবহার করতে পারি (উদাঃ 2.5)।

নীচের উদাহরণটির অর্থ কেবলমাত্র স্থানীয় ব্যাকআপের জন্য rsync চালানো যখন কেবল সিস্টেমের লোড 3.5 এর বেশি না হয়:

# cputool --load-limit 3.5 --rsync -av /home/tecmint /backup/`date +%Y-%m-%d`/

আরও তথ্য এবং ব্যবহারের জন্য, সিপিউটুল ম্যান পৃষ্ঠাটি দেখুন:

# man cputool

সিপিইউ তথ্য এবং সিপিইউ কার্যকারিতা পর্যবেক্ষণের জন্য নিম্নলিখিত দরকারী গাইডগুলি পরীক্ষা করে দেখুন:

  1. লিনাক্সে সিপিইউ তথ্য পেতে 9 টি দরকারী কমান্ড
  2. সিপুস্ট্যাট - লিনাক্সে প্রক্রিয়া চালিয়ে সিপিইউ ব্যবহারের উপর নজর রাখে
  3. CoreFreq - লিনাক্স সিস্টেমগুলির জন্য একটি শক্তিশালী সিপিইউ মনিটরিং সরঞ্জাম
  4. লিনাক্সে সর্বাধিক মেমরি এবং সিপিইউ ব্যবহারের মাধ্যমে শীর্ষস্থানীয় চলমান প্রক্রিয়াগুলি সন্ধান করুন

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