سلسلة Intel ® Ethernet 700
دليل ضبط أداء لينكس
مجموعة الشبكات السحابية NEX (NCNG)
القِسْم 1.2
2024 ديسمبر
سجل المراجعة
المراجعة | تاريخ | تعليقات |
1.2 | 2024 ديسمبر | · تمت إضافة إرشادات إضافية لإدارة الطاقة. · تمت إضافة Intel* Turbo Boost. · تمت إضافة متراكمات أجهزة الشبكة. · تمت إضافة تكوينات وضبط خاصة بالمنصة. · تمت إضافة معالجات Intel* %eon* القابلة للتطوير من الجيل الرابع. · تمت إضافة AMD EPYC. · تم تحديث قدرات أجهزة نظام الفحص. · تم تحديث iPerf2. · تم تحديث iPerf3. · تم تحديث قوائم انتظار الإرسال/الاستقبال. · تم تحديث تعديل المقاطعة. · تم تحديث حجم الخاتم. · تم تحديث ضبط المنصة (i40e غير محدد). · تم تحديث إعدادات BIOS. · تم تحديث التحكم في ولاية C. · تم تحديث مقياس تردد وحدة المعالجة المركزية. · تم تحديث إعدادات التطبيق. · تم تحديث إعدادات نظام التشغيل/النواة. · تم تحديث إعادة توجيه IP. · تم تحديث زمن الوصول المنخفض. |
أغسطس 2023 | تتضمن التغييرات على هذه الوثيقة ما يلي: · تمت إضافة المراجع ذات الصلة. · تمت إضافة التأكد من تحميل حزمة DDP بشكل صحيح. · تمت إضافة iPerf2. · تمت إضافة iPerf3. · تمت إضافة netperf. · تم تحديث تقارب IRQ. · تمت إضافة قوائم انتظار الإرسال/الاستقبال. · تم تحديث حجم الخاتم. · تمت إضافة إطارات جامبو. · تمت إضافة رابط المحول. · تمت إضافة أداة Intel svr-info. |
|
1.0 | مارس 2016 | الإصدار الأولي (Intel Public). |
مقدمة
يهدف هذا الدليل إلى توفير إرشادات لضبط بيئات الشبكات لتحقيق أداء مثالي باستخدام بطاقات واجهة الشبكة Intel ® Ethernet 700 Series في بيئات Linux. يركز الدليل على ظروف وإعدادات الأجهزة وبرامج التشغيل ونظام التشغيل التي قد تُحسّن أداء الشبكة. تجدر الإشارة إلى أن أداء الشبكات قد يتأثر بالعديد من التأثيرات الخارجية، ويقتصر هذا الدليل على أكثرها شيوعًا وتأثيرًا.
1.1 المراجع ذات الصلة
- دليل المستخدم لجميع محولات وأجهزة Intel ® Ethernet التي تدعم أنظمة Windows وLinux:
دليل مستخدم محولات وأجهزة Intel ® Ethernet - ورقة البيانات التقنية:
ورقة بيانات وحدة تحكم Intel ® Ethernet X710/XXV710/XL710 - حزمة برامج كاملة لجميع منتجات Intel ® Ethernet (تنزيل جميع برامج التشغيل، وأجهزة NVM، والأدوات، وما إلى ذلك):
حزمة برامج التشغيل الكاملة لمحول Intel ® Ethernet - حزمة تحديث NVM (الذاكرة غير المتطايرة):
أداة تحديث الذاكرة غير المتطايرة (NVM) لمحول شبكة Intel ® Ethernet 700 Series - أداة svr-info لنظام Linux التي تلتقط تفاصيل الأجهزة والبرامج ذات الصلة من الخادم: https://github.com/intel/svr-info
- دليل تكنولوجيا DDP:
دليل تقنية التخصيص الديناميكي للأجهزة (DDP) لسلسلة Intel ® Ethernet 700
قائمة التحقق الأولية
2.1 تحديث إصدارات برنامج التشغيل/البرامج الثابتة
تحقق من إصدارات برنامج التشغيل/البرامج الثابتة باستخدام ethtool -i ethx.
قم بتحديث ما يلي حسب الحاجة:
- تحديث برنامج تشغيل i40e
http://sourceforge.net/projects/e1000/files/i40e%20stable/ or https:// downloadcenter.intel.com/ download/24411/Network-Adapter-Driver-for-PCI-E-40- Gigabit-Network-Connections-under-Linux - تحديث البرامج الثابتة
https://downloadcenter.intel.com/download/24769/NVM-Update-Utility-for-Intel- Ethernet-ConvergedNetwork-Adapter-XL710-X710-Series
2.2 اقرأ ملف README
تحقق من المشكلات المعروفة واحصل على أحدث تعليمات التكوين من ملف README file مضمن في حزمة مصدر i40e.
2.3 تأكد من أن فتحة PCI Express (PCIe) لديك هي x8
بعض فتحات PCIe x8 مُهيأة كفتحات x4. هذه الفتحات لا توفر نطاق ترددي كافٍ لسرعة الخط الكاملة مع الأجهزة ثنائية ورباعية المنافذ. بالإضافة إلى ذلك، إذا وضعت محولًا يدعم PCIe v3.0 في فتحة PCIe v2.x، فلن تتمكن من الحصول على نطاق ترددي كامل. يكتشف برنامج تشغيل الجهاز هذا الوضع ويسجل الرسالة التالية في سجل النظام:
نطاق تردد PCI-Express المتوفر لهذه البطاقة غير كافٍ لتحقيق الأداء الأمثل. يتطلب ذلك فتحة PCI-Express x8.
إذا حدث هذا الخطأ، فقم بنقل المحول إلى فتحة PCIe v3.0 x8 حقيقية لحل المشكلة.
2.4 التحقق من قدرات أجهزة النظام
عند سرعات إيثرنت 10 و25 و40 جيجابت في الثانية، هناك بعض المتطلبات الدنيا لوحدة المعالجة المركزية والنظام. بشكل عام، يكفي معالج حديث من فئة الخادم وتكوين مثالي للذاكرة لمنصتك، ولكن تختلف الاحتياجات حسب حجم العمل لديك. يجب ملء جميع قنوات الذاكرة وتفعيل وضع أداء الذاكرة في نظام BIOS. تأكد من أن وحدة المعالجة المركزية وتكوين الذاكرة لديك قادران على دعم مستوى أداء الشبكة المطلوب لحجم العمل لديك.
ملحوظة
XL710 هو وحدة تحكم 40 جيجابت إيثرنت. محول 2 × 40 جيجابت إيثرنت الذي يستخدم هذه الوحدة ليس مُصممًا ليكون 2 × 40 جيجابت إيثرنت، بل 1 × 40 جيجابت إيثرنت مع منفذ احتياطي نشط. عند محاولة استخدام حركة مرور بمعدل خطي يشمل كلا المنفذين، يصبح المحول الداخلي مُشبعًا، ويقتصر عرض النطاق الترددي المُجمع بين المنفذين على XNUMX جيجابت في الثانية.
2.4.1 معلمات تمهيد النواة
إذا كانت تقنية Intel® Virtualization Technology للإدخال/الإخراج الموجّه (Intel® VT-d) مُفعّلة في BIOS، توصي Intel بوضع وحدة IOMMU في وضع التمرير (pass-through) لتحقيق أداء مثالي لشبكة المضيف. يُخفّض هذا العبء على حركة مرور DMA على المضيف، مع تمكين الأجهزة الافتراضية (VMs) من الاستفادة من مزايا Intel® VT-d. يتم ذلك بإضافة السطر التالي إلى معلمات تمهيد النواة: fommu-pt.
2.5 تأكد من تحميل حزمة DDP بشكل صحيح
لا تدعم برامج التشغيل الأساسية 140ea و140eb بشكل مباشر ميزة التخصيص الديناميكي للجهاز (DDP). لاستخدام DDP مع أجهزة سلسلة 700، يجب استخدام برنامج DDP احترافي.file يمكن تطبيقه باستخدام تطبيق testpmd.
للحصول على تفاصيل حول DDP profileس، وكيفية تطبيق DDP profile مع استخدام testpmd على أجهزة سلسلة 700، راجع دليل تقنية التخصيص الديناميكي للجهاز (DDP) لسلسلة Intel® Ethernet 700.
للتحقق مما إذا كان DDP profile تم تحميله بنجاح:
testpmd> ddp الحصول على القائمة 0 Profile الرقم هو: 1
ملحوظة
إذا كان المحترفfile إذا كان الرقم 0، فلا يتم تحميل أي حزمة DDP. في حال حدوث خطأ في تحميل حزمة DDP، ينتقل الجهاز افتراضيًا إلى الوضع الآمن، وتصبح العديد من ميزات الأداء غير متاحة. في حال وجود أخطاء تتعلق بتحميل حزمة DDP، فسيؤدي ذلك إلى مشاكل في الأداء. للاطلاع على خطوات استكشاف الأخطاء وإصلاحها، راجع دليل تقنية التخصيص الديناميكي للأجهزة (DDP) لسلسلة Inte/* Ethernet 700.
قياسات الأداء الأساسية ومنهجية الضبط
3.1 معايير أداء الشبكة
قبل البدء بعملية الضبط، من المهم إجراء قياس أساسي جيد لأداء شبكتك. عادةً، بالإضافة إلى إجراء قياس أولي لأداء تطبيقك/حمل عملك المحدد، يُنصح أيضًا باستخدام معيار أداء شبكة قياسي للتحقق من أن جهاز الشبكة في حالة جيدة.
لتحسين النظام الفردي، فإن netperf أو iperf وNetPIPE عبارة عن أدوات مجانية مفتوحة المصدر قوية تمكنك من الضغط على الاتصال وتشخيص مشكلات الأداء.
Netperf قوي في اختبار الإنتاجية وزمن الوصول. NetPIPE أداة مخصصة لزمن الوصول، ولكن يمكن تجميعها لأي بيئة.
ملحوظة
يُرجع اختبار TCP_RR في netperf زمن الوصول بقيمة معاملات/ثانية. هذا رقم ذهابًا وإيابًا. يُمكن حساب زمن الوصول أحادي الاتجاه باستخدام المعادلة التالية:
زمن الوصول (usec) = (1⁄2) / [المعاملات/ثانية] * 1,000,000
3.1.1 iPerf2
توصي Intel باستخدام iperf2 بدلاً من iperf3 في معظم حالات قياس الأداء، نظرًا لسهولة استخدامه ودعمه لخيوط معالجة متعددة في تطبيق واحد. توصي Intel بتشغيل الخيار -P مع 2-4 خيوط معالجة لاتصالات 25 جيجابايت، وحوالي 4-6 خيوط معالجة لاتصالات 40 جيجابايت.
- لتشغيل حركة مرور أحادية الاتجاه من العميل إلى الخادم: أمر الخادم example: iperf2 -s
أمر العميل السابقample: iperf2 -c -ص - لتشغيل حركة مرور ثنائية الاتجاه من العميل إلى الخادم (والعكس صحيح): أمر الخادم example: iperf2 –s –p
أمر العميل السابقampعلى:
iperf2 -c -ص -ص --أو ثنائي الاتجاه كامل
iperf2 -c -ص -ص –د
ملحوظة
يتيح كلا الخيارين -full-duplex و-d في iperf2 للمستخدم إجراء اختبار ثنائي الاتجاه. مع ذلك، يُركز الخيار -full-duplex تحديدًا على اختبار كامل الاتجاه.
ملحوظة
عند اختبار iperf2 عبر منافذ خادم متعددة، يُمكن إضافة العلامة -d إلى أمر الخادم لتشغيل جميع جلسات الخادم في الخلفية من نافذة الطرفية نفسها. كما يُمكن استخدام العلامة -d عند تضمين أمر الخادم داخل حلقة for في نص برمجي.
ملحوظة
عند تشغيل اختبار معدل نقل الشبكة باستخدام مجرى/خيط واحد (على سبيل المثالamp(le: P1)، قد لا توفر معالجات AMD معدل نقل البيانات المتوقع، خاصةً مع بطاقات الشبكة ذات النطاق الترددي الأعلى (إذا كانت السرعة أكبر من 25 جيجابت في الثانية). نتيجةً لذلك، يلزم تثبيت التطبيقات على أنوية محددة لتحقيق معدل نقل بيانات أعلى. راجع إعدادات التطبيقات في الصفحة 22.
3.1.2 iPerf3
إذا تم استخدام iperf3، فمن الضروري وجود مثيلات متعددة للتطبيق للاستفادة منهاtagمن قوائم انتظار الخيوط المتعددة، وRSS، والأجهزة. توصي Intel بتشغيل ما بين جلستي تطبيق وأربع جلسات لاتصالات 2 جيجابايت، وما بين أربع وست جلسات لاتصالات 4 جيجابايت. يجب أن تحدد كل جلسة قيمة منفذ TCP فريدة باستخدام الخيار -p.
- لتشغيل حركة المرور أحادية الاتجاه من العميل إلى الخادم:
أمر الخادم السابقampعلى:
iperf3 -s -p
أمر العميل السابقampعلى:
iperf3 -c -ص - لتشغيل حركة المرور ثنائية الاتجاه من العميل إلى الخادم (والعكس صحيح):
أمر الخادم السابقampعلى:
iperf3 –s –p
أمر العميل السابقample: iperf3 -c -ص -ص –-بيدير - لبدء تشغيل مثيلات متعددة (خيوط) من iperf3، فإن التوصية هي استخدام حلقة for لتعيين الخيوط إلى منافذ TCP وتشغيل iperf3 في الخلفية باستخدام & لإنشاء عمليات متعددة بالتوازي.
أمر الخادم السابقample، ابدأ 4 خيوط: port=””; for i in {0..3}; do port=520$i; bash -c “iperf3 -s -p $port &”; done; أمر العميل example، ابدأ 4 خيوط – إرسال منفذ الاختبار = ""؛ بالنسبة إلى i في {0..3}؛ قم بإجراء المنفذ = 520 $ i؛ bash -c "iperf3 -c $serverIP -p $port &"؛ تم؛ أمر العميل example، ابدأ 4 خيوط - استقبل منفذ الاختبار = "" ؛ لـ i في {0..3} ؛ قم بإجراء المنفذ = 520 $ i ؛ bash -c "iperf3 -R -c $serverIP -p $port &" ؛ تم ؛ بالنسبة لاتصالات 40 جيجابايت ، قم بزيادة حلقة for لإنشاء ما يصل إلى 6 مثيلات / خيوط.
ملحوظة
عند تشغيل اختبار معدل نقل الشبكة باستخدام مجرى/خيط واحد (على سبيل المثالample: P1)، قد لا توفر معالجات AMD معدل الإنتاج المتوقع، وخاصة النطاق الترددي الأعلى
بطاقات الشبكة (إذا كانت السرعة أكبر من أو يساوي ٢٥ جيجابت في الثانية). نتيجةً لذلك، يلزم تثبيت التطبيقات على أنوية مُحددة لتحقيق إنتاجية أعلى. راجع إعدادات التطبيقات في الصفحة ٢٢ وAMD EPYC في الصفحة ٢٦.
3.1.3 netperf
تُعد أداة netperf خيارًا قويًا لاختبار معدل الإنتاج والزمن الكامن.
- يقيس اختبار TCP_STREAM في netperf قدرات الجهاز الإنتاجية. أمر الخادم exampلو: أمر عميل netserver على سبيل المثالample: netperf -t TCP_STREAM -l 30 -H
- يُرجع اختبار TCP_RR في netperf زمن الوصول بقيمة المعاملات/الثانية. هذا رقم ذهابًا وإيابًا. يُنصح باستخدام الخيار -T x,x، حيث يكون x وحدة المعالجة المركزية المحلية للجهاز. يمكن حساب زمن الوصول أحادي الاتجاه باستخدام: Latency(usec)=(1⁄2)/[المعاملات/الثانية]*1,000، أمر الخادم example: خادم الشبكة
أمر العميل السابقample: netperf -t TCP_RR -l 30 -H -T x,x - لبدء تشغيل مثيلات متعددة (خيوط) من netperf، فإن التوصية هي استخدام حلقة for لتعيين الخيوط إلى منافذ TCP وتشغيل netperf في الخلفية باستخدام & لإنشاء عمليات متعددة بالتوازي.
أمر الخادم السابقample، ابدأ 8 مواضيع:
المنفذ = ""؛ بالنسبة إلى i في {0..7}؛ قم بإجراء المنفذ = 520$i؛ bash -c "netserver -L $serverIP -p $port &"؛ تم ذلك؛
أمر العميل السابقample، ابدأ 8 خيوط: port=””; بالنسبة إلى i في {0..7}؛ قم بتشغيل port=520$i؛ bash -c “netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &”; تم؛
3.2 منهجية الضبط
ركّز على تغيير ضبط واحد في كل مرة لمعرفة تأثير كل تغيير على اختبارك. كلما اتبعت منهجيةً أكثر في عملية الضبط، كان تحديد أسباب اختناقات الأداء ومعالجتها أسهل.
ضبط إعدادات برنامج تشغيل i40e
4.1 تقارب IRQ
إن تكوين تقارب IRQ بحيث يتم ربط المقاطعات الخاصة بقوائم الشبكة المختلفة بأنوية وحدة المعالجة المركزية المختلفة يمكن أن يكون له تأثير كبير على الأداء، وخاصة اختبارات الإنتاجية متعددة الخيوط.
لتكوين تقارب IRQ، أوقف IRQBALANCE، ثم استخدم إما نص set_irq_affinity من حزمة i40e المصدرية أو ثبّت قوائم الانتظار يدويًا. عطّل موازن IRQ في مساحة المستخدم لتمكين تثبيت قوائم الانتظار:
- systemctl تعطيل irqbalance
- systemctl إيقاف irqbalance
استخدام البرنامج النصي set_irq_affinity من حزمة المصدر i40e (الموصى بها): - لاستخدام كافة النوى:
[مسار i40epackage]/scripts/set_irq_affinity -X جميع ethX - لاستخدام النوى فقط على مقبس NUMA المحلي: [path-to-i40epackage]/scripts/set_irq_affinity -X local ethX
- يمكنك أيضًا تحديد نطاق من النوى. تجنب استخدام cpu0 لأنه يُشغّل مهام مؤقتة. [path-to-i40epackage]/scripts/set_irq_affinity 1-2 ethX
ملحوظة
يُفعّل البرنامج النصي للتقارب توجيه حزم الإرسال (XPS) كجزء من عملية التثبيت عند تحديد الخيار -x. عند تفعيل XPS، توصي Intel بتعطيل irqbalance، لأن مُوازن النواة مع XPS قد يُسبب أداءً غير متوقع. يُعطّل البرنامج النصي للتقارب XPS عند تحديد الخيار -X. يُعدّ تعطيل XPS وتفعيل قوائم الانتظار المتماثلة مفيدًا لأحمال العمل التي يُحقق فيها أفضل أداء عند خدمة حركة مرور الإرسال والاستقبال على نفس زوج قوائم الانتظار.
يتضمن تكوين قوائم الانتظار المتماثلة في Linux ضبط معلمات برنامج تشغيل واجهة الشبكة لتمكين قوائم الانتظار المتماثلة (Rx) وقوائم الانتظار المتماثلة (Tx) لمحولات الشبكة المدعومة.
ملحوظة
- تُعد قوائم الانتظار المتماثلة ميزة متقدمة في الشبكات، ولا تدعمها جميع محولات الشبكة أو برامج التشغيل من سلسلة 700.
- تأكد من حصولك على الدعم اللازم للبرامج والأجهزة قبل محاولة تكوين قوائم الانتظار المتماثلة.
لتكوين قوائم الانتظار المتماثلة، اتبع الخطوات العامة التالية:
- تحرير تكوين واجهة الشبكة File:استخدم محرر نصوص (على سبيل المثالamp(le، vi، nano، أو gedit) لتحرير تكوين واجهة الشبكة file. ال file يقع عادةً ضمن الدليل /etc/sysconfig/network-scripts/ وله اسم مثل ifcfg-ethX، حيث ethX هو اسم واجهة الشبكة لديك.
- أضف معلمات قائمة انتظار متماثلة. أضف الأسطر التالية إلى إعدادات واجهة الشبكة. file: ETHTOOL_OPTS=”طوابير الاستقبال 8 طوابير المعاملة 8″
- إعادة تشغيل خدمة الشبكة.
بعد إجراء التغييرات، أعد تشغيل خدمة الشبكة لتطبيق التكوين الجديد. sudo systemctl restart network
يدويا:
-
ابحث عن المعالجات المتصلة بكل عقدة باستخدام: numactl –hardware lscpu
-
ابحث عن أقنعة البت لكل المعالجات:
- بافتراض وجود النوى من 0 إلى 11 للعقدة 0: [1,2,4,8,10,20,40,80,100,200,400,800،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX]
- ابحث عن طلبات المقاطعة المخصصة للمنفذ الذي يتم تعيينه: grep ethX /proc/interrupts ولاحظ قيم طلبات المقاطعة على سبيل المثالample، 181-192 للـ 12 متجهًا المحملة.
- أضف قيمة تقارب SMP إلى مُدخل طلب المقاطعة (IRQ) المُقابل. يُرجى ملاحظة أنه يجب القيام بذلك لكل مُدخل طلب مقاطعة: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity عرض تقارب طلب المقاطعة:
- لإظهار تقارب IRQ لجميع النوى: /scripts/set_irq_affinity -s ethX
- لإظهار النوى فقط على مقبس NUMA المحلي: /scripts/set_irq_affinity -s ethX المحلي
- يمكنك أيضًا تحديد مجموعة من النوى: /scripts/set_irq_affinity -s 40-0-8,16 ethX
ملحوظة
يدعم البرنامج النصي set_irq_affinity العلم -s في برنامج تشغيل i40e الإصدار 2.16.11 والإصدارات الأحدث.
4.2 طوابير الإرسال والاستقبال
العدد الافتراضي لقوائم الانتظار المُفعّلة لكل منفذ إيثرنت بواسطة برنامج التشغيل عند التهيئة يساوي إجمالي عدد وحدات المعالجة المركزية (CPU) المتوفرة في المنصة. يعمل هذا بشكل جيد مع العديد من المنصات وتكوينات أحمال العمل. مع ذلك، في المنصات ذات عدد النوى المرتفع و/أو كثافة منافذ إيثرنت العالية، قد يُسبب هذا التكوين تنازعًا على الموارد. لذلك، قد يكون من الضروري في بعض الحالات تعديل الإعداد الافتراضي لكل منفذ في النظام.
قد يختلف العدد الافتراضي لقوائم الإرسال والاستقبال باختلاف الطراز وإصدار برنامج التشغيل. يمكن تعديل عدد قوائم الانتظار باستخدام الأمر ethtool -L الموضح أدناه.
ملحوظة
في هذه الحالات، توصي Intel بتقليل عدد قوائم الانتظار الافتراضية لكل منفذ إلى ما لا يزيد عن عدد وحدات المعالجة المركزية المتوفرة في عقدة NUMA المحلية لمنفذ المحول. في بعض الحالات، عند محاولة موازنة الموارد في التطبيقات ذات عدد المنافذ المرتفع، قد يكون من الضروري تقليل هذا العدد بشكل أكبر.
لتعديل تكوين قائمة الانتظار:
المثال التاليampيقوم الأمر le بتعيين المنفذ إلى 32 طوابير Tx/Rx: ethtool -L ethX combined 32
Exampإخراج لو:
ethtool -l ethX
معلمات القناة لـ ethX: الحد الأقصى المحدد مسبقًا:
آر إكس: 96
تكساس: 96،XNUMX،XNUMX
أخرى: 1،XNUMX
مجتمعة: 96
إعدادات الأجهزة الحالية:
آر إكس: 0
تكساس: 0،XNUMX،XNUMX
أخرى: 1،XNUMX
مجتمعة: 32
4.3 مقاطعة الاعتدال
يتم تفعيل تعديل المقاطعة التكيفي افتراضيًا، وهو مصمم لتوفير توازن بين انخفاض استخدام وحدة المعالجة المركزية والأداء العالي. مع ذلك، يمكنك محاولة ضبط إعدادات المقاطعة يدويًا لتناسب حالة استخدامك.
يوفر نطاق 0-235 ميكروثانية نطاقًا فعالًا يتراوح بين 4,310 و250,000 مقاطعة في الثانية. يمكن ضبط قيمة rx-μsecs-high بشكل مستقل عن rx-μsecs وtx-μsecs في أمر ethtool نفسه، كما أنها مستقلة عن خوارزمية تعديل المقاطعة التكيفية. يدعم الجهاز الأساسي دقةً في فترات زمنية تبلغ 2 ميكروثانية، لذا قد تؤدي القيم المتجاورة إلى نفس معدل المقاطعة.
- لإيقاف تشغيل تعديل المقاطعة التكيفية: ethtool -C ethX adaptive-rx off adaptive-tx off
- لتشغيل تعديل المقاطعة التكيفي: ethtool -C ethX adaptive-rx on adaptive-tx on
نقطة انطلاق جيدة للضبط العام هي 84 ميكروثانية، أو حوالي 12000 مقاطعة/ثانية. إذا لاحظتَ تشغيل عدادات rx_dropped أثناء حركة البيانات (باستخدام ethtool -S ethX)، فمن المحتمل أن وحدة المعالجة المركزية لديك بطيئة جدًا، أو أن حجم حلقة المحول لا يكفي لتخزين الحزم لمدة 84 ميكروثانية أو معدل مقاطعة منخفض جدًا.
- لضبط اعتدال المقاطعة على معدل مقاطعة ثابت قدره 84 ميكروثانية بين المقاطعات (12000 مقاطعة/ثانية): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84. القيمة التالية التي يمكنك تجربتها، إذا لم تكن قد وصلت إلى الحد الأقصى لاستخدام وحدة المعالجة المركزية، هي 62 ميكروثانية. هذا يستهلك المزيد من وحدة المعالجة المركزية، ولكنه يُخدم المخازن المؤقتة بشكل أسرع، ويتطلب عددًا أقل من الوصافات (حجم الحلقة، ethtool -G).
- لتعيين تعديل المقاطعة إلى معدل مقاطعة ثابت يبلغ 62 usec بين المقاطعات (16000 مقاطعة/ثانية). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
إذا زادت عدادات rx_dropped أثناء حركة البيانات (باستخدام ethtool -S ethX)، فمن المحتمل أن وحدة المعالجة المركزية لديك بطيئة جدًا، أو أن حجم حلقة المحول غير كافٍ (ethtool -G)، أو أن معدل المقاطعة منخفض جدًا. إذا لم يكن استخدام وحدة المعالجة المركزية لديك هو الحد الأقصى، يمكنك زيادة معدل المقاطعة بخفض قيمة ITR. هذا يستهلك المزيد من وحدة المعالجة المركزية، لكن خدمات المخازن المؤقتة أسرع، ويتطلب عددًا أقل من الوصافات (حجم الحلقة، ethtool -G).
إذا كان أداء وحدة المعالجة المركزية لديك ١٠٠٪، فلا يُنصح بزيادة معدل المقاطعة. في بعض الحالات، مثل زيادة حمل العمل على وحدة المعالجة المركزية، قد ترغب في زيادة قيمة μs لزيادة وقت استخدام وحدة المعالجة المركزية لتطبيقات أخرى.
إذا كنت تحتاج إلى أداء منخفض زمن الوصول و/أو لديك قدر كبير من وحدة المعالجة المركزية لتخصيصها لمعالجة الشبكة، فيمكنك تعطيل تعديل المقاطعة بالكامل، مما يتيح تشغيل المقاطعات بأسرع ما يمكن. - لتعطيل تعديل المقاطعة ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0
ملحوظة
عند التشغيل مع تعطيل تعديل المقاطعة، قد يكون معدل المقاطعة في كل قائمة انتظار مرتفعًا جدًا. جرّب إضافة معامل rx-usec-high لتحديد حد أقصى لمعدل المقاطعة. يُعطّل الأمر التالي تعديل المقاطعة التكيفية ويسمح بمدة أقصاها 5 ميكروثانية قبل الإشارة إلى اكتمال الاستلام أو الإرسال. بدلًا من إنتاج ما يصل إلى 200,000 مقاطعة في الثانية، يُحدد إجمالي المقاطعات في الثانية بـ 50,000 عبر معامل rx-usec-high. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 20 rx-usecs 5 txusecs 5 جرّب ضبط مؤقت دمج الإرسال/الاستقبال/الأولوية العالية على أعلى (80/100/150/200) أو أقل (25/20/10/5) للعثور على القيمة المثلى لحمل العمل.
4.4 حجم الخاتم
إذا لاحظتَ عدادات rx_dropped في ethtool -S ethX (rx_dropped, rx_dropped.nic)، أو كنتَ تشكُّ في ضغط ذاكرة التخزين المؤقت مع وجود طوابير انتظار متعددة نشطة، يمكنكَ محاولة تعديل حجم الحلقة من القيمة الافتراضية. القيمة الافتراضية هي 512، والحد الأقصى هو 4096.
- للتحقق من القيم الحالية: ethtool -g ethX
إذا كنت تشك في أن نقص التخزين المؤقت هو السبب في حدوث انخفاضات في معدل المقاطعة الحالي، فقد تحاول أولاً الحد الأقصى، ثم الحد الأدنى، ثم الاستمرار في البحث الثنائي حتى ترى الأداء الأمثل.
في حال الاشتباه في ضغط ذاكرة التخزين المؤقت (وجود العديد من قوائم الانتظار النشطة)، فإن تقليل المخازن المؤقتة من الوضع الافتراضي قد يساعد على تحسين كفاءة تقنية Intel ® Data Direct I/O (Intel ® DDIO). توصي Intel بتجربة 128 أو 256 لكل قائمة انتظار، مع العلم أن زيادة معدل المقاطعة عبر ethtool -C قد تكون ضرورية لتجنب زيادة معدل rx_dropped. - لتعيين حجم الحلقة إلى قيمة ثابتة: ethtool -G eth12 rx 256 tx 256
ملحوظة
لإصلاح مشكلة إسقاط حزم Rx التي تم العثور عليها باستخدام ethtool -S ethX|grep drop، فكر في زيادة حجم الحلقة إلى 4096. قم بالتجربة للعثور على أفضل إعداد لحمل العمل ولكن احذر من الاستخدام المفرط للذاكرة مع القيم الأعلى.
4.5 التحكم في التدفق
قد يؤثر التحكم في تدفق الطبقة الثانية بشكل كبير على أداء TCP، ويُنصح بتعطيله لمعظم أحمال العمل. الاستثناء المحتمل هو حركة المرور المتقطعة حيث لا تكون هذه الحركات طويلة الأمد.
يتم تعطيل التحكم في التدفق بشكل افتراضي.
- لتمكين التحكم في التدفق: ethtool -A ethX rx on tx on
- لتعطيل التحكم في التدفق: ethtool -A ethX rx off tx off
ملحوظة
يجب أن يكون لديك شريك ارتباط قادر على التحكم في التدفق لتمكين التحكم في التدفق بنجاح.
4.6 إطارات ضخمة
عندما تتكون بيئة حركة المرور المتوقعة من كتل بيانات كبيرة يتم نقلها، قد يكون من المفيد تفعيل ميزة الإطارات الضخمة. يتم تفعيل دعم الإطارات الضخمة بتغيير وحدة الإرسال القصوى (MTU) إلى قيمة أكبر من القيمة الافتراضية 1500. يسمح هذا للجهاز بنقل البيانات بحزم أكبر داخل بيئة الشبكة. قد يُحسّن هذا الإعداد معدل النقل ويُقلل من استخدام وحدة المعالجة المركزية (CPU) لأحمال عمل الإدخال/الإخراج الكبيرة. ومع ذلك، قد يؤثر على أحمال العمل ذات الحزم الصغيرة أو الحساسة لزمن الوصول.
ملحوظة
يجب تكوين إطارات ضخمة أو إعدادات MTU الأكبر بشكل صحيح عبر بيئة الشبكة الخاصة بك.
استخدم أمر ifconfig لزيادة حجم وحدة الإرسال الكبرى. على سبيل المثالample، أدخل ما يلي، حيث هو رقم الواجهة: ifconfig mtu 9000 حتى
بدلاً من ذلك، يمكنك استخدام الأمر ip على النحو التالي: ip link set mtu 9000 dev إعداد رابط IP
ضبط المنصة (i40e غير محدد)
5.1 إعدادات BIOS
- تمكين Intel® VT-d لأحمال عمل المحاكاة الافتراضية.
- قد يؤثر استخدام تقنية المعالجة المتعددة الخيوط (المعالجات المنطقية) على الأداء. جرّب تشغيلها أو إيقافها وفقًا لحجم عملك.
- تسمح تقنية Intel® Turbo Boost لأنوية وحدة المعالجة المركزية بالعمل بتردد أعلى من التردد الأساسي لها. يُحسّن تفعيل هذه التقنية أداء العديد من أحمال العمل، ولكنه يستهلك طاقة أكبر للحفاظ على تردد أعلى للأنوية. جرّب تفعيل/إيقاف Turbo Boost لحقل العمل لديك.
ملحوظة
لا تُضمن ترددات التوربو إذا كانت المنصة تشهد استخدامًا عاليًا لوحدة المعالجة المركزية. تنخفض ترددات التوربو الأعلى للأنوية مع زيادة الاستخدام الكلي لوحدة المعالجة المركزية.
5.2 إدارة الطاقة
قد تؤثر إدارة الطاقة على الأداء، خاصةً في أحمال العمل منخفضة زمن الوصول. إذا كان الأداء أولوية أعلى من خفض استهلاك الطاقة، توصي إنتل بتجربة الحد من تأثيرات إدارة الطاقة. هناك العديد من الطرق المختلفة للحد من إدارة الطاقة، من خلال أدوات نظام التشغيل، وإعدادات BIOS، ومعلمات تمهيد النواة. اختر الطريقة والمستوى الأنسب لبيئتك.
5.2.1 التحكم في حالة C
يؤدي تقييد دخول الحالة C إلى CO أو C1 إلى تحسين الأداء وزيادة استخدام الطاقة.
قد يؤدي تعطيل إدخال حالة حزمة وحدة المعالجة المركزية C6 إلى تحسين أداء الشبكة. ومع ذلك، يؤدي ذلك إلى زيادة استهلاك الطاقة.
الخيارات المتاحة هي التالية:
- التحكم بشكل ديناميكي في إدخال الحالة C:
يفتح
/dev/cpu_dma_latency وكتابة الحد الأقصى للزمن المسموح به إليه.
ملحوظة
هناك برنامج صغير يسمى cpudmalatency.c يمكن تنزيله من مجتمع المصدر المفتوح وتجميعه وتشغيله من سطر الأوامر للقيام بهذا بالضبط.
المثال التاليampيسمح le بخمسة ميكروثانية من وقت الاستيقاظ، وبالتالي يسمح بدخول C1: cpudmalatency 5 &
- قم بتحديد الحد الأقصى لحالة C في إعدادات تمهيد kernel:
بالنسبة لوحدات المعالجة المركزية من Intel: intel_idle.max_cstates=1
بالنسبة لوحدات المعالجة المركزية غير التابعة لشركة Intel: processor.max_cstates=1 - استخدم أمر cpupower للتحقق من حالة وحدة المعالجة المركزية C6 وتعطيلها: التحقق: cpupower monitor أو cpupower idle-info
تعطيل C6: cpupower idle-set -d3 أو
تعطيل حالات C: cpupower idle-set -D0
ملحوظات:
- قم بتعطيل حالات C على وحدة المعالجة المركزية إذا كان الخادم مزودًا بمعالج Intel® Xeon® من الجيل الرابع القابل للتطوير. عند تفعيل أو تعطيل Hyper Threading، فإن تعطيل حالات الخمول (-D4) يمنع النوى من الدخول في حالات طاقة منخفضة أثناء فترات الخمول، ويقلل من زمن انتقال وحدة المعالجة المركزية بين حالتي الخمول والنشاط.
- إدارة الطاقة في معالج Intel® Xeon® القابل للتطوير من الجيل الرابع صارمة للغاية. لتجنب وصول الأنوية إلى حالة انخفاض الطاقة، حاول تقليل عدد الأنوية المستخدمة لإبقائها في حالة يقظة لفترة أطول (ethtool -L) مجموع اربط المقاطعات أيضًا بأنوية محددة باستخدام set irq affinity (غالبًا باستخدام -x local أو list of CPU cores)، وتأكد من تشغيل عبء العمل على هذه الأنوية نفسها باستخدام tasket أو numactl. يُحسّن هذا الأداء من خلال إبقاء الأنوية نشطة وتحسين معالجة المقاطعات.
تمكين C6:
cpupower idle-set -d3
تمكين حالات C:
مجموعة cpupower idle-set -E
- هناك طريقة أخرى وهي استخدام الأداة المضبوطة (المضمنة مع العديد من توزيعات Linux) لتعيين أداء احترافيfile. هذه المواليةfileتعديل العديد من إعدادات نظام التشغيل التي قد تؤثر على الأداء في العديد من التطبيقات. وقد وُجد أن أداء الشبكةfile يوفر تحسينًا لمعظم أحمال العمل.
يفحص:
ضبط-adm نشط
تعيين:
برنامج Tuned-adm profile معدل نقل الشبكة
ملحوظة
يجب تشغيل الخدمة المُعدّلة للأوامر المذكورة أعلاه. للتحقق/إعادة التشغيل، استخدم الأمر التالي: systemctl status tuned systemctl restart tuned
يمكنك أيضًا منع أي إدخال لحالة C عن طريق إضافة ما يلي إلى سطر تمهيد kernel:
الخمول = الاستطلاع - قم بتحديد حالة C من خلال إعدادات إدارة الطاقة في BIOS للنظام، والتي قد يكون لها تأثير على الأداءfile متاح.
يمكن استخدام أدوات مثل turbostat أو x86_energy_perf_policy للتحقق من إعدادات إدارة الطاقة أو تعيينها.
5.2.2 إدارة طاقة PCIe
تُمكّن إدارة الطاقة في الحالة النشطة (ASPM) من خفض مستوى الطاقة لروابط PCIe عند عدم استخدامها. قد يُسبب هذا تأخيرًا أعلى في أجهزة شبكة PCIe، لذا توصي Intel بتعطيل ASPM لأحمال العمل الحساسة لوقت الاستجابة. يُمكن تعطيل ASPM بإضافة الأمر التالي إلى سطر بدء تشغيل النواة: pcie_aspm=off
5.2.3 قياس تردد وحدة المعالجة المركزية
قياس تردد وحدة المعالجة المركزية (أو قياس سرعة وحدة المعالجة المركزية) هو تقنية لإدارة الطاقة في لينكس، حيث يتم تعديل سرعة ساعة النظام تلقائيًا لتوفير الطاقة والحرارة. وكما هو الحال مع حالات C، قد يتسبب هذا في تأخير غير مرغوب فيه في اتصالات الشبكة.
يمكن أيضًا استخدام أداة cpupower للتحقق من إعدادات أداء وحدة المعالجة المركزية وحدودها وتعديلها:
- التحقق: مراقبة طاقة المعالج أو
- ضبط وحدات المعالجة المركزية على وضع الأداء: cpupower frequency-set -g performance
ملحوظة
قد تؤثر التعديلات على حدود تردد وحدة المعالجة المركزية على العديد من أحمال العمل وقد تؤدي إلى تعطيل ميزات أخرى، مثل وضع CPU Turbo.
لتعطيل تغيير تردد وحدة المعالجة المركزية، قم بتعطيل خدمة طاقة وحدة المعالجة المركزية باستخدام الأوامر التالية:
systemctl إيقاف cpupower.service
systemctl تعطيل cpupower.service
5.2.4 إرشادات إضافية لإدارة الطاقة
يتم توفير تفاصيل إضافية في هذا المستوى العاليview العديد من ميزات إدارة الطاقة في معالجات Intel® Xeon® Scalable من الجيل الثالث، بالإضافة إلى إرشادات حول كيفية دمج هذه الميزات على مستوى المنصة: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
تُسرّع تقنية Intel® Turbo Boost المعالج عند الحاجة، ولكنها قد تستهلك طاقة إضافية. يُحافظ إيقاف Turbo Boost على سرعة ثابتة للمعالج، مما يمنحك أداءً ثابتًا لأحمال عمل مُحددة.
5.4 جدران الحماية
يمكن أن تؤثر جدران الحماية على الأداء، وخاصة أداء زمن الوصول.
قم بتعطيل iptables/firewalld إذا لم يكن ذلك ضروريًا.
5.5 إعدادات التطبيق
غالبًا ما لا يكفي خيط واحد (وهو ما يُقابل قائمة انتظار شبكة واحدة) لتحقيق أقصى عرض نطاق ترددي. بعض هياكل المنصات، مثل AMD، تميل إلى إسقاط حزم استقبال أكثر باستخدام خيط واحد مقارنةً بالمنصات التي تستخدم معالجات Intel.
فكّر في استخدام أدوات مثل tasket أو numactl لتثبيت التطبيقات على عقدة NUMA أو على نوى وحدة المعالجة المركزية المحلية لجهاز الشبكة. بالنسبة لبعض أحمال العمل، مثل تخزين الإدخال/الإخراج، يُفيد نقل التطبيق إلى عقدة غير محلية.
جرّب زيادة عدد الخيوط التي يستخدمها تطبيقك إذا كان ذلك ممكنًا.
إصدار النواة 5.6
معظم أنوية النظام الحديثة مُحسّنة بشكل جيد للأداء، ولكن، حسب حالة استخدامك، قد يُحسّن تحديث النواة الأداء. كما يُتيح لك تنزيل المصدر تفعيل/تعطيل ميزات مُعينة قبل بناء النواة.
5.7 إعدادات نظام التشغيل/النواة
راجع أدلة ضبط نظام التشغيل، مثل دليل ضبط أداء شبكة Red Hat Enterprise Linux، للحصول على مزيد من المعلومات حول ضبط نظام التشغيل بشكل عام.
يرد في الجدول التالي بعض المعلمات الشائعة التي يمكن ضبطها. تجدر الإشارة إلى أن هذه مجرد نقاط بداية مقترحة، وقد يؤدي تغييرها عن الإعدادات الافتراضية إلى زيادة الموارد المستخدمة على النظام. مع أن زيادة القيم قد تُحسّن الأداء، إلا أنه من الضروري تجربة قيم مختلفة لتحديد الأنسب لنظام وحمل عمل ونوع حركة مرور مُحددين.
يمكن تكوين معلمات kernel باستخدام الأداة المساعدة sysctl في Linux كما هو موضح أدناه.
ل view القيم الافتراضية لـ rmem و wmem على النظام:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
تعيين القيم إلى الحد الأقصى (16 ميجابايت):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
أحجام مخزن المقبس، والمعروفة أيضًا باسم مخزن الاستقبال (rmem) ومخزن الإرسال (wmem)، هي معلمات النظام التي تحدد مقدار الذاكرة المحجوزة لحركة المرور الواردة والصادرة على الشبكة.
يؤدي تشغيل sysctl بدون وسيطة -w إلى إدراج المعلمة بإعدادها الحالي.
إعداد المكدس | وصف |
net.core.rmem_default | حجم نافذة الاستلام الافتراضي |
net.core.wmem_default | حجم نافذة الإرسال الافتراضي |
net.core.rmem_max | الحد الأقصى لحجم نافذة الاستلام |
net.core.wmem_max | الحد الأقصى لحجم نافذة الإرسال |
net.core.optmem_max | الحد الأقصى لخيارات ذاكرة التخزين المؤقت |
net.core.netdev_max_backlog | تراكم الحزم غير المعالجة قبل أن يبدأ النواة في إسقاطها |
net.ipv4.tcp_rmem | احتياطي الذاكرة لمخازن قراءة TCP |
net.ipv4.tcp_wmem | احتياطي الذاكرة لمخازن إرسال TCP |
يمكن أن تؤثر معلمات النواة، ومكدس الشبكة، ومعالج الذاكرة، وسرعة وحدة المعالجة المركزية، وإدارة الطاقة بشكل كبير على أداء الشبكة. ومن التوصيات الشائعة تطبيقها على مُعدّل إنتاجية الشبكة.file باستخدام الأمر "tuned". يُعدّل هذا الأمر بعض إعدادات نظام التشغيل لإعطاء الأولوية لتطبيقات الشبكات.
يفحص:
ضبط-adm نشط
تعيين:
برنامج Tuned-adm profile معدل نقل الشبكة
5.8 تراكم أجهزة الشبكة
تساعد هذه الميزة على تحسين أداء الشبكة من خلال إدارة حركة البيانات الواردة بفعالية، وتقليل فقدان الحزم، وخفض زمن الوصول، وتعزيز الإنتاجية. هذا يؤدي إلى تجربة مستخدم أفضل واستجابة أسرع للنظام.
افتراضيًا، يكون مُفعّلاً في معظم أنظمة تشغيل لينكس. للتحقق من القيمة الافتراضية:
sysctl net.core.netdev_max_backlog
قد تختلف القيمة القصوى لـ netdev_max_backlog تبعًا لعوامل مثل إصدار النواة، والعتاد، والذاكرة، وعبء العمل. في كثير من الحالات، يُعتبر 8192 قيمة جيدة. sysctl -w net.core.netdev_max_backlog=8192
5.9 التكوينات والضبط الخاصة بالمنصة
5.9.1 معالجات Intel® Xeon® القابلة للتطوير من الجيل الرابع
تتميز إدارة الطاقة في معالج Intel® Xeon® Scalable من الجيل الرابع بصرامة شديدة مقارنةً بمعالجات Intel® Xeon® Scalable من الجيل الثالث. لتجنب وصول الأنوية إلى حالة انخفاض الطاقة، حاول تقليل عدد الأنوية المستخدمة لإبقائها في حالة يقظة لفترة أطول.
إعدادات BIOS الموصى بها للحصول على أعلى أداء
- تمكين/تعطيل تقنية Hyper-threading (بناءً على متطلبات عبء العمل وأهداف الأداء) على وحدة المعالجة المركزية.
- ضبط النظام الاحترافيfile إلى الأداء للحصول على أقصى قدر من الأداء.
ملحوظة
ويؤدي هذا إلى زيادة استهلاك الطاقة - قم بضبط إدارة طاقة وحدة المعالجة المركزية على الأداء الأقصى لإعطاء الأولوية لأداء وحدة المعالجة المركزية الأقصى على كفاءة الطاقة.
- تفعيل Turbo Boost. عادةً ما يمنع تعطيل Turbo Boost في إعدادات BIOS النظام وحدة المعالجة المركزية من زيادة ترددها ديناميكيًا إلى ما يتجاوز ترددها الأساسي.
- ملحوظة
قد يكون تعطيل Turbo Boost مناسبًا لحالات استخدام معينة حيث يتم إعطاء الأولوية للأداء المتسق أو كفاءة الطاقة أو الإدارة الحرارية على الأداء الأقصى. - قم بإيقاف تشغيل ميزة Single Root I/O Virtualization (SR-IOV)، إذا كان النظام لا يستخدم تقنيات المحاكاة الافتراضية.
- قم بتعطيل حالات C لتوجيه وحدة المعالجة المركزية للبقاء نشطة ومنع الدخول في حالات خمول أعمق.
- قم بتعطيل C1E، للتأكد من أن وحدة المعالجة المركزية تظل نشطة ولا تدخل في حالة الخمول C1E.
- اضبط تردد uncore على الحد الأقصى لتوجيه النظام للعمل بأعلى تردد متاح.
- على منصات Dell، قم بتعيين محاكاة نواة جدول وصف APIC المتعدد (MADT) على خطي (أو دائري حسب BIOS) لتوفير تعيين واضح ويمكن التنبؤ به لنوى وحدة المعالجة المركزية.
ضبط مستويات نظام التشغيل الموصى بها لتحسين الأداء
- اضبط منظم تردد وحدة المعالجة المركزية على الأداء. cpupower frequency-set -g performance cpupower frequency-info
- تعطيل حالات C. cpupower idle-set -D0
- تعيين مخازن الاستقبال الأساسية (rmem) والإرسال (wmem) إلى القيمة القصوى. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
- تعيين سجل تراكم أجهزة الشبكة. sysctl -w net.core.netdev_max_backlog=8192
- ضبط احترافيfile (عبء العمل يعتمد على الإنتاجية/الزمن الكامن).
برنامج Tuned-adm profile معدل نقل الشبكة
ضبط مستوى المحول الموصى به لتحسين الأداء
- حدِّد عدد قوائم الانتظار المُستخدمة لحركة مرور التطبيقات. استخدم الحد الأدنى لعدد قوائم الانتظار المطلوبة لإبقاء أنوية وحدة المعالجة المركزية المُرتبطة نشطة لمنعها من الدخول في حالة خمول أعمق (اضبطها وفقًا لحجم العمل): ethtool -L مجتمعة 32
- تعيين معدلات تعديل المقاطعة. ethtool -C إيقاف تشغيل الإرسال التكيفي إيقاف تشغيل الإرسال التكيفي rx-usecs-high 50 rx-usecs 50 tx-usecs 50
حاول ضبط مؤقت الإرسال/الاستقبال/الدمج عالي الأولوية إلى أعلى (80/100/150/200) أو أقل (25/20/10/5) للعثور على القيمة المثلى لحمل العمل. - ضبط أحجام حلقات الاستقبال/الإرسال. ethtool -G rx 4096 tx 4096
ملحوظة
إذا لاحظتَ تساقط حزم الاستقبال باستخدام الأمر ethtool -S| grep drop، فحاول تقليل حجم الحلقة إلى أقل من 4096. حاول إيجاد القيمة المثلى لحمل العمل الذي لا تُسقط فيه الحزم. - اضبط تقارب طلب المقاطعة (IRQ Affinity). استخدم النوى المحلية لبطاقة الشبكة (NIC)، أو تعيين نوى محددة (حيث يساوي عدد النوى عدد قوائم الانتظار المحددة في 1 في الصفحة 26). systemctl stop irqbalance set_irq_affinity -X local أو set_irq_affinity -X
5.9.2 AMD EPYC
معالجات AMD EPYC هي وحدات معالجة مركزية قوية مصممة للخوادم ومراكز البيانات، مبنية على بنية Zen من AMD. الإعدادات التالية من الجيل الرابع من سلسلة EPYC من AMD.
إعدادات BIOS الموصى بها للحصول على أعلى أداء
- فعّل الوضع المخصص للسماح للمستخدمين بضبط أداء وحدة المعالجة المركزية، واستهلاك الطاقة، وغيرها من الإعدادات. يساعد هذا في ضبط النظام بدقة لتحقيق أفضل توازن بين الأداء وكفاءة الطاقة.
- تمكين تعزيز أداء النواة للسماح لوحدة المعالجة المركزية بزيادة سرعتها تلقائيًا للتعامل مع المهام الأكثر كثافة، مما يؤدي إلى تحسين الأداء العام.
- قم بتعطيل التحكم في حالة C العالمية، لمنع وحدة المعالجة المركزية من الدخول في حالات توفير طاقة أعمق تُعرف باسم حالات C، والتي يمكنها الحفاظ على الاستجابة.
ملحوظة
قد يؤدي تعطيل حالات C إلى زيادة استهلاك الطاقة وزيادة درجات الحرارة. راقب كلا النظامين لمعرفة حجم العمل. - تفعيل/تعطيل تعدد العمليات المتزامن (SMT) على وحدة المعالجة المركزية، بناءً على متطلبات عبء العمل وأهداف الأداء. SMT يُعادل تعدد العمليات المتزامن على وحدات المعالجة المركزية من Intel.
ملحوظة
للحصول على أداء مثالي، راجع ضبط إعدادات برنامج تشغيل i40e على الصفحة 13 وضبط النظام الأساسي (i40e غير محدد) على الصفحة 19 للحصول على الضبط الموصى به لنظام التشغيل ومستوى المحول.
ربط المحول
يُعد ربط لينكس ميزة فعّالة تُحسّن بشكل كبير أداء الشبكة، والتكرار، وتحمل الأخطاء في بيئات الخوادم. مع ذلك، تجدر الإشارة إلى أنها تتطلب أجهزة شبكة متوافقة وتكوينًا سليمًا على كلٍّ من الخادم والمُبدِّل ليعمل بشكل صحيح.
يتيح لك برنامج تشغيل الربط في لينكس تجميع عدة واجهات شبكة مادية في واجهة واحدة مرتبطة. تظهر هذه الواجهة كواجهة شبكة افتراضية واحدة لنظام التشغيل والتطبيقات.
ملحوظة
الرابطة عبارة عن واجهة منطقية، لذا ليس من الممكن تعيين تقارب وحدة المعالجة المركزية مباشرة على واجهة الرابطة (على سبيل المثالampأي أنه لا يملك تحكمًا مباشرًا في معالجة المقاطعات أو تقارب وحدة المعالجة المركزية. يجب تكوين تقارب وحدة المعالجة المركزية للواجهات الأساسية التي تُشكّل جزءًا من الرابط.
يوفر الترابط عدة طرق للعمل، ولكل منها خصائصها الخاصة.
وضع | يكتب |
0 | جولة روبن |
1 | النسخ الاحتياطي النشط |
2 | إكس أو آر |
3 | إذاعة |
4 | لاكب |
5 | موازنة حمل الإرسال |
6 | موازنة الحمل التكيفية |
هناك طرق مختلفة لإنشاء رابط في لينكس. إحدى الطرق الأكثر شيوعًا هي استخدام إعدادات الشبكة. fileس (على سبيل المثالample، أو /etc/network/ interfaces أو /etc/sysconfig/network-scripts/ifcfg-bondX).
التكوين باستخدام تكوين الشبكة Files
الخطوات التالية تنشئ رابطًا من خلال تكوين الشبكة files.
- حدد منفذي NIC أو أكثر للربط (على سبيل المثالample وethX وethY)
- تكوين بطاقة الشبكة المفتوحة Files ضمن /etc/sysconfig/network-scripts/ لواجهة NIC المطلوبة (على سبيل المثالample، vi ifcfg-ethX و vi ifcfg-ethY) وأضف النص التالي:
MASTER=bondN [ملاحظة: N هو عدد صحيح للإشارة إلى رقم الرابطة.] SLAVE=نعم - إنشاء نص برمجي لشبكة السندات file استخدم vi /etc/sysconfig/networkscripts/ifcfg-bondN وأدخل النص التالي:
DEVICE=bondN [ملاحظة: N هو عدد صحيح للإشارة إلى رقم الرابطة] ONBOOT=نعم USERCTL=لا BOOTPROTO=dhcp (أو) لا شيء
IPADDR=200.20.2.4 [مطلوب إذا كان BOOTPROTO=لا شيء] NETMASK=255.255.255.0 [مطلوب إذا كان BOOTPROTO=لا شيء] NETWORK=200.20.2.0 [مطلوب إذا كان BOOTPROTO=لا شيء] BROADCAST=200.20.2.255 [مطلوب إذا كان BOOTPROTO=لا شيء] BONDING_OPTS=”mode=1 miimon=100″
ملحوظة
يمكن أن يكون الوضع أي عدد صحيح من 0 إلى 6 بناءً على المتطلبات. - أعد تشغيل خدمات الشبكة باستخدام خدمة إعادة تشغيل الشبكة أو systemctl restart NetworkManager.service
استكشاف أخطاء الأداء وإصلاحها
7.1 استخدام وحدة المعالجة المركزية
التحقق من استخدام وحدة المعالجة المركزية لكل نواة أثناء تشغيل عبء العمل.
تجدر الإشارة إلى أن معدل استخدام كل نواة يُؤثر على الأداء أكثر من معدل استخدام وحدة المعالجة المركزية (CPU) الإجمالي، إذ يُعطي فكرة عن معدل استخدام وحدة المعالجة المركزية لكل قائمة انتظار في الشبكة. إذا كان لديك عدد قليل من خيوط المعالجة التي تُشغّل حركة مرور الشبكة، فقد يكون عدد النوى المُستخدمة محدودًا. أما إذا كانت هذه النوى تعمل بنسبة 100%، فمن المُرجّح أن يكون معدل نقل البيانات في شبكتك محدودًا بمعدل استخدام وحدة المعالجة المركزية، وحان الوقت لإجراء ما يلي:
- قم بضبط تعديل IRQ/حجم الرنين كما هو مفصل في تعديل المقاطعة.
- زد عدد خيوط التطبيق لتوزيع حمل وحدة المعالجة المركزية على عدد أكبر من النوى. إذا كانت جميع النوى تعمل بنسبة ١٠٠٪، فقد يكون تطبيقك مرتبطًا بوحدة المعالجة المركزية بدلاً من الشبكة.
الأدوات المتوفرة بشكل عام:
- قمة
— اضغط على 1 لتوسيع قائمة وحدات المعالجة المركزية والتحقق من أي منها يتم استخدامها.
- لاحظ مستوى الاستخدام.
- لاحظ العمليات المدرجة باعتبارها الأكثر نشاطًا (أعلى القائمة). - إم بي ستات
المثال التاليampتم اختبار سطر الأوامر على Red Hat Enterprise Linux 7.x.
يعرض استخدام وحدة المعالجة المركزية لكل نواة (عن طريق إيجاد النسبة المئوية الإجمالية للخمول وطرحها من 100) ويسلط الضوء على القيم أعلى من 80٪ باللون الأحمر. mpstat -P ALL 1 1 | grep -v Average | tail -n +5 | head -n -1 | awk '{ print (100-$13)}' | egrep -color=always '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | column - ابحث عن المكان الذي يتم فيه قضاء الدورات.
عدادات 7.2 i40e
يوفر برنامج تشغيل i40e قائمة طويلة من العدادات لتصحيح أخطاء الواجهة ومراقبتها عبر الأمر ethtool -S ethX. قد يكون من المفيد مراقبة النتائج أثناء تشغيل حمل العمل و/أو مقارنة قيم العدادات قبل وبعد تشغيله.
- للحصول على نسخة كاملة من عدادات i40e: ethtool -S ethX
- لمشاهدة العدادات غير الصفرية فقط: watch -d (ethtool -S ethX) | egrep -v :\ 0 | column
بعض الأشياء التي يجب البحث عنها: - rx_dropped يعني أن وحدة المعالجة المركزية لا تخدم المخازن المؤقتة بسرعة كافية.
- port.rx_dropped يعني أن هناك شيئًا ليس سريعًا بدرجة كافية في الفتحة/الذاكرة/النظام.
7.3 عدادات الشبكة
تحقق من netstat -s قبل/بعد تشغيل عبء العمل.
يجمع أمر Netstat معلومات الشبكة من جميع أجهزة الشبكة في النظام. لذلك، قد تتأثر النتائج من شبكات أخرى غير الشبكة قيد الاختبار. يُعدّ ناتج الأمر netstat -s مؤشرًا جيدًا على وجود مشاكل في الأداء في نظام تشغيل Linux أو نواة النظام. راجع أدلة ضبط نظام التشغيل، مثل دليل ضبط أداء شبكة Red Hat Enterprise Linux، لمزيد من المعلومات حول ضبط نظام التشغيل بشكل عام.
7.4 سجلات النظام
تحقق من سجلات النظام بحثًا عن الأخطاء والتحذيرات (/var/log/messages، dmesg).
أداة Intel svr-info 7.5
توفر Intel أداة svr-info (انظر https://github.com/intel/svr-info) لنظام لينكس، والذي يلتقط تفاصيل الأجهزة والبرامج ذات الصلة من الخادم. يمكن أن يكون إخراج معلومات svr مفيدًا للغاية في تحديد اختناقات النظام أو الإعدادات/الضبط غير المُحسّنة لحجم العمل. عند فتح حالة دعم مع Intel لمشاكل الأداء المتعلقة بشبكة Ethernet، تأكد من تضمين إخراج معلومات svr (نص file) لكل خادم Linux في تكوين الاختبار.
- تنزيل وتثبيت svr-info:
wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
./svr-info
> اسم المضيف.txt - جمع الناتج:
./svr-info > اسم المضيف.txt - إرفاق نص واحد (.txt) file لكل خادم لحالة دعم Intel الخاصة بك للتحليل.
توصيات لسيناريوهات الأداء الشائعة
8.1 إعادة توجيه IP
- تحديث النواة.
بعض نوى التوزيعات الحديثة شهدت انخفاضًا في أداء التوجيه بسبب تغييرات في شيفرة التوجيه، بدءًا من إزالة ذاكرة التخزين المؤقت للتوجيه لأسباب أمنية. من المفترض أن تتضمن نوى التوزيعات الحديثة تصحيحات تُخفف من تأثير هذه التغييرات على الأداء، وقد تُحسّن الأداء. - تعطيل الترابط الفائق (النوى المنطقية).
- تعديل معلمات تمهيد النواة.
— فرض إيقاف تشغيل iommu (intel_iommu=off أو iommu=off) من سطر تمهيد kernel ما لم يكن ذلك مطلوبًا للمحاكاة الافتراضية
— إيقاف تشغيل إدارة الطاقة:processor.max_cstates=1 idle=poll pcie_aspm=off - قم بتحديد عدد قوائم الانتظار بحيث يكون مساويًا لعدد النوى الموجودة على المقبس المحلي (12 في هذا المثال)ampلو). ethtool -L ethX مجتمعة 12
- قم بتوصيل المقاطعات بالمقبس المحلي فقط. set_irq_affinity -X local ethX أو set_irq_affinity -X local ethX
ملحوظة
يمكن استخدام -X أو -x اعتمادًا على حجم العمل. - غيّر حجم حلقات الإرسال والاستقبال حسب الحاجة. تستهلك القيمة الأكبر موارد أكثر، لكنها توفر معدلات إعادة توجيه أفضل. ethtool -G ethX rx 4096 tx 4096
- تعطيل GRO عند التوجيه.
بسبب مشكلة معروفة في النواة، يجب إيقاف تشغيل GRO عند التوجيه/إعادة التوجيه. ethtool -K ethX gro off حيث ethX هي واجهة Ethernet التي يجب تعديلها. - تعطيل تعديل المقاطعة التكيفية وتعيين قيمة ثابتة. ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64
ملحوظة
اعتمادًا على نوع المعالج وحجم العمل، يمكن تعديل معلمات الاندماج الخاصة بـ RX وTX لتحسين الأداء (أو تقليل فقدان الإطارات).
- تعطيل جدار الحماية. sudo systemctl disable firewalld sudo systemctl stop firewalld
- تمكين إعادة توجيه IP. sysctl -w net.ipv4.ip_forward=1
- قم بتكوين القيم القصوى لحجم مخزن الاستقبال والإرسال. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
ملحوظة
اعتمادًا على حجم العمل أو المتطلبات، يمكن تغيير هذه القيم من القيمة الافتراضية.
8.2 زمن انتقال منخفض
- قم بإيقاف تشغيل تقنية Hyper-Threading (النوى المنطقية).
- تأكد من أن جهاز الشبكة محلي بالنسبة إلى numa core 0.
- قم بتثبيت المعيار على النواة 0 باستخدام tasket -c 0.
- قم بإيقاف تشغيل irqbalance باستخدام systemctl stop irqbalance أو systemctl disable irqbalance
- شغّل برنامج التقارب لنشر البيانات على جميع النوى. جرّب التوزيع محليًا أو شاملًا.
- إيقاف تشغيل تعديل المقاطعة. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- high 0
- حدد عدد قوائم الانتظار بحيث يكون مساويًا لعدد النوى الموجودة على المقبس المحلي (32 في هذا المثال)ampلو). ethtool -L ethX مجتمعة 32
- يتم توصيل المقاطعات إلى المقبس المحلي فقط (النص البرمجي مع مصدر برنامج التشغيل i40e). set_irq_affinity -X local ethX
- استخدم معيارًا ثابتًا مثل netperf -t TCP_RR، أو netperf -t UDP_RR، أو NetPipe. netperf -t TCP_RR أو netperf -t UDP_RR
- قم بتثبيت معيار الأداء على نواة واحدة في عقدة NUMA المحلية. tasket -c
سلسلة Intel ® Ethernet 700
دليل ضبط أداء لينكس
2024 ديسمبر
رقم الوثيقة: 334019، المراجعة: 1.2
المستندات / الموارد
![]() |
ضبط أداء Intel Ethernet 700 Series Linux [بي دي اف] دليل المستخدم 334019، ضبط أداء لينكس لسلسلة Ethernet 700، سلسلة Ethernet 700، ضبط أداء لينكس، ضبط الأداء، الضبط |