কীভাবে লিনাক্স প্রক্রিয়া অগ্রাধিকার সেট করবেন সুন্দর এবং রেনিস কমান্ড ব্যবহার করে


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

আরও পড়ুন: প্রতি ব্যবহারকারী ভিত্তিতে লিনাক্স প্রক্রিয়াগুলি কীভাবে পর্যবেক্ষণ এবং প্রক্রিয়া সীমা নির্ধারণ করবেন

একটি কার্নেল শিডিয়ুলার কার্নেলের একটি ইউনিট যা পরবর্তী সঞ্চালনের জন্য সমস্ত চলমান প্রক্রিয়াগুলির মধ্যে সবচেয়ে উপযুক্ত প্রক্রিয়া নির্ধারণ করে; এটি কোনও সিস্টেমে চলমান প্রক্রিয়াগুলির মধ্যে প্রসেসরের সময় বরাদ্দ করে। একটি চলমান প্রক্রিয়া এমন একটি যা কেবল সিপিইউ সময়ের জন্য অপেক্ষা করে থাকে, এটি কার্যকর করার জন্য প্রস্তুত।

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

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

লিনাক্সে মোট 140 টি অগ্রাধিকার এবং দুটি স্বতন্ত্র অগ্রাধিকার রেঞ্জ প্রয়োগ করা হয়েছে। প্রথমটি হ'ল একটি দুর্দান্ত মান (বিশেষত্ব) যা -20 (সর্বোচ্চ অগ্রাধিকার মান) থেকে 19 (সর্বনিম্ন অগ্রাধিকার মান) থেকে শুরু করে এবং ডিফল্টটি 0 , আমরা এই গাইডটিতে এটি উন্মোচন করব। অন্যটি হ'ল রিয়েল-টাইম অগ্রাধিকার, যা ডিফল্টরূপে 1 থেকে 99 অবধি, তবে 100 থেকে 139 টি ব্যবহারকারীর স্পেসের জন্য।

লিনাক্সের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হ'ল গতিশীল অগ্রাধিকার-ভিত্তিক সময়সূচী, যা আপনার প্রয়োজনের উপর নির্ভর করে প্রক্রিয়াগুলির দুর্দান্ত মানটিকে পরিবর্তন (বৃদ্ধি বা হ্রাস) করতে দেয়, যেমন আমরা পরে দেখব।

লিনাক্স প্রক্রিয়াগুলির ভাল মূল্য কীভাবে পরীক্ষা করবেন

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

ব্যবহারকারী-সংজ্ঞায়িত ফর্ম্যাটে পিএস কমান্ড সহ প্রসেসগুলি ভাল মান দেখতে (এখানে এনআই কলামটি প্রক্রিয়াগুলির বিশেষত্ব দেখায়)।

$ ps -eo pid,ppid,ni,comm

বিকল্প হিসাবে, আপনি লিনাক্স প্রসেসগুলি দেখানো মত সুন্দর মানগুলি দেখতে শীর্ষ বা htop ইউটিলিটিগুলি ব্যবহার করতে পারেন।

$ top
$ htop

উপরের শীর্ষ এবং হটোপ আউটপুটগুলি থেকে, আপনি লক্ষ্য করবেন যে PR এবং পিআরআই নামে একটি কলাম রয়েছে যা কোনও প্রক্রিয়াটির অগ্রাধিকার দেখায়।

এটি এর অর্থ এর অর্থ:

  • NI - এটি একটি দুর্দান্ত মান, যা ব্যবহারকারী-স্থান ধারণা,
  • PR বা পিআরআই - লিনাক্স কার্নেলের দ্বারা দেখা হিসাবে প্রক্রিয়াটির আসল অগ্রাধিকার

Total number of priorities = 140
Real time priority range(PR or PRI):  0 to 99 
User space priority range: 100 to 139

দুর্দান্ত মান পরিসীমা (এনআই): -20 থেকে 19

PR = 20 + NI
PR = 20 + (-20 to + 19)
PR = 20 + -20  to 20 + 19
PR = 0 to 39 which is same as 100 to 139.

তবে আপনি যদি নীচের স্ক্রিনশটটিতে দেখানো একটি সংখ্যার চেয়ে কোনও আরটি দেখতে পান তবে এর মূলত অর্থ প্রক্রিয়াটি রিয়েল-টাইম শিডিয়ুলিং অগ্রাধিকারের অধীনে চলছে।

লিনাক্সে প্রদত্ত সুন্দর মান সহ একটি কমান্ড কীভাবে চালানো যায়

এখানে, আমরা কোনও প্রোগ্রাম বা কমান্ডের সিপিইউ ব্যবহারকে কীভাবে অগ্রাধিকার দিতে হবে তা দেখব। আপনার যদি খুব সিপিইউ-নিবিড় প্রোগ্রাম বা টাস্ক থাকে তবে আপনি এটিও বুঝতে পেরেছেন যে এটি সম্পূর্ণ হতে দীর্ঘ সময় নিতে পারে, আপনি সুন্দর কমান্ডটি ব্যবহার করে এটিকে একটি উচ্চ বা অনুকূল অগ্রাধিকার সেট করতে পারেন।

বাক্য গঠনটি নিম্নরূপ:

$ nice -n niceness-value [command args] 
OR
$ nice -niceness-value [command args] 	#it’s confusing for negative values
OR
$ nice --adjustment=niceness-value [command args]

গুরুত্বপূর্ণ:

  • যদি কোনও মান সরবরাহ করা হয় না, তবে ডিফল্টরূপে 10 এর অগ্রাধিকার সেট করে nice
  • একটি কমান্ড বা প্রোগ্রাম শূন্যের অগ্রাধিকারের জন্য সুন্দর ডিফল্ট ছাড়াই চালিত হয়
  • কেবলমাত্র রুট একটি বর্ধিত বা উচ্চ অগ্রাধিকার সহ একটি কমান্ড বা প্রোগ্রাম চালাতে পারে
  • সাধারণ ব্যবহারকারীরা কেবলমাত্র কম অগ্রাধিকার সহ একটি কমান্ড বা প্রোগ্রাম চালাতে পারেন

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

$ sudo nice -n 5 tar -czf backup.tar.gz ./Documents/*
OR
$ sudo nice --adjustment=5 tar -czf backup.tar.gz ./Documents/*

আপনি তৃতীয় পদ্ধতিটিও ব্যবহার করতে পারেন যা কিছুটা বিভ্রান্তিকর, বিশেষত নেতিবাচক কমনীয়তার মানগুলির জন্য।

$ sudo nice -5 tar -czf backup.tar.gz  ./Documents/*

লিনাক্সে কোনও প্রক্রিয়াটির নির্ধারিত অগ্রাধিকার পরিবর্তন করুন

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

$ renice -n  -12  -p 1055
$ renice -n -2  -u apache

নীচের নমুনা শীর্ষের আউটপুট থেকে, পিআইডি 1055 সহ টিমস্পের + এর বিশেষত্বটি এখন -12 এবং ব্যবহারকারী অ্যাপাচে মালিকানাধীন সমস্ত প্রক্রিয়ার জন্য -2

এখনও এই আউটপুটটি ব্যবহার করে, আপনি PR = 20 + NI সূত্রটি দেখতে পাবেন,

PR for ts3server = 20 + -12 = 8
PR for apache processes = 20 + -2 = 18

কোনও ব্যবহারকারীর প্রসেস সুন্দর মানগুলিতে আপনি রিনিস কমান্ড দিয়ে যে কোনও পরিবর্তনগুলি কেবলমাত্র পরবর্তী পুনরায় বুট হওয়া পর্যন্ত প্রযোজ্য। স্থায়ী ডিফল্ট মান সেট করতে, পরবর্তী বিভাগটি পড়ুন।

নির্দিষ্ট ব্যবহারকারীর প্রক্রিয়াগুলির ডিফল্ট সুন্দর মান কীভাবে সেট করবেন

আপনি কোনও নির্দিষ্ট ব্যবহারকারী বা গোষ্ঠীর /etc/security/limits.conf ফাইলে ডিফল্ট সুন্দর মান সেট করতে পারেন। এর প্রাথমিক কাজটি প্যামের মাধ্যমে লগ ইন করা ব্যবহারকারীদের জন্য সংস্থান সীমা নির্ধারণ করা def

ব্যবহারকারীর জন্য সীমা নির্ধারণের বাক্য গঠনটি নিম্নরূপ (এবং বিভিন্ন কলামের সম্ভাব্য মানগুলি ফাইলটিতে ব্যাখ্যা করা হয়েছে):

#<domain>   <type>  <item>  <value>

এখন নীচের বাক্য গঠনটি ব্যবহার করুন যেখানে শক্ত - এর অর্থ হার্ড লিঙ্কগুলি প্রয়োগ করা এবং নরম উপায় - নরম সীমাবদ্ধতা প্রয়োগ করা।

<username>  <hard|soft>  priority  <nice value>

বিকল্পভাবে, /etc/security/limits.d/ এর অধীনে একটি ফাইল তৈরি করুন যা উপরের মূল ফাইলে সেটিংসকে ওভাররাইড করে এবং এই ফাইলগুলি বর্ণানুক্রমিকভাবে পড়া হয়।

ব্যবহারকারী টেকমিন্টের জন্য ফাইল /etc/security/limits.d/tecmint-priority.conf তৈরি করে শুরু করুন:

# vi /etc/security/limits.d/tecmint-priority.conf

তারপরে এটিতে এই কনফিগারেশনটি যুক্ত করুন:

tecmint  hard  priority  10

সংরক্ষণ করুন এবং ফাইলটি বন্ধ করুন। এখন থেকে, টেকমিন্টের মালিকানাধীন যে কোনও প্রক্রিয়াটির মান 10 এবং পিআর 30 এর সুন্দর মান থাকবে।

আরও তথ্যের জন্য, সুন্দর এবং রেনিসের ম্যান পেজগুলি পড়ুন:

$ man nice
$ man renice 

আপনি লিনাক্স প্রক্রিয়া পরিচালনা সম্পর্কে নিম্নলিখিত নিবন্ধগুলি পড়তে পছন্দ করতে পারেন।

  1. লিনাক্সে চলমান প্রক্রিয়াগুলি কীভাবে সন্ধান করতে এবং হত্যা করতে হবে
  2. লিনাক্সে একটি প্রক্রিয়া শেষ করার জন্য কিল, পিল এবং কিল্লাল কমান্ডের একটি গাইড
  3. কীভাবে সিস্টেমের ব্যবহার, আউটজেস এবং সমস্যা সমাধানের লিনাক্স সার্ভারগুলি পর্যবেক্ষণ করবেন
  4. li
  5. সিপুটুল - লিনাক্সের যে কোনও প্রক্রিয়ার সীমাবদ্ধতা এবং নিয়ন্ত্রণ সিপিইউ ব্যবহার

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