كيفية تغيير معاملات تشغيل النواة بطريقة دائمة وغير دائمة

في الجزء 13 من هذه سلسلة LFCS (Linux Foundation Certified Sysadmin) شرحنا كيفية استخدام GRUB لتعديل سلوك النظام عن طريق تمرير الخيارات إلى النواة لعملية الإقلاع الحالية.

بالمثل، يمكنك استخدام سطر الأوامر في نظام Linux الجاري لتعديل بعض معلمات النواة أثناء التشغيل كتعديل مرة واحدة، أو بشكل دائم عن طريق تحرير ملف تكوين.

بالتالي، يُسمح لك بتمكين أو تعطيل معلمات النواة على الطاير دون صعوبة كبيرة عند الحاجة إليها بسبب التغيير المطلوب في طريقة تشغيل النظام المتوقعة.

تقديم نظام الملفات /proc

تشير المواصفة الأخيرة لـ معيار تسلسل النظام الملفي إلى أن /proc يمثل الطريقة الافتراضية لمعالجة معلومات العمليات والنظام وكذلك معلومات النواة والذاكرة الأخرى. على وجه الخصوص، /proc/sys هو المكان الذي يمكنك العثور فيه على جميع المعلومات حول الأجهزة والتعريفات وبعض ميزات النواة.

الهيكل الداخلي الفعلي لـ /proc/sys يعتمد بشكل كبير على النواة المستخدمة، ولكن من المرجح أن تجد الدلائل التالية داخله. بدوره، ستحتوي كل منها على دلائل فرعية أخرى حيث يتم الاحتفاظ بقيم لكل فئة معلمات:

  1. dev: met ajawib al-mustaqbal li-l-gera’at al-mutawasital al-mulaqatah ila al-ma’khad.
  2. fs: تكوين النظام الملفات (الحصص والعناصر النقاشية، على سبيل المثال).
  3. kernel: تكوين برنامج النواة.
  4. net: تكوين الشبكة.

vm: استخدام تراخيص الذاكرة ال Virtua lMemory.

# sysctl -a | wc -l

للتعديل على معاملات برنامج النواة الجارية سوف نستخدم أمر sysctl. يمكننا رؤية عدد المعاملات التي يمكن التعديل عليها باستخدام:

# sysctl -a 

إذا كنتem ترغبem في رؤية قائمة كاملة من معاملات برنامج النواة، فافعل:

# sysctl -a | less

كما يتراوح إخراج الأمر السابق بين كمية كبيرة من السطور، فيمكننا استخدام سلسلة من الأوامر تليها less للتحقق منها بشكل أفضل:

Understand Linux /proc Filesystem

دعونا نتطمئن إلى بعض السطور الأولى. يرجى ملاحظة أن الأحرف الأولى في كل سطر تتطابق مع أسماء الدلائل داخل /proc/sys:

dev.cdrom.info = drive name:        	sr0

على سبيل المثال، السطر الم souligné:يشير إلى أن sr0 هو اسم بديل للقرص المشابه للقرص المطوي. ببساطة معناه أن هذا هو كيف يراه النواة هذا القرص ويستخدم اسمه هذا للإشارة إليه.

في الجزء التالي سوف نشرح كيفية تغيير معاملات برنامج النواة الأهمة الأخرى في Linux.

كيفية تغيير أو تعديل معاملات برنامج النواة الجارية في Linux.

بناءً على ما وصفناه من قبل، يبين اسم المعامل أنه مطابق لترتيب الدلائل داخل /proc/sys حيث يمكن إ fine هذا المعامل.

على سبيل المثال:

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

فحص معاملات برنامج النواة [diy18]

# sysctl dev.cdrom.autoclose
# cat /proc/sys/dev/cdrom/autoclose
# sysctl net.ipv4.ip_forward
# cat /proc/sys/net/ipv4/ip_forward
Check Linux Kernel Parameters

تعيين وتحديث معامل نواة Linux

يمكننا تعيين قيمة لمعامل نواة باستخدام sysctl، وباستخدام خيار -w والتالي باسم المعامل والرمز المساوي والقيمة المرادة.

يمكن التحقق من قيمة معامل نواة باستخدام sysctl أو قراءة الملف المرتبط به.

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

يجب علمًا بأن معامل النواة التي تتم تعيينها باستخدام sysctl ست application فقط Permanently during the current session وسيتم اختفاءها عند إعادة تشغيل النظام.

لتعيين هذه القيم بشكل دائم، قم بتحرير /etc/sysctl.conf بالقيم المرادة. على سبيل المثال، لتعطيل وظيفة تبادل الحزم في /etc/sysctl.conf تأكد من وجود هذه السطر في الملف:

net.ipv4.ip_forward=0

ثم تنفيذ الأمر التالي لتطبيق التغييرات على التكوين الجاري.

# sysctl -p

على سبيل المثال، عدد الملفات التي يمكن للنواة تحديدها للنظام. حسب استخدام النظام المقصود (وWWW /

fs.file-max تحديد عدد الملفات التي يمكن للنواة تحديدها للنظام. حسب استخدام النظام المقصود (وبرامج وبيانات وسيرفر الملفات كبعض الأمثلة المثيرة للاهتمام) ، قد ترغب في تغيير هذا القيمة لللاحتياجات النظامية.

وإلا، ستتلقى رسالة خطأ “عدد كبير جدًا من الملفات المفتوحة” على أفضل الأحوال، وقد تمنع نظام التشغيل من البدء في أسوأ الظروف.

إذا كنت في هذا الوضع الأخير بسبب خطأ بريء، قم بالبدء في وضع المستخدم الفردي (كما هو موضح في الجزء 13 – تكوين وحل مشكلات محمل التمهيد Grub في Linux) وقم بتحرير /etc/sysctl.conf كما هو موضح سابقًا. لتعيين نفس القيد على أساس لكل مستخدم، راجع الجزء 14 – رصد وتعيين استخدام حدود العمليات في Linux من هذه السلسلة.

يُستخدم kernel.sysrq لتمكين مفتاح SysRq على لوحة المفاتيح الخاصة بك (المعروف أيضًا باسم مفتاح طباعة الشاشة) للسماح بتنفيذ إجراءات طارئة عندما يصبح النظام غير مستجيب.

القيمة الافتراضية (16) تشير إلى أن النظام سيحترم مفتاح Alt+SysRq+key وينفذ الإجراءات المدرجة في وثائق sysrq.c الموجودة في kernel.org (حيث key هو حرف واحد في نطاق b-z). على سبيل المثال، Alt+SysRq+b سيقوم بإعادة تشغيل النظام بقوة (استخدم هذا كحل آخر إذا كان الخادم غير مستجيب).

تحذير! لا تحاول الضغط على هذا الجمع بين المفاتيح على الجهاز الافتراضي لأنه قد يؤدي إلى إعادة تشغيل نظام المضيف الخاص بك!

عند تعيين 1، ستتجاهل net.ipv4.icmp_echo_ignore_all طلبات البينغ وتسقطها على مستوى النواة. يُظهَر ذلك في الصورة أدناه – لاحظ كيف يتم فقدان طلبات البينغ بعد تعيين هذا المعلم النواة:

Block Ping Requests in Linux

A better and easier way to set individual runtime parameters is using .conf files inside /etc/sysctl.d, grouping them by categories.

على سبيل المثال، بدلاً من تعيين net.ipv4.ip_forward=0 و net.ipv4.icmp_echo_ignore_all=1 في /etc/sysctl.conf، يمكننا إنشاء ملف جديد يحمل الاسم net.conf داخل /etc/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.

ملخص

في هذه المقالة شرحنا كيفية تعديل معلمات النواة أثناء التشغيل، سواء الدائمة أو غير الدائمة، باستخدام sysctl، /etc/sysctl.conf، والملفات داخل /etc/sysctl.d.

في وثائق sysctl يمكنك العثور على مزيد من المعلومات حول معنى المتغيرات الأخرى. تمثل تلك الملفات المصدر الأكثر اكتمالًا للوثائق حول المعلمات التي يمكن تعيينها عبر sysctl.

هل وجدت هذه المقالة مفيدة؟ نأمل أن تكون كذلك. لا تتردد في إعلامنا إذا كان لديك أي أسئلة أو اقتراحات للتحسين.

Source:
https://www.tecmint.com/change-modify-linux-kernel-runtime-parameters/