جميع معلمات ضبط TCP/IP موجودة في الدليل /proc/sys/net/، على سبيل المثال، إليك بعض معلمات الضبط الأكثر أهمية، متبوعة بمعانيها:
1. /proc/sys/net/core/rmem_max - الحد الأقصى للمخزن المؤقت لاستقبال بيانات TCP
2. /proc/sys/net/core/wmem_max — الحد الأقصى للمخزن المؤقت لإرسال بيانات TCP
3. /proc/sys/net/ipv4/tcp_timestamps — تتم إضافة الطابع الزمني إلى رأس TCP بمقدار 12 بايت (يرجى الرجوع إلى RFC 1323).
4. /proc/sys/net/ipv4/tcp_sack — استجابة انتقائية
5. /proc/sys/net/ipv4/tcp_window_scaling — يدعم نوافذ TCP الأكبر حجمًا إذا تجاوز الحد الأقصى لنافذة TCP 65535 (64 كيلو بايت)، فيجب ضبط هذه القيمة على 1
6. rmem_default — الحجم الافتراضي لنافذة الاستلام
7. rmem_max — الحد الأقصى لحجم نافذة الاستقبال
8. wmem_default — الحجم الافتراضي لنافذة الإرسال
9. wmem_max — الحد الأقصى لحجم نافذة الإرسال
جميع محتويات الدليل /proc مؤقتة، لذا سيتم فقدان أي تغييرات بعد إعادة تشغيل النظام.
يوصى بتعديل معلمات TCP/IP تلقائيًا عند بدء تشغيل النظام:
أضف التعليمة البرمجية التالية إلى الملف /etc/rc.local، ثم احفظ الملف. سيتم تعديل معلمات TCP/IP التالية تلقائيًا عند إعادة تشغيل النظام:
صدى 256960 > /proc/sys/net/core/rmem_default
صدى 256960 > /proc/sys/net/core/rmem_max
صدى 256960> /proc/sys/net/core/wmem_default
صدى 256960 > /proc/sys/net/core/wmem_max
صدى 0 > /proc/sys/net/ipv4/tcp_timestamps
صدى 1 > /proc/sys/net/ipv4/tcp_sack
صدى 1 > /proc/sys/net/ipv4/tcp_window_scaling
معلمات TCP/IP تشرح نفسها بنفسها، ويتم ضبط حجم نافذة TCP على 256960، ويتم تعطيل الطوابع الزمنية لـ TCP (إلغاء إضافة 12 بايت إلى كل رأس حزمة)، ويتم دعم نوافذ TCP الأكبر واستجابات TCP الانتقائية.
يتم تعيين القيم المذكورة أعلاه بناءً على اتصال الإنترنت والحد الأقصى لمعدل النطاق الترددي/زمن الوصول.
ملاحظة: يمكن استخدام القيم الموجودة في المثال أعلاه عمليًا، ولكنها تتضمن جزءًا فقط من المعلمات.
طريقة أخرى: استخدم /etc/sysctl.conf لتكوين المعلمات على القيم التي تحددها عند بدء تشغيل النظام:
net.core.rmem_default = 256960
net.core.rmem_max = 256960
net.core.wmem_default = 256960
net.core.wmem_max = 256960
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_sack =1
net.ipv4.tcp_window_scaling = 1
-------------------------------------------------- ---------------
/proc/sys/fs/super-max
يحدد هذا الملف الحد الأقصى لعدد معالجات الكتلة الفائقة. يتطلب أي نظام ملفات مثبت استخدام كتلة فائقة، لذلك إذا تم تثبيت عدد كبير من أنظمة الملفات، فقد يتم استنفاد معالج الكتلة الفائقة.
الإعداد الافتراضي: 256
/proc/sys/fs/super-nr
يعرض هذا الملف العدد الحالي للكتل الفائقة المخصصة. هذا الملف للقراءة فقط ويستخدم لعرض المعلومات فقط.
/proc/sys/kernel
/proc/sys/kernel/acct
يحتوي هذا الملف على ثلاث قيم قابلة للتكوين تتحكم في وقت بدء محاسبة العملية بناءً على مقدار المساحة الحرة (معبرًا عنها كنسبة مئوية) في نظام الملفات الذي يحتوي على السجل:
إذا كانت المساحة الحرة أقل من قيمة النسبة المئوية، فقم بإيقاف عملية المحاسبة
إذا كانت المساحة الحرة أعلى من قيمة النسبة المئوية هذه، فابدأ عملية المحاسبة
كم مرة (بالثواني) يتم التحقق من القيمتين أعلاه
لتغيير قيمة في هذا الملف، يجب إرجاع تسلسل أرقام مفصولة بمسافات.
الإعداد الافتراضي: 2 4 30
تتسبب هذه القيم في توقف المحاسبة إذا كانت هناك مساحة خالية أقل من 2% على نظام الملفات الذي يحتوي على دفتر اليومية، وتبدأ المحاسبة مرة أخرى إذا كانت هناك مساحة خالية تبلغ 4% أو أكثر. تتم عمليات الفحص كل 30 ثانية.
/proc/sys/kernel/ctrl-alt-del
يحتوي هذا الملف على قيمة ثنائية تتحكم في كيفية تفاعل النظام عندما يتلقى مجموعة المفاتيح ctrl+alt+delete. تمثل هاتان القيمتان:
القيمة صفر (0) تعني أنه تم التقاط ctrl+alt+delete وإرساله إلى برنامج init. سيسمح هذا للنظام بإيقاف التشغيل وإعادة التشغيل بأمان، تمامًا كما لو قمت بإدخال أمر إيقاف التشغيل.
القيمة واحد (1) تعني أنه لم يتم التقاط ctrl+alt+delete وسيتم إجراء إيقاف تشغيل غير نظيف، كما لو تم إيقاف تشغيل الطاقة مباشرة.
الإعداد الافتراضي: 0
/proc/sys/kernel/domainname
يتيح لك هذا الملف تكوين اسم مجال الشبكة. ليس له قيمة افتراضية ربما تم أو لم يتم تعيين اسم المجال.
/proc/sys/kernel/hostname
يتيح لك هذا الملف تكوين أسماء مضيفي الشبكة. ليس له قيمة افتراضية، ربما تم تعيين اسم المضيف أو لا.
/proc/ss/kernel/msgmax
يحدد هذا الملف الحد الأقصى لطول الرسائل المرسلة من عملية إلى أخرى. يتم تمرير الرسائل بين العمليات في ذاكرة النواة ولا يتم تبديلها إلى القرص، لذلك إذا قمت بزيادة هذه القيمة، فسوف تزيد من مقدار الذاكرة المستخدمة من قبل نظام التشغيل.
الإعداد الافتراضي: 8192
/proc/sys/kernel/msgmnb
يحدد هذا الملف الحد الأقصى لعدد البايتات في قائمة انتظار الرسائل.
الإعداد الافتراضي: 16384
/proc/sys/kernel/msgmni
يحدد هذا الملف الحد الأقصى لعدد معرفات خدمة "وضع الرسائل في قائمة انتظار".
الإعداد الافتراضي: 16
/proc/sys/kernel/panic
يشير هذا الملف إلى المدة التي تنتظرها النواة بالثواني قبل إعادة التشغيل في حالة حدوث "ذعر النواة". سيؤدي إعداد صفر (0) ثانية إلى تعطيل إعادة التشغيل في حالة حدوث ذعر في kernel.
الإعداد الافتراضي: 0
/proc/sys/kernel/printk
يحتوي هذا الملف على أربع قيم رقمية تحدد مكان إرسال رسالة التسجيل بناءً على أهميتها. لمزيد من المعلومات حول مستويات السجل المختلفة، اقرأ صفحة دليل النظام (2). القيم الأربع لهذا الملف هي:
مستوى سجل وحدة التحكم: ستتم طباعة الرسائل ذات الأولوية الأعلى من هذه القيمة على وحدة التحكم
مستوى تسجيل الرسائل الافتراضي: ستتم طباعة الرسائل التي ليس لها أولوية بهذه الأولوية
الحد الأدنى لمستوى سجل وحدة التحكم: الحد الأدنى للقيمة التي يمكن تعيين مستوى سجل وحدة التحكم عليها (الأولوية العليا)
مستوى سجل وحدة التحكم الافتراضي: القيمة الافتراضية لمستوى سجل وحدة التحكم
الإعداد الافتراضي: 6 4 1 7
/proc/sys/kernel/shmall
هذا الملف هو إجمالي مقدار الذاكرة المشتركة (بالبايت) المتوفرة على النظام في أي لحظة.
الإعداد الافتراضي: 2097152
/proc/sys/kernel/shmax
يحدد هذا الملف الحد الأقصى لحجم (بالبايت) لمقاطع الذاكرة المشتركة التي تسمح بها النواة.
الإعداد الافتراضي: 33554432
/proc/sys/kernel/shmmni
يمثل هذا الملف الحد الأقصى لعدد مقاطع الذاكرة المشتركة المستخدمة للنظام بأكمله.
الإعداد الافتراضي: 4096
/proc/sys/kernel/sysrq
إذا كانت القيمة المحددة في هذا الملف غير صفر، فسيتم تنشيط مفتاح طلب النظام.
الإعداد الافتراضي: 0
/proc/sys/kernel/threads-max
يحدد هذا الملف الحد الأقصى لعدد المواضيع التي يمكن للنواة استخدامها.
الإعداد الافتراضي: 2048
/proc/sys/net
/proc/sys/net/core/message_burst
سيتم تجاهل الوقت (1/10 ثانية) المطلوب لكتابة رسالة تحذير جديدة؛ يُستخدم هذا لمنع هجمات رفض الخدمة التي يستخدمها شخص يحاول "إغراق" نظامك بالرسائل.
الإعداد الافتراضي: 50 (5 ثواني)
/proc/sys/net/core/message_cost
يحمل هذا الملف قيمة التكلفة المرتبطة بكل رسالة تحذير. كلما كانت القيمة أكبر، زاد احتمال تجاهل رسالة التحذير.
الإعداد الافتراضي: 5
/proc/sys/net/core/netdev_max_backlog
يحدد هذا الملف الحد الأقصى لعدد الحزم المسموح بوضعها في قائمة الانتظار عندما تتلقى الواجهة الحزم بشكل أسرع من قدرة kernel على معالجتها.
الإعداد الافتراضي: 300
/proc/sys/net/core/optmem_max
يحدد هذا الملف الحد الأقصى لحجم المخزن المؤقت المسموح به لكل مأخذ توصيل.
/proc/sys/net/core/rmem_default
يحدد هذا الملف القيمة الافتراضية لحجم المخزن المؤقت لمأخذ الاستقبال بالبايت.
/proc/sys/net/core/rmem_max
يحدد هذا الملف الحد الأقصى لحجم المخزن المؤقت لمأخذ التوصيل بالبايت.
/proc/sys/net/core/wmem_default
يحدد هذا الملف القيمة الافتراضية لحجم المخزن المؤقت لمأخذ التوصيل بالبايت.
/proc/sys/net/core/wmem_max
يحدد هذا الملف الحد الأقصى لحجم المخزن المؤقت لمأخذ التوصيل بالبايت.
/proc/sys/net/ipv4
تم توثيق جميع معلمات IPv4 وIPv6 في وثائق كود مصدر kernel. راجع الملف /usr/src/linux/Documentation/networking/ip-sysctl.txt.
/proc/sys/net/ipv6
نفس IPv4.
/proc/sys/vm
/proc/sys/vm/buffermem
يتحكم هذا الملف في مقدار ذاكرة النظام الإجمالية المستخدمة للذاكرة المؤقتة (يتم التعبير عنها كنسبة مئوية). يحتوي على ثلاث قيم، يتم تعيينها عن طريق كتابة سلسلة من الأرقام مفصولة بمسافات إلى الملف.
الحد الأدنى لنسبة الذاكرة المستخدمة للمخازن المؤقتة
إذا حدث موقف حيث لم يتبق الكثير من ذاكرة النظام وتم تقليل ذاكرة النظام، فسيحاول النظام الحفاظ على مقدار الذاكرة المؤقتة.
الحد الأقصى لنسبة الذاكرة المستخدمة للمخازن المؤقتة
الإعداد الافتراضي: 2 10 60
/proc/sys/vm/freepages
يتحكم هذا الملف في كيفية استجابة النظام لمستويات مختلفة من الذاكرة المتوفرة. يحتوي على ثلاث قيم، يتم تعيينها عن طريق كتابة سلسلة من الأرقام مفصولة بمسافات إلى الملف.
يُسمح للنواة بتخصيص بعض الذاكرة فقط إذا وصل عدد الصفحات المتوفرة في النظام إلى الحد الأدنى.
إذا انخفض عدد الصفحات المجانية في النظام عن هذا الحد، فستبدأ النواة عملية التبديل بطريقة أكثر قوة لتحرير الذاكرة والحفاظ على أداء النظام.
سيحاول kernel الحفاظ على هذا القدر من ذاكرة النظام متاحًا. ستؤدي القيم الموجودة أسفل هذا إلى تمكين تبديل النواة.
الإعداد الافتراضي: 512 768 1024
/proc/sys/vm/kswapd
يتحكم هذا الملف في كيفية السماح للنواة بتبديل الذاكرة. يحتوي على ثلاث قيم، يتم تعيينها عن طريق كتابة تسلسل أرقام مفصولة بمسافات إلى الملف:
الحد الأقصى لعدد الصفحات التي تحاول النواة تحريرها في المرة الواحدة. إذا كنت ترغب في زيادة عرض النطاق الترددي أثناء تبديل الذاكرة، فأنت بحاجة إلى زيادة هذه القيمة.
الحد الأدنى لعدد المرات التي تحاول فيها النواة تحرير صفحة لكل مبادلة.
عدد الصفحات التي تكتبها النواة في المبادلة الواحدة. وهذا له التأثير الأكبر على أداء النظام. كلما كانت هذه القيمة أكبر، تم تبادل المزيد من البيانات وقل الوقت المستغرق في البحث عن القرص. ومع ذلك، يمكن أن تؤثر القيمة الكبيرة جدًا سلبًا على أداء النظام عن طريق "إغراق" قائمة انتظار الطلبات.
الإعداد الافتراضي: 512 32 8
/proc/sys/vm/pagecache
يقوم هذا الملف بنفس وظيفة /proc/sys/vm/buffermem، ولكنه عبارة عن خريطة ذاكرة للملف وذاكرة تخزين مؤقت عامة.
اجعل إعدادات kernel ثابتة
يتم توفير أداة مساعدة ملائمة هنا لتغيير أي معلمة kernel في الدليل /proc/sys. فهو يسمح لك بتغيير النواة قيد التشغيل (على غرار طرق الصدى وإعادة التوجيه المستخدمة أعلاه)، ولكنه يحتوي أيضًا على ملف تكوين يتم تنفيذه عند تشغيل النظام. يتيح لك هذا إجراء تغييرات على النواة قيد التشغيل وإضافة هذه التغييرات إلى ملف التكوين بحيث تستمر عبر عمليات إعادة تشغيل النظام.
تُسمى هذه الأداة المساعدة sysctl وهي موثقة بالكامل في صفحة الدليل الخاصة بـ sysctl(8). ملف تكوين sysctl هو /etc/sysctl.conf، والذي يمكن تحريره وتسجيله ضمن sysctl.conf(8). يتعامل sysctl مع الملفات ضمن /proc/sys كمتغيرات فردية يمكن تغييرها. لذلك، بأخذ الملف /proc/sys/fs/file-max ضمن /proc/sys كمثال، فإنه يمثل الحد الأقصى لعدد مقابض الملفات المسموح بها في النظام. ويتم تمثيل هذا الملف على أنه fs.file-max.
يكشف هذا المثال بعض الأشياء الرائعة حول تدوين sysctl. نظرًا لأن sysctl يمكنه فقط تغيير المتغيرات الموجودة في الدليل /proc/sys، ويعتقد الأشخاص دائمًا أن المتغيرات موجودة في هذا الدليل، فسيتم حذف هذا الجزء من اسم المتغير (/proc/sys). تغيير آخر يجب ملاحظته هو استبدال فاصل الدليل (الشرطة المائلة للأمام /) بالنقطة الإنجليزية (نقطة).
هناك قاعدتان بسيطتان لتحويل الملفات في /proc/sys إلى متغيرات في sysctl:
قم بإزالة الجزء الأمامي /proc/sys.
تغيير الخطوط المائلة للأمام في أسماء الملفات إلى نقاط.
تسمح لك هاتان القاعدتان بتحويل أي اسم ملف في /proc/sys إلى أي اسم متغير في sysctl. التحويل العام من الملف إلى المتغير هو:
/proc/sys/dir/file --> dir.file
dir1.dir2.file --> /proc/sys/dir1/dir2/file
يمكنك استخدام الأمر sysctl -a لعرض كافة المتغيرات التي يمكن تغييرها وإعداداتها الحالية.
يمكن أيضًا تغيير المتغيرات باستخدام sysctl، الذي يفعل نفس الشيء تمامًا مثل طريقة الصدى المستخدمة أعلاه. تمثيلها هو:
سيسكتل -w dir.file = "القيمة"
باستخدام file-max كمثال مرة أخرى، استخدم إحدى الطريقتين التاليتين لتغيير القيمة إلى 16384.