অবিচ্ছিন্ন এবং অবিচলিত উপায়ে কীভাবে কার্নেল রানটাইম পরামিতি পরিবর্তন করবেন Change


এর ১৩ তম অংশে চলমান বুট প্রক্রিয়াটির জন্য কার্নেলের কাছে বিকল্পগুলি সরবরাহ করে সিস্টেমের আচরণ পরিবর্তন করার জন্য GRUB কীভাবে ব্যবহার করতে হয়।

একইভাবে, আপনি চলমান লিনাক্স সিস্টেমে কমান্ড লাইনটি নির্দিষ্ট রানটাইম কার্নেল পরামিতিগুলিকে ওয়ান-টাইম পরিবর্তন হিসাবে পরিবর্তন করতে, বা একটি কনফিগারেশন ফাইল সম্পাদনা করে স্থায়ীভাবে ব্যবহার করতে পারেন।

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

/ Proc ফাইল সিস্টেম প্রবর্তন করা হচ্ছে

ফাইল সিস্টেম হায়ারার্কি স্ট্যান্ডার্ডের সর্বশেষতম উল্লেখটি নির্দেশ করে যে /proc প্রক্রিয়া এবং সিস্টেমের তথ্য পাশাপাশি অন্যান্য কার্নেল এবং মেমরির তথ্য পরিচালনা করার জন্য ডিফল্ট পদ্ধতি উপস্থাপন করে। বিশেষত, /proc/sys হল যেখানে আপনি ডিভাইস, ড্রাইভার এবং কিছু কার্নেল বৈশিষ্ট্য সম্পর্কিত সমস্ত তথ্য পেতে পারেন।

/proc/sys এর প্রকৃত অভ্যন্তরীণ কাঠামো ব্যবহার করা কার্নেলের উপর অনেক বেশি নির্ভর করে তবে আপনি নিম্নলিখিত ডিরেক্টরিগুলি ভিতরে খুঁজে পেতে পারেন। পরিবর্তে, তাদের প্রত্যেকটিতে অন্যান্য উপ-ডিরেক্টরি থাকবে যেখানে প্রতিটি প্যারামিটার বিভাগের মানগুলি বজায় থাকে:

  1. dev : মেশিনে সংযুক্ত নির্দিষ্ট ডিভাইসের জন্য প্যারামিটার
  2. fs : ফাইল সিস্টেম কনফিগারেশন (উদাহরণস্বরূপ কোটা এবং ইনোড)
  3. কার্নেল: কার্নেল-নির্দিষ্ট কনফিগারেশন
  4. নেট কোড: নেটওয়ার্ক কনফিগারেশন li
  5. vm : কার্নেলের ভার্চুয়াল মেমরির ব্যবহার

কার্নেল রানটাইম প্যারামিটারগুলি সংশোধন করতে আমরা সিস্টেস্টল কমান্ডটি ব্যবহার করব। যে প্যারামিটারগুলি সংশোধন করা যেতে পারে তার সঠিক সংখ্যাটি এর সাথে দেখা যেতে পারে:

# sysctl -a | wc -l

আপনি যদি কার্নেল প্যারামিটারগুলির সম্পূর্ণ তালিকা দেখতে চান তবে কেবল এটি করুন:

# sysctl -a 

উপরের কমান্ডের আউটপুটটিতে অনেকগুলি লাইন থাকবে, তাই আমরা আরও কম সতর্কতার সাথে পরিদর্শন করার জন্য একটি পাইপলাইন ব্যবহার করতে পারি:

# sysctl -a | less

আসুন প্রথম কয়েকটি লাইন একবার দেখে নিই। দয়া করে নোট করুন যে প্রতিটি লাইনের প্রথম অক্ষর /proc/sys এর মধ্যে ডিরেক্টরিগুলির নামের সাথে মেলে:

উদাহরণস্বরূপ, হাইলাইট করা লাইন:

dev.cdrom.info = drive name:        	sr0

ইঙ্গিত দেয় যে sr0 অপটিকাল ড্রাইভের একটি নাম alias অন্য কথায়, এইভাবে কার্নেলটি "ড্রাইভ" চালনা করে এবং সেই নামটি উল্লেখ করতে ব্যবহার করে।

