تخطَّ إلى المحتوى

bpftune - ضبط Kernel التلقائي مع eBPF (Cheatsheet)

bpftune - ضبط Kernel التلقائي مع eBPF (Cheatsheet)

bpftune (من Oracle) هو خيط خفيف الوزن الذي يضبط معاملات kernel Linux تلقائياً باستخدام eBPF. بدلاً من مطالبة مسؤول النظام بتخمين قيم sysctl، فإنه يراقب سلوك النظام الفعلي من خلال فحوصات eBPF — ضغط مخزن TCP، تشبع جدول الاتصال، استعادة الذاكرة — ويضبط المعاملات الذاتية بشكل مستمر عند تغيير الحمل. المبدأ التوجيهي هو أن تكون غير مرئي: حمل زائد تقريباً صفري، بدون إعداد مطلوب، والبوابة بقصد أي معامل قد يكون إداري قد حدده يدوياً.

الضبط التلقائي يغير سلوك kernel على نظام مباشر. جربه على المضيفين غير الحرجة واراقب السجلات قبل الدرج الواسع.

المتطلبات

  • Linux kernel مع دعم BPF و BTF (الإصدار 5.15+ موصى به)
  • امتيازات جذر (يحمل برامج eBPF، يكتب sysctls)

التثبيت

النظام الأساسيالأمر
Oracle Linux / Fedorasudo dnf install bpftune
من المصدرgit clone https://github.com/oracle/bpftune && make && sudo make install
الخدمةsudo systemctl enable --now bpftune
التحققbpftune -h

التشغيل

الأمرالوصف
sudo bpftuneتشغيل في الصدارة
sudo bpftune -dتشغيل كخيط معين
sudo systemctl start bpftuneالبدء عبر systemd
sudo bpftune -sعرض ملخص المضبوطات والحالة الحالية
journalctl -u bpftune -fمراقبة قرارات الضبط مباشرة

الخيارات الرئيسية

العلمالتأثير
-dوضع خيط معين
-sملخص/مخرجات الحالة
-Sاقمع (تشغيل جاف) — سجل ما كان يغيره
-Lوضع التعليم / السلوك الموروث
-rاستعادة التغييرات عند الخروج
-l LEVELمستوى كلام السجل
# انظر ما كان سيضبطه بدون تغيير أي شيء
sudo bpftune -S -l debug

ما الذي يضبطه

المضبوطيضبط
مخزن TCPtcp_rmem / tcp_wmem تحت ضغط الإنتاجية
ازدحام TCPاختيار خوارزمية ضبط الازدحام
حدود الاتصالsomaxconn, حجم الجدول الخلفي عند تجاوز قوائم الانتظار
جدول الجارأحجام جدول ARP/ND عند تسقيط المدخلات
جدول المسارحجم ذاكرة تخزين المسار
Netns / sysctlمعادلات مساحة الأسماء حيث ينطبق

كيفية عمل حلقة التغذية الراجعة

الخطوةالتفاصيل
ملاحظةفحوصات eBPF حساب الأسقاط والتجاوزات وأحداث الضغط
قرارإذا تم ضرب عتبة بشكل متكرر، فإن المعامل هو اختناق
ضبطرفع الحد بشكل تدريجي (لا أبداً غير محدود)
إعادة ملاحظةتأكيد أن العرض واضح
تراجعإذا حدد المسؤول القيمة يدوياً، اتركه وحده

هذه دورة “مراقبة، دفعة، تحقق” هي لماذا يمكنها التشغيل بشكل مستمر بدون تذبذب.

التحقق من تأثيره

# ماذا غيّر bpftune؟
sudo bpftune -s

# تأكيد sysctl الذي أبلغ عن ضبطه
sysctl net.ipv4.tcp_rmem net.core.somaxconn

# الارتباط مع العرض الذي كان يعالجه
ss -s                      # إحصائيات المقبس/الجدول
netstat -s | grep -i drop  # يسقط الذي أثار الضبط

متى تستخدمه

السيناريوالمناسبة
أحمال متغيرة/غير معروفةقوي — يتكيف مع تغييرات الحمل
نسخ السحابة ذات الأحجام المختلفةقوي — بدون ضبط لكل نسخة
حمل عالي الضبط والثابتضعيف — القيم اليدوية الخاصة بك أفضل
تحكم تغيير صارماستخدم -S dry-run أولاً، أو تخطي

bpftune مقابل الضبط اليدوي/الملف الشخصي

الجانبbpftuneTuneDsysctl يدوي
النموذجمستمر، مدفوع بالتغذية الراجعةملفات تعريف ثابتةقيم لمرة واحدة
يتكيف مع الحملنعملالا
الإعداد المطلوبلا شيءاختر ملف تعريفالخبرة الكاملة
يحترم الإعدادات اليدويةنعم (يتراجع)يكتبN/A

يكمل TuneD (ملفات تعريف ثابتة واسعة) والأدوات المباشرة مثل cpupower؛ bpftune يستهدف حدود الشبكة/kernel بشكل محدد.

الموارد