X
X

NAPI (New API): كيف يعالج Linux الضغط الهائل على بطاقات الشبكة؟

الصفحة الرئيسيةمقالاتNAPI (New API): كيف يعالج Linux الضغط الهائل ع...

NAPI (New API): كيف يعالج Linux الضغط الهائل على بطاقات الشبكة؟

مقدمة

في الأحمال المنخفضة، تعتمد بطاقات الشبكة على المقاطعات (Interrupts) لإبلاغ المعالج بوصول الحزم. لكن عند استقبال ملايين الحزم في الثانية، قد يصبح عدد المقاطعات نفسه سببًا في انخفاض الأداء.

ولحل هذه المشكلة، قدم Linux آلية NAPI (New API).

ما هو NAPI؟

NAPI هو إطار عمل داخل نواة Linux يجمع بين طريقتين لمعالجة الحزم:

  • Interrupts عند انخفاض الحمل.
  • Polling عند ارتفاع الحمل.

يساعد هذا الأسلوب على تقليل عدد المقاطعات مع الحفاظ على سرعة معالجة البيانات.

كيف يعمل؟

  1. تصل أولى الحزم وتولد Interrupt.
  2. يوقف برنامج التشغيل المقاطعات مؤقتًا.
  3. يبدأ Kernel في قراءة عدة حزم باستخدام Polling.
  4. بعد انخفاض الحمل، تُفعّل المقاطعات مرة أخرى.

فوائد NAPI

تقليل عدد المقاطعات

خفض الحمل على المعالج.

زيادة إنتاجية الشبكة

معالجة دفعات كبيرة من الحزم.

تحسين الاستقرار

تقليل احتمالية فقدان الحزم أثناء الضغط.

أداء أفضل للخوادم

خصوصًا في البيئات ذات معدل المرور المرتفع.

أين يستخدم؟

  • خوادم Nginx وApache.
  • Kubernetes.
  • Proxmox.
  • KVM.
  • خوادم CDN.
  • بوابات الشبكات.

أفضل الممارسات

  • استخدام تعريفات بطاقات شبكة حديثة.
  • الجمع بين NAPI وRSS وIRQ Affinity.
  • مراقبة أداء الشبكة باستخدام أدوات مثل ethtool.

FAQ

هل يعمل NAPI مع جميع بطاقات الشبكة؟

يحتاج إلى دعم من برنامج تشغيل البطاقة (Driver).

هل Polling أفضل من Interrupts؟

كل منهما مناسب لسيناريو مختلف، وميزة NAPI أنها تستخدم الأسلوب الأنسب تلقائيًا حسب الحمل.

الخلاصة

تساعد NAPI على الحفاظ على أداء الشبكة تحت الأحمال العالية من خلال الدمج الذكي بين المقاطعات والاستطلاع، مما يقلل استهلاك المعالج ويحسن استقرار الخوادم.


Top