নিম্নলিখিত বিভাগে আমরা লিনাক্সের অন্যান্য "আরও গুরুত্বপূর্ণ" কার্নেল রানটাইম পরামিতিগুলি কীভাবে পরিবর্তন করব তা ব্যাখ্যা করব।

লিনাক্স কার্নেল রানটাইম প্যারামিটারগুলি কীভাবে পরিবর্তন বা সংশোধন করবেন

আমরা এখনও অবধি যা ব্যাখ্যা করেছি তার ভিত্তিতে, এটি দেখতে সহজ যে কোনও পরামিতির নামটি /proc/sys এর ভিতরে ডিরেক্টরি কাঠামোর সাথে মেলে যেখানে এটি পাওয়া যাবে।

উদাহরণ স্বরূপ:

dev.cdrom.autoclose → /proc/sys/dev/cdrom/autoclose
net.ipv4.ip_forward → /proc/sys/net/ipv4/ip_forward

এটি বলেছিল, আমরা সিস্টেস্টল ব্যবহার করে একটি নির্দিষ্ট লিনাক্স কার্নেল প্যারামিটারের মান দেখতে পারি যার পরে প্যারামিটারের নাম বা সম্পর্কিত ফাইলটি পড়ে:

# sysctl dev.cdrom.autoclose
# cat /proc/sys/dev/cdrom/autoclose
# sysctl net.ipv4.ip_forward
# cat /proc/sys/net/ipv4/ip_forward

কার্নেল প্যারামিটারের মান নির্ধারণের জন্য আমরা সিসটেল ব্যবহার করতে পারি তবে -w বিকল্পটি ব্যবহার করে প্যারামিটারের নাম, সমান চিহ্ন এবং পছন্দসই মানটি অনুসরণ করতে পারি।

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

# echo 0 > /proc/sys/net/ipv4/ip_forward
# sysctl -w net.ipv4.ip_forward=0

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

এই মানগুলিকে স্থায়ীভাবে সেট করতে, পছন্দসই মানগুলির সাথে /etc/sysctl.conf সম্পাদনা করুন। উদাহরণস্বরূপ, /etc/sysctl.conf এ প্যাকেট ফরওয়ার্ডিং অক্ষম করতে নিশ্চিত করুন যে ফাইলটিতে এই লাইনটি উপস্থিত হয়েছে:

net.ipv4.ip_forward=0

তারপরে চলমান কনফিগারেশনে পরিবর্তনগুলি প্রয়োগ করতে নিম্নলিখিত কমান্ডটি চালান।

# sysctl -p

গুরুত্বপূর্ণ কার্নেল রানটাইম পরামিতিগুলির অন্যান্য উদাহরণগুলি:

fs.file-max সিস্টেমের জন্য কার্নেল বরাদ্দ করতে পারে এমন সর্বাধিক সংখ্যক ফাইল হ্যান্ডলগুলি নির্দিষ্ট করে। আপনার সিস্টেমে (ওয়েব/ডাটাবেস/ফাইল সার্ভার, কয়েকটি উদাহরণের নাম দেওয়ার জন্য) ব্যবহারের উপর নির্ভর করে আপনি সিস্টেমের প্রয়োজনীয়তা মেটাতে এই মানটি পরিবর্তন করতে চাইতে পারেন।

অন্যথায়, আপনি সর্বোত্তমভাবে একটি "অনেকগুলি ওপেন ফাইল" ত্রুটি বার্তা পাবেন এবং অপারেটিং সিস্টেমটিকে সবচেয়ে খারাপভাবে বুট করতে বাধা দিতে পারে।

যদি কোনও নির্দোষ ভুলের কারণে আপনি নিজেকে এই শেষ পরিস্থিতিতে আবিষ্কার করেন তবে একক ব্যবহারকারী মোডে বুট করুন (১৪ অনুচ্ছেদে বর্ণিত হিসাবে - এই সিরিজের লিনাক্স প্রক্রিয়া সীমাবদ্ধতা ব্যবহারের উপর নজর রাখুন এবং সেট করুন।

আপনার কোড কীবোর্ডে সিসআরকি কী সক্ষম করতে (কোড প্রিন্ট স্ক্রিন কী হিসাবে পরিচিত) কার্নেল.সিসারকিউ ব্যবহার করা হয় যাতে সিস্টেম প্রতিক্রিয়াশীল হয়ে যাওয়ার পরে কিছু কী সংমিশ্রণকে জরুরি ক্রিয়াকলাপ শুরু করতে দেয়।

ডিফল্ট মান (১)) নির্দেশ করে যে সিস্টেমটি Alt + SysRq + key সমন্বয়কে সম্মান জানাবে এবং কার্নেল.আরজে পাওয়া সিস্টার্ক.সি. ডকুমেন্টেশনে তালিকাভুক্ত ক্রিয়া সম্পাদন করবে (যেখানে কীটিতে একটি বর্ণ রয়েছে bz ব্যাপ্তি)। উদাহরণস্বরূপ, Alt + SysRq + b কার্যকরভাবে সিস্টেমটিকে পুনরায় চালু করবে (এটি আপনার সার্ভার প্রতিক্রিয়াবিহীন হলে একটি শেষ অবলম্বন হিসাবে ব্যবহার করুন)।

সতর্কতা! ভার্চুয়াল মেশিনে এই কী সংমিশ্রণটি টিপে দেখার চেষ্টা করবেন না কারণ এটি আপনার হোস্ট সিস্টেমটিকে রিবুট করতে বাধ্য করতে পারে!

1 এ সেট করা হলে, নেট.ipv4.icmp_echo_ignore_all পিংয়ের অনুরোধগুলি উপেক্ষা করবে এবং সেগুলি কার্নেল স্তরে ফেলে দেবে। এটি নীচের চিত্রটিতে দেখানো হয়েছে - এই কার্নেল প্যারামিটারটি সেট করার পরে কীভাবে পিংয়ের অনুরোধগুলি হারিয়ে গেছে তা নোট করুন:

পৃথক রানটাইম প্যারামিটার সেট করার একটি আরও ভাল এবং সহজ উপায় হল /etc/sysctl.d এর ভিতরে .conf ফাইলগুলি ব্যবহার করে তাদের বিভাগ অনুসারে গ্রুপিং করা।

উদাহরণস্বরূপ, /etc/sysctl.conf এ নেট.ipv4.ip_forward = 0 এবং নেট.ipv4.icmp_echo_ignore_all = 1 সেট করার পরিবর্তে, আমরা নেট.conf নামে একটি নতুন ফাইল তৈরি করতে পারি/ইত্যাদি/sysctl.d:

# echo "net.ipv4.ip_forward=0" > /etc/sysctl.d/net.conf
# echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.d/net.conf

আপনি যদি এই পদ্ধতির ব্যবহার চয়ন করেন তবে /etc/sysctl.conf থেকে সেই একই লাইনগুলি সরাতে ভুলবেন না।

সারসংক্ষেপ

এই নিবন্ধে আমরা ব্যাখ্যা করেছি যে কীভাবে কর্নেল রানটাইম প্যারামিটারগুলি পরিবর্তন করতে হবে, অবিচ্ছিন্ন এবং অবিচ্ছিন্নভাবে উভয়ই, সিস্টেস্টল, /etc/sysctl.conf এবং /etc/sysctl.d এর মধ্যে ফাইল ব্যবহার করে।

সিস্কিটল ডক্সে আপনি আরও ভেরিয়েবলের অর্থ সম্পর্কে আরও তথ্য পেতে পারেন। এই ফাইলগুলি sysctl এর মাধ্যমে সেট করা যেতে পারে যে পরামিতিগুলি সম্পর্কে ডকুমেন্টেশনের সর্বাধিক সম্পূর্ণ উত্সকে উপস্থাপন করে।

আপনিকি এই নিবন্ধটি কার্যকর মনে করেন? আমরা অবশ্যই আশা করি আপনি করেছেন। আপনার উন্নতি করার জন্য কোনও প্রশ্ন বা পরামর্শ থাকলে আমাদের জানাতে দ্বিধা করবেন না।