كل بطاقة شبكة، أو قرص تخزين، أو جهاز متصل بالخادم يعتمد على Interrupt Requests (IRQs) لإبلاغ المعالج بوجود حدث يحتاج إلى معالجة.
لكن إذا كانت جميع هذه المقاطعات تُنفذ على نواة واحدة فقط، فقد تصبح تلك النواة مزدحمة بينما تظل الأنوية الأخرى غير مستغلة بالكامل.
لهذا يوفر Linux ميزة IRQ Affinity، التي تسمح بتوزيع المقاطعات على أكثر من نواة لتحسين الأداء.
IRQ Affinity هو إعداد في Linux يحدد النواة أو مجموعة الأنوية التي ستتولى معالجة مقاطعات جهاز معين.
يساعد ذلك على توزيع الحمل بشكل متوازن وتحسين استجابة الأجهزة، خاصة بطاقات الشبكة ووحدات التخزين.
تقليل الضغط على نواة واحدة.
خصوصًا في التطبيقات الحساسة مثل قواعد البيانات.
توزيع الحمل بالتساوي بين المعالجات.
مع أجهزة NVMe ووحدات التخزين السريعة.
يمكن مراجعة توزيع المقاطعات باستخدام:
cat /proc/interrupts
ولعرض إعدادات التوزيع الحالية يمكن استخدام ملفات النظام داخل:
/proc/irq/
تستفيد منه بشكل أكبر الأجهزة التي تولد عددًا كبيرًا من المقاطعات، مثل بطاقات الشبكة ووحدات التخزين السريعة.
نعم، لذلك يجب اختباره ومراقبته قبل تطبيقه في بيئة الإنتاج.
يساعد IRQ Affinity على توزيع معالجة المقاطعات بين أنوية المعالج، مما يقلل الاختناقات ويحسن أداء الخوادم، خاصة في البيئات ذات الأحمال العالية.