انٹیل لوگوIntel ® ایتھرنیٹ 700 سیریز
لینکس پرفارمنس ٹیوننگ گائیڈ
NEX کلاؤڈ نیٹ ورکنگ گروپ (NCNG)
Rev. 1.2
دسمبر 2024

نظرثانی کی تاریخ

نظر ثانی تاریخ تبصرے
1.2 دسمبر 2024 · اضافی پاور مینجمنٹ گائیڈنس شامل کی گئی۔
· شامل کیا گیا انٹیل* ٹربو بوسٹ۔
نیٹ ورک ڈیوائس کا بیکلاگ شامل کیا گیا۔
· پلیٹ فارم کے لیے مخصوص کنفیگریشنز اور ٹیوننگ شامل کی گئی۔
· 4th جنریشن Intel* %eon* توسیع پذیر پروسیسرز کو شامل کیا گیا۔
AMD EPYC شامل کیا گیا۔
· اپ ڈیٹ شدہ چیک سسٹم ہارڈ ویئر کی صلاحیتوں کو۔
iPerf2 کو اپ ڈیٹ کیا گیا۔
iPerf3 کو اپ ڈیٹ کیا گیا۔
· تازہ کاری شدہ Tx/Rx قطاریں۔
· اپ ڈیٹ شدہ مداخلت اعتدال۔
· تازہ کاری شدہ رنگ سائز۔
· اپ ڈیٹ شدہ پلیٹ فارم ٹیوننگ (i40e غیر مخصوص)۔
BIOS سیٹنگز کو اپ ڈیٹ کر دیا گیا۔
· اپ ڈیٹ شدہ C-اسٹیٹ کنٹرول۔
· تازہ کاری شدہ CPU فریکوئنسی اسکیلنگ۔
اپ ڈیٹ کردہ ایپلیکیشن سیٹنگز۔
· اپ ڈیٹ شدہ آپریٹنگ سسٹم/کرنل سیٹنگز۔
· اپ ڈیٹ شدہ IP فارورڈنگ۔
· اپ ڈیٹ شدہ کم تاخیر۔
اگست 2023 اس دستاویز میں تبدیلیاں شامل ہیں:
متعلقہ حوالہ جات شامل کیے گئے۔
· شامل کیا گیا اس بات کو یقینی بنائیں کہ ڈی ڈی پی پیکیج مناسب طریقے سے لوڈ ہو رہا ہے۔
iPerf2 شامل کیا گیا۔
iPerf3 شامل کیا گیا۔
· netperf شامل کیا گیا۔
· تازہ کاری شدہ IRQ وابستگی۔
Tx/Rx قطاریں شامل کر دی گئیں۔
· تازہ کاری شدہ رنگ سائز۔
· جمبو فریم شامل کیے گئے۔
· ایڈاپٹر بانڈنگ شامل کر دی گئی۔
Intel svr-info ٹول شامل کر دیا گیا۔
1.0 مارچ 2016 ابتدائی ریلیز (انٹیل پبلک)۔

تعارف

اس گائیڈ کا مقصد لینکس کے ماحول میں Intel ® Ethernet 700 Series NICs کا استعمال کرتے ہوئے نیٹ ورکنگ کی بہترین کارکردگی کے لیے ماحول سازی کے لیے رہنمائی فراہم کرنا ہے۔ یہ ہارڈ ویئر، ڈرائیور، اور آپریٹنگ سسٹم کے حالات اور ترتیبات پر توجہ مرکوز کرتا ہے جو نیٹ ورک کی کارکردگی کو بہتر بنا سکتے ہیں۔ واضح رہے کہ نیٹ ورکنگ کی کارکردگی کسی بھی تعداد میں بیرونی اثرات سے متاثر ہو سکتی ہے، ان میں سے صرف سب سے زیادہ عام اور ڈرامائی کا اس گائیڈ میں احاطہ کیا گیا ہے۔
1.1 متعلقہ حوالہ جات

ابتدائی چیک لسٹ

2.1 ڈرائیور/فرم ویئر ورژن کو اپ ڈیٹ کریں۔
ethtool -i ethx کا استعمال کرتے ہوئے ڈرائیور/فرم ویئر ورژن چیک کریں۔
ضرورت کے مطابق درج ذیل کو اپ ڈیٹ کریں:

2.2 README پڑھیں
معلوم مسائل کی جانچ کریں اور README سے کنفیگریشن کی تازہ ترین ہدایات حاصل کریں۔ file i40e سورس پیکج میں شامل ہے۔
2.3 چیک کریں کہ آپ کا PCI ایکسپریس (PCIe) سلاٹ x8 ہے۔
کچھ PCIe x8 سلاٹس اصل میں x4 سلاٹس کے طور پر ترتیب دیے گئے ہیں۔ ان سلاٹس میں ڈوئل پورٹ اور کواڈ پورٹ ڈیوائسز کے ساتھ فل لائن ریٹ کے لیے ناکافی بینڈوتھ ہے۔ اس کے علاوہ، اگر آپ PCIe v3.0 کے قابل اڈاپٹر کو PCIe v2.x سلاٹ میں ڈالتے ہیں، تو آپ مکمل بینڈوتھ حاصل نہیں کر سکتے۔ سافٹ ویئر ڈیوائس ڈرائیور اس صورتحال کا پتہ لگاتا ہے اور سسٹم لاگ میں درج ذیل پیغام لکھتا ہے:
اس کارڈ کے لیے دستیاب PCI-Express بینڈوتھ بہترین کارکردگی کے لیے کافی نہیں ہے۔ بہترین کارکردگی کے لیے ایک x8 PCI-Express سلاٹ درکار ہے۔
اگر یہ خرابی پیش آتی ہے، تو مسئلے کو حل کرنے کے لیے اپنے اڈاپٹر کو حقیقی PCIe v3.0 x8 سلاٹ میں منتقل کریں۔
2.4 سسٹم ہارڈ ویئر کی صلاحیتوں کو چیک کریں۔
10 Gbps، 25 Gbps، اور 40 Gbps ایتھرنیٹ پر، کچھ کم از کم CPU اور سسٹم کے تقاضے ہیں۔ عام طور پر، آپ کے پلیٹ فارم کے لیے ایک جدید سرور کلاس پروسیسر اور میموری کی بہترین ترتیب کافی ہونی چاہیے، لیکن آپ کے کام کے بوجھ کے لحاظ سے ضروریات مختلف ہوتی ہیں۔ تمام میموری چینلز کو آباد کیا جانا چاہیے اور BIOS میں میموری پرفارمنس موڈ کو فعال کیا جانا چاہیے۔ تصدیق کریں کہ آپ کا CPU اور میموری کنفیگریشن نیٹ ورک کی کارکردگی کی اس سطح کو سپورٹ کرنے کے قابل ہے جس کی آپ کو اپنے کام کے بوجھ کے لیے ضرورت ہے۔
نوٹ
XL710 ایک 40 GbE کنٹرولر ہے۔ اس کنٹرولر کو استعمال کرنے والے 2 x 40 GbE اڈاپٹر کا مقصد 2 x 40 GbE نہیں ہے بلکہ ایک فعال بیک اپ پورٹ کے ساتھ 1 x 40 GbE ہے۔ دونوں بندرگاہوں پر مشتمل لائن ریٹ ٹریفک کو استعمال کرنے کی کوشش کرتے وقت، اندرونی سوئچ سیر ہو جاتا ہے اور دونوں بندرگاہوں کے درمیان مشترکہ بینڈوڈتھ کل SO Gbps تک محدود ہوتی ہے۔
2.4.1 کرنل بوٹ پیرامیٹرز
اگر Intel® Virtualization Technology for Directed I/O (Intel® VT-d) کو BIOS میں فعال کیا گیا ہے، تو Intel تجویز کرتا ہے کہ میزبان نیٹ ورک کی بہترین کارکردگی کے لیے IOMMU پاس تھرو موڈ میں ہو۔ یہ میزبان ٹریفک پر DMA اوور ہیڈ کو ختم کرتا ہے جبکہ ورچوئل مشینوں (VMs) کو ابھی بھی Intel® VT-d کے فوائد حاصل کرنے کے قابل بناتا ہے۔ یہ کرنل بوٹ پیرامیٹرز میں درج ذیل لائن کو شامل کرکے مکمل کیا جاتا ہے: fommu-pt۔
2.5 یقینی بنائیں کہ DDP پیکج صحیح طریقے سے لوڈ ہو رہا ہے۔
140ea اور 140eb بیس ڈرائیوروں کو ڈائنامک ڈیوائس پرسنلائزیشن (DDP) کے لیے براہ راست تعاون حاصل نہیں ہے۔ 700 سیریز والے آلات کے ساتھ DDP استعمال کرنے کے لیے، DDP پروfile testpmd ایپلی کیشن کے ساتھ اپلائی کیا جا سکتا ہے۔
ڈی ڈی پی پرو پر تفصیلات کے لیےfiles، اور ڈی ڈی پی پرو کا اطلاق کیسے کریں۔file 700 سیریز کے آلات پر testpmd کے ساتھ، Intel® Ethernet 700 Series Dynamic Device Personalization (DDP) ٹیکنالوجی گائیڈ سے رجوع کریں۔
اس بات کی تصدیق کرنے کے لیے کہ آیا ڈی ڈی پی پروfile کامیابی سے لوڈ کیا گیا:
testpmd> ddp get list 0 Profile نمبر ہے: 1
نوٹ
اگر حامیfile نمبر 0 ہے، کوئی DDP پیکیج لوڈ نہیں ہے۔ DDP پیکج لوڈ کی خرابی کی صورت میں، ڈیوائس ڈیفالٹ سیف موڈ پر ہو جاتی ہے اور کارکردگی کی بہت سی خصوصیات دستیاب نہیں ہوتیں۔ اگر DDP پیکج کو لوڈ کرنے سے متعلق غلطیاں ہیں، تو یہ کارکردگی کے مسائل کا سبب بنے گی۔ ٹربل شوٹنگ کے اقدامات کے لیے، Inte/* Ethernet 700 Series Dynamic Device Personalization (DDP) ٹیکنالوجی گائیڈ سے رجوع کریں۔

بیس لائن پرفارمنس کی پیمائش اور ٹیوننگ کا طریقہ کار

3.1 نیٹ ورک کی کارکردگی کے بینچ مارکس
ٹیوننگ کی مشق شروع کرنے سے پہلے، یہ ضروری ہے کہ آپ کے نیٹ ورک کی کارکردگی کی اچھی بنیادی پیمائش ہو۔ عام طور پر آپ کی مخصوص ایپلیکیشن/کام کے بوجھ کی کارکردگی کی ابتدائی پیمائش حاصل کرنے کے علاوہ، یہ ایک اچھا خیال ہے کہ نیٹ ورک کی کارکردگی کے معیاری بینچ مارک کو بھی اس بات کی تصدیق کرنے کے لیے استعمال کیا جائے کہ آپ کا نیٹ ورک ڈیوائس اچھی حالت میں ہے۔
سنگل سسٹم آپٹیمائزیشن کے لیے، netperf یا iperf اور NetPIPE تمام ٹھوس اوپن سورس فری ٹولز ہیں جو آپ کو کنکشن پر زور دینے اور کارکردگی کے مسائل کی تشخیص کرنے کے قابل بناتے ہیں۔
Netperf تھرو پٹ اور لیٹنسی ٹیسٹنگ دونوں کے لیے مضبوط ہے۔ NetPIPE ایک لیٹنسی کے لیے مخصوص ٹول ہے لیکن اسے کسی بھی قسم کے ماحول کے لیے مرتب کیا جا سکتا ہے۔
نوٹ
netperf میں TCP_RR ٹیسٹ لین دین/سیکنڈ کی قدر میں لیٹنسی واپس کرتا ہے۔ یہ ایک راؤنڈ ٹرپ نمبر ہے۔ درج ذیل مساوات کا استعمال کرتے ہوئے یک طرفہ تاخیر کا حساب لگایا جا سکتا ہے۔
تاخیر(استعمال) = (1⁄2) / [لین دین/سیکنڈ] * 1,000,000
3.1.1 iPerf2
Intel استعمال میں آسانی اور ایک ہی ایپلیکیشن مثال میں متعدد تھریڈز کی حمایت کی وجہ سے زیادہ تر بینچ مارکنگ حالات کے لیے iperf2 پر iperf3 کی سفارش کرتا ہے۔ Intel 2G کنکشنز کے لیے 4-25 تھریڈز اور 4G کنکشنز کے لیے 6-40 تھریڈز کے ساتھ -P آپشن کے ساتھ چلانے کی تجویز کرتا ہے۔

  • کلائنٹ سے سرور تک یک طرفہ ٹریفک چلانے کے لیے: سرور کمانڈ example: iperf2 -s
    کلائنٹ کمانڈ سابقample: iperf2 -c -پی
  • کلائنٹ سے سرور تک دو طرفہ ٹریفک چلانے کے لیے (اور اس کے برعکس): سرور کمانڈ example: iperf2 –s –p
    کلائنٹ کمانڈ سابقampلی:
    iperf2 -c -p -پی --مکمل ڈوپلیکس یا
    iperf2 -c -p -پی -d

نوٹ
iperf2 میں -full-duplex اور -d دونوں آپشنز صارف کو دو طرفہ جانچ کرنے کی اجازت دیتے ہیں۔ تاہم، مکمل ڈوپلیکس آپشن خاص طور پر مکمل ڈوپلیکس ٹیسٹنگ پر مرکوز ہے۔
نوٹ
متعدد سرور پورٹس پر iperf2 کی جانچ کرتے وقت، ایک ہی ٹرمینل ونڈو سے پس منظر میں تمام سرور سیشنز کو چلانے کے لیے سرور کمانڈ میں -d پرچم شامل کیا جا سکتا ہے۔ -d جھنڈا اس وقت بھی استعمال کیا جا سکتا ہے جب سرور کمانڈ کو اسکرپٹ میں فار لوپ کے اندر ایمبیڈ کیا جاتا ہے۔
نوٹ
جب نیٹ ورک تھرو پٹ ٹیسٹ کو ایک ہی سلسلہ/دھاگے کے ساتھ چلا رہے ہو (مثال کے طور پرample: P1)، AMD پروسیسرز متوقع تھرو پٹ فراہم نہیں کر سکتے ہیں، خاص طور پر زیادہ بینڈوتھ NICs (اگر رفتار >= 25G بینڈوڈتھ ہے)۔ نتیجے کے طور پر، اعلی تھرو پٹ حاصل کرنے کے لیے مخصوص کور پر ایپلی کیشن پننگ کی ضرورت ہوتی ہے۔ صفحہ 22 پر درخواست کی ترتیبات دیکھیں۔
3.1.2 iPerf3
اگر iperf3 استعمال کیا جاتا ہے، تو ایڈوان لینے کے لیے ایپلیکیشن کی متعدد مثالیں درکار ہوتی ہیں۔tagای ملٹی تھریڈز، آر ایس ایس، اور ہارڈویئر قطاروں میں سے۔ Intel 2G کنکشنز کے لیے 4-25 ایپلیکیشن سیشنز اور 4G کنکشنز کے لیے تقریباً 6-40 سیشنز کے ساتھ چلانے کی تجویز کرتا ہے۔ ہر سیشن کو -p آپشن کا استعمال کرتے ہوئے ایک منفرد TCP پورٹ ویلیو کی وضاحت کرنی چاہیے۔

  • کلائنٹ سے سرور تک یک طرفہ ٹریفک چلانے کے لیے:
    سرور کمانڈ سابقampلی:
    iperf3 -s -p
    کلائنٹ کمانڈ سابقampلی:
    iperf3 -c -p
  • کلائنٹ سے سرور تک دو طرفہ ٹریفک چلانے کے لیے (اور اس کے برعکس):
    سرور کمانڈ سابقampلی:
    iperf3 -s -p
    کلائنٹ کمانڈ سابقample: iperf3 -c -p -پی --بدیر
  • iperf3 کی ایک سے زیادہ مثالیں (تھریڈز) شروع کرنے کے لیے، تجویز یہ ہے کہ تھریڈز کو TCP پورٹس پر نقشہ کرنے کے لیے ایک فار لوپ کا استعمال کیا جائے اور متوازی طور پر ایک سے زیادہ پروسیس بنانے اور استعمال کرنے کے لیے بیک گراؤنڈ میں iperf3 چلائیں۔
    سرور کمانڈ سابقample, 4 تھریڈ شروع کریں: port=""; میں کے لیے {0..3} میں؛ ڈو پورٹ = 520$i؛ bash -c "iperf3 -s -p $port &"; ہو گیا کلائنٹ کمانڈ سابقample, 4 تھریڈ شروع کریں – ٹرانسمٹ ٹیسٹ پورٹ=””; میں کے لیے {0..3} میں؛ ڈو پورٹ = 520$i؛ bash -c "iperf3 -c $serverIP -p $port &"; ہو گیا کلائنٹ کمانڈ سابقample, 4 تھریڈ شروع کریں – ٹیسٹ پورٹ حاصل کریں=””; میں کے لیے {0..3} میں؛ ڈو پورٹ = 520$i؛ bash -c "iperf3 -R -c $serverIP -p $port &"; ہو گیا 40G کنکشنز کے لیے، 6 مثالوں/دھاگوں تک بنانے کے لیے فار لوپ کو بڑھائیں۔

نوٹ
جب نیٹ ورک تھرو پٹ ٹیسٹ کو ایک ہی سلسلہ/دھاگے کے ساتھ چلا رہے ہو (مثال کے طور پرample: P1)، AMD پروسیسرز متوقع تھرو پٹ فراہم نہیں کرسکتے ہیں، خاص طور پر زیادہ بینڈوتھ
NICs (اگر رفتار>= 25G بینڈوتھ ہے)۔ نتیجے کے طور پر، اعلی تھرو پٹ حاصل کرنے کے لیے مخصوص کور پر ایپلی کیشن پننگ کی ضرورت ہوتی ہے۔ صفحہ 22 پر درخواست کی ترتیبات اور صفحہ 26 پر AMD EPYC دیکھیں۔
3.1.3 نیٹ پرف
نیٹپرف ٹول تھرو پٹ اور لیٹنسی ٹیسٹنگ دونوں کے لیے مضبوط انتخاب ہے۔

  • netperf میں TCP_STREAM ٹیسٹ ڈیوائس کی تھرو پٹ صلاحیتوں کی پیمائش کرتا ہے۔ سرور کمانڈ سابقample: نیٹ سرور کلائنٹ کمانڈ سابقample: netperf -t TCP_STREAM -l 30 -H
  • netperf میں TCP_RR ٹیسٹ ٹرانزیکشنز/سیکنڈ کی قدر میں لیٹنسی واپس کرتا ہے۔ یہ ایک راؤنڈ ٹرپ نمبر ہے۔ -T x،x آپشن کو استعمال کرنے کی سفارش کی جاتی ہے، کیا x آلہ پر مقامی CPU ہے۔ یک طرفہ تاخیر کا حساب اس کے ذریعے لگایا جا سکتا ہے: Latency(usec)=(1⁄2)/ [Tranzactions/sec]*1,000,\ Server command example: نیٹ سرور
    کلائنٹ کمانڈ سابقample: netperf -t TCP_RR -l 30 -H -ٹی ایکس، ایکس
  • نیٹ پرف کے متعدد مثالوں (تھریڈز) کو شروع کرنے کے لیے، سفارش یہ ہے کہ دھاگوں کو ٹی سی پی پورٹس پر نقشہ بنانے کے لیے ایک فار لوپ کا استعمال کیا جائے اور متوازی طور پر ایک سے زیادہ پروسیس بنانے اور استعمال کرنے کے لیے بیک گراؤنڈ میں نیٹ پرف چلائیں۔
    سرور کمانڈ سابقample، 8 تھریڈ شروع کریں:
    بندرگاہ =""؛ میں کے لیے {0..7} میں؛ ڈو پورٹ = 520$i؛ bash -c "netserver -L $serverIP -p $port &"؛ ہو گیا
    کلائنٹ کمانڈ سابقample, 8 تھریڈ شروع کریں: port=""; میں کے لیے {0..7} میں؛ ڈو پورٹ = 520$i؛ bash -c "netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &"; ہو گیا

3.2 ٹیوننگ کا طریقہ کار
ایک وقت میں ایک ٹیوننگ تبدیلی پر توجہ مرکوز کریں تاکہ آپ جان سکیں کہ ہر تبدیلی آپ کے ٹیسٹ پر کیا اثر ڈالتی ہے۔ آپ ٹیوننگ کے عمل میں جتنے زیادہ طریقہ کار پر ہوں گے، کارکردگی کی رکاوٹوں کی وجوہات کی شناخت اور ان کو دور کرنا اتنا ہی آسان ہوگا۔

ٹیوننگ i40e ڈرائیور کی ترتیبات

4.1 IRQ وابستگی
IRQ وابستگی کو ترتیب دینا تاکہ مختلف نیٹ ورک کی قطاروں کے لیے رکاوٹیں مختلف CPU کور سے منسلک ہو جائیں کارکردگی پر بہت زیادہ اثر ڈال سکتے ہیں، خاص طور پر ملٹی تھریڈ تھرو پٹ ٹیسٹ۔
IRQ affinity کو کنفیگر کرنے کے لیے، irqbalance کو روکیں اور پھر i40e سورس پیکیج سے set_irq_affinity اسکرپٹ استعمال کریں یا دستی طور پر قطاروں کو پن کریں۔ قطار پننگ کو فعال کرنے کے لیے یوزر اسپیس IRQ بیلنس کو غیر فعال کریں:

  • systemctl irqbalance کو غیر فعال کریں۔
  • systemctl سٹاپ irqbalance
    i40e سورس پیکیج سے set_irq_affinity اسکرپٹ کا استعمال کرنا (تجویز کردہ):
  • تمام کور استعمال کرنے کے لیے:
    [path-to-i40epackage]/scripts/set_irq_affinity -X تمام ایتھ ایکس
  • مقامی NUMA ساکٹ پر صرف کور استعمال کرنے کے لیے: [path-to-i40epackage]/scripts/set_irq_affinity -X مقامی ایتھ ایکس
  • آپ کور کی ایک رینج بھی منتخب کر سکتے ہیں۔ cpu0 استعمال کرنے سے گریز کریں کیونکہ یہ ٹائمر کے کام چلاتا ہے۔ [path-to-i40epackage]/scripts/set_irq_affinity 1-2 ethX

نوٹ
affinity اسکرپٹ ٹرانسمیٹ پیکٹ اسٹیئرنگ (XPS) کو پننگ کے عمل کے حصے کے طور پر اس وقت قابل بناتا ہے جب -x آپشن بیان کیا جاتا ہے۔ جب XPS فعال ہوتا ہے، تو Intel تجویز کرتا ہے کہ آپ irqbalance کو غیر فعال کر دیں، کیونکہ XPS کے ساتھ کرنل بیلنسر غیر متوقع کارکردگی کا سبب بن سکتا ہے۔ جب -X آپشن بیان کیا جاتا ہے تو affinity اسکرپٹ XPS کو غیر فعال کر دیتی ہے۔ XPS کو غیر فعال کرنا اور ہم آہنگ قطاروں کو فعال کرنا کام کے بوجھ کے لیے فائدہ مند ہے جہاں بہترین کارکردگی اس وقت حاصل کی جاتی ہے جب Tx اور Rx ٹریفک کو ایک ہی قطار کے جوڑے پر سروس کیا جاتا ہے۔
لینکس میں ہم آہنگ قطاروں کو ترتیب دینے میں نیٹ ورک انٹرفیس ڈرائیور پیرامیٹرز کو ٹیوننگ کرنا شامل ہے تاکہ سپورٹ شدہ نیٹ ورک اڈاپٹر کے لیے ہم آہنگی وصول کرنے والی قطاروں (Rx) اور ہم آہنگ ٹرانسمٹ قطاروں (Tx) کو فعال کیا جا سکے۔
نوٹ

  • ہم آہنگ قطاریں نیٹ ورکنگ کی ایک جدید خصوصیت ہیں، اور تمام 700 سیریز کے نیٹ ورک اڈاپٹر یا ڈرائیور ان کی حمایت نہیں کرتے ہیں۔
  • متوازی قطاروں کو ترتیب دینے کی کوشش کرنے سے پہلے یقینی بنائیں کہ آپ کے پاس ضروری ڈرائیور اور ہارڈویئر سپورٹ ہے۔

ہم آہنگ قطاروں کو ترتیب دینے کے لیے، ان عمومی اقدامات پر عمل کریں:

  1. نیٹ ورک انٹرفیس کنفیگریشن میں ترمیم کریں۔ File: ٹیکسٹ ایڈیٹر استعمال کریں (مثال کے طور پرample، vi، nano، یا gedit) نیٹ ورک انٹرفیس کنفیگریشن میں ترمیم کرنے کے لیے file. دی file عام طور پر /etc/sysconfig/network-scripts/ ڈائریکٹری کے نیچے واقع ہے اور اس کا ایک نام ہے جیسے ifcfg-ethX، جہاں ethX آپ کے نیٹ ورک انٹرفیس کا نام ہے۔
  2. ہم آہنگ قطار کے پیرامیٹرز شامل کریں۔ نیٹ ورک انٹرفیس کنفیگریشن میں درج ذیل لائنیں شامل کریں۔ file: ETHTOOL_OPTS=”rx-queues 8 tx-queues 8″
  3. نیٹ ورک سروس کو دوبارہ شروع کریں۔
    تبدیلیاں کرنے کے بعد، نئی ترتیب کو لاگو کرنے کے لیے نیٹ ورک سروس کو دوبارہ شروع کریں۔ sudo systemctl نیٹ ورک کو دوبارہ شروع کریں۔

دستی طور پر:

  • ہر نوڈ سے منسلک پروسیسرز کو استعمال کرتے ہوئے تلاش کریں: numactl –hardware lscpu
  • ہر ایک پروسیسرز کے لیے بٹ ماسک تلاش کریں:
  • نوڈ 0 کے لیے کور 11-0 فرض کرنا: [1,2,4,8,10,20,40,80,100,200,400,800]
  • تفویض کردہ پورٹ کو تفویض کردہ IRQs تلاش کریں: grep ethX /proc/interrupts اور IRQ قدروں کو نوٹ کریں۔ample، 181-192 بھری ہوئی 12 ویکٹرز کے لیے۔
  • متعلقہ IRQ اندراج میں SMP وابستگی کی قدر کو ایکو کریں۔ نوٹ کریں کہ یہ ہر IRQ اندراج کے لیے کرنے کی ضرورت ہے: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity دکھائیں IRQ وابستگی:
  • تمام کور کے لیے IRQ وابستگی ظاہر کرنے کے لیے: /scripts/set_irq_affinity -s ethX
  • مقامی NUMA ساکٹ پر صرف کور دکھانے کے لیے: /scripts/set_irq_affinity -s مقامی ایتھ ایکس
  • آپ کور کی ایک رینج بھی منتخب کر سکتے ہیں: /scripts/set_irq_affinity -s 40-0-8,16 ethX

نوٹ
set_irq_affinity اسکرپٹ i40e ڈرائیور ورژن 2.16.11 اور بعد میں -s پرچم کو سپورٹ کرتی ہے۔
4.2 Tx/Rx قطاریں۔
شروع کے وقت ڈرائیور کے ذریعہ ہر ایتھرنیٹ پورٹ کے لیے فعال کی گئی قطاروں کی ڈیفالٹ تعداد پلیٹ فارم میں دستیاب CPUs کی کل تعداد کے برابر ہے۔ یہ بہت سے پلیٹ فارمز اور ورک لوڈ کنفیگریشنز کے لیے اچھی طرح کام کرتا ہے۔ تاہم، اعلی بنیادی شمار اور/یا زیادہ ایتھرنیٹ پورٹ کثافت والے پلیٹ فارمز میں، یہ ترتیب وسائل کے تنازع کا سبب بن سکتی ہے۔ لہذا، کچھ معاملات میں سسٹم میں ہر پورٹ کے لیے ڈیفالٹ میں ترمیم کرنا ضروری ہو سکتا ہے۔
Tx/Rx قطاروں کی ڈیفالٹ تعداد مخصوص ماڈل اور ڈرائیور ورژن کے لحاظ سے مختلف ہو سکتی ہے۔ نیچے دی گئی ethtool -L کمانڈ کا استعمال کرتے ہوئے قطاروں کی تعداد کو ایڈجسٹ کیا جا سکتا ہے۔
نوٹ
ان صورتوں میں، Intel تجویز کرتا ہے کہ آپ ہر پورٹ کے لیے ڈیفالٹ قطار کی گنتی کو NUMA نوڈ لوکل میں اڈاپٹر پورٹ میں دستیاب CPUs کی تعداد سے زیادہ نہ کریں۔ بعض صورتوں میں، جب اعلیٰ بندرگاہوں کی گنتی کے نفاذ پر وسائل کو متوازن کرنے کی کوشش کی جاتی ہے، تو اس تعداد کو مزید کم کرنا ضروری ہو سکتا ہے۔
قطار کی ترتیب میں ترمیم کرنے کے لیے:
مندرجہ ذیل سابقample بندرگاہ کو 32 Tx/Rx قطاروں پر سیٹ کرتا ہے: ethtool -L ethX مشترکہ 32
Exampلی آؤٹ پٹ:
ethtool -l ethX
ethX کے لیے چینل کے پیرامیٹرز: پہلے سے سیٹ زیادہ سے زیادہ:
RX: 96
TX: 96
دیگر: 1
مشترکہ: 96
موجودہ ہارڈ ویئر کی ترتیبات:
RX: 0
TX: 0
دیگر: 1
مشترکہ: 32
4.3 اعتدال میں خلل ڈالنا
اڈاپٹیو انٹرپٹ اعتدال ڈیفالٹ طور پر آن ہوتا ہے، اور اسے کم CPU استعمال اور اعلی کارکردگی کے درمیان متوازن نقطہ نظر فراہم کرنے کے لیے ڈیزائن کیا گیا ہے۔ تاہم، آپ اپنے استعمال کے معاملے میں فٹ ہونے کے لیے مداخلت کی ترتیبات کو دستی طور پر ٹیوننگ کرنے کی کوشش کر سکتے ہیں۔
0-235 مائیکرو سیکنڈز کی حد 4,310 سے 250,000 وقفے فی سیکنڈ کی مؤثر حد فراہم کرتی ہے۔ rx-μsecs-high کی قدر اسی ethtool کمانڈ میں rx-μsecs اور tx-μsecs سے آزاد سیٹ کی جا سکتی ہے، اور یہ اڈاپٹیو انٹرپٹ اعتدال کے الگورتھم سے بھی آزاد ہے۔ بنیادی ہارڈویئر 2 مائیکرو سیکنڈ وقفوں میں گرینولریٹی کو سپورٹ کرتا ہے، اس لیے ملحقہ قدروں کے نتیجے میں ایک ہی رکاوٹ کی شرح ہو سکتی ہے۔

  • اڈاپٹیو انٹرپٹ اعتدال کو آف کرنے کے لیے: ایتھٹول -سی ایتھ ایکس ایڈاپٹیو آر ایکس آف ایڈاپٹیو ٹی ایکس آف
  • اڈاپٹیو انٹرپٹ اعتدال کو آن کرنے کے لیے: ethtool -C ethX adaptive-rx adaptive-tx پر

عام ٹیوننگ شروع کرنے کے لیے ایک اچھی جگہ 84 μs، یا ~12000 interrupts/s ہے۔ اگر آپ دیکھتے ہیں کہ ٹریفک کے دوران rx_dropped کاؤنٹر چل رہے ہیں (ethtool -S ethX کا استعمال کرتے ہوئے) تو شاید آپ کے پاس CPU بہت سست ہے، اڈاپٹر کے رنگ سائز (ethtool -G) سے پیکٹ کو 84 μs تک رکھنے کے لیے کافی بفرز نہیں ہیں یا وقفے کی شرح سے کم ہے۔

  • انٹراپٹ اعتدال کو 84 μs کی ایک مقررہ انٹرپٹ ریٹ پر متعین کرنے کے لیے انٹرپٹس (12000 interrupts/s): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 اگلی قدر کوشش کرنے کے لیے، اگر آپ CPUs پر زیادہ سے زیادہ نہیں ہوتے ہیں، تو μ62 μutilization ہے۔ یہ زیادہ سی پی یو استعمال کرتا ہے، لیکن یہ تیزی سے بفرز فراہم کرتا ہے، اور اس کے لیے کم ڈسکرپٹرز (رنگ سائز، ایتھول -G) کی ضرورت ہوتی ہے۔
  • انٹرپٹ اعتدال کو مقررہ انٹرپٹ ریٹ پر سیٹ کرنے کے لیے انٹراپٹس (62 انٹرپٹس/s) کے درمیان 16000 یوز سیکس۔ ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
    اگر ٹریفک کے دوران rx_dropped کاؤنٹرز بڑھ جاتے ہیں (ایتھول -S ایتھ ایکس کا استعمال کرتے ہوئے)، تو شاید آپ کے پاس سی پی یو بہت سست ہے، اڈاپٹر کے رنگ سائز (ایتھول -G) سے کافی بفرز نہیں ہیں، یا مداخلت کی شرح بہت کم ہے۔ اگر آپ CPU کے استعمال میں زیادہ سے زیادہ نہیں ہیں، تو آپ ITR قدر کو کم کرکے مداخلت کی شرح کو بڑھا سکتے ہیں۔ یہ زیادہ سی پی یو استعمال کرتا ہے، لیکن خدمات تیزی سے بفر ہوتی ہیں، اور اس کے لیے کم ڈسکرپٹرز کی ضرورت ہوتی ہے (رنگ سائز، ایتھول -G)۔
    اگر آپ کا CPU 100% پر ہے، تو مداخلت کی شرح میں اضافہ کرنے کا مشورہ نہیں دیا جاتا ہے۔ بعض حالات میں جیسے کہ CPU پابند کام کا بوجھ، آپ دیگر ایپلیکیشنز کے لیے زیادہ CPU وقت کو فعال کرنے کے لیے μs کی قدر بڑھانا چاہتے ہیں۔
    اگر آپ کو کم تاخیر کی کارکردگی کی ضرورت ہے اور/یا نیٹ ورک پروسیسنگ کے لیے وقف کرنے کے لیے کافی سی پی یو ہے، تو آپ انٹرپٹ اعتدال کو مکمل طور پر غیر فعال کر سکتے ہیں، جو مداخلتوں کو جتنی جلدی ممکن ہو فائر کرنے کے قابل بناتا ہے۔
  • انٹرپٹ اعتدال پسندی ethtool کو غیر فعال کرنے کے لیے -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0

نوٹ
وقفہ اعتدال کے غیر فعال ہونے کے ساتھ چلتے وقت، ہر قطار میں رکاوٹ کی شرح بہت زیادہ ہو سکتی ہے۔ مداخلت کی شرح پر اوپری حد مقرر کرنے کے لیے rx-usec-high پیرامیٹر کو شامل کرنے پر غور کریں۔ مندرجہ ذیل کمانڈ انڈیپٹیو انٹرپٹ اعتدال کو غیر فعال کرتی ہے اور وصول کرنے یا منتقل کرنے کے مکمل ہونے کی نشاندہی کرنے سے پہلے زیادہ سے زیادہ 5 مائیکرو سیکنڈ کی اجازت دیتی ہے۔ 200,000 سے زیادہ مداخلت فی سیکنڈ کے نتیجے میں ہونے کے بجائے، یہ rx-usec-high پیرامیٹر کے ذریعے کل مداخلت فی سیکنڈ کو 50,000 تک محدود کرتا ہے۔ # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 20 rx-usecs 5 txusecs 5 ٹرانسمٹ/وصول/اعلی ترجیحی کولیسنگ ٹائمر کو زیادہ ایڈجسٹ کرنے کی کوشش کریں (80/100/150/200) یا اس کی قیمت تلاش کریں/25/20 سے کم کریں کام کا بوجھ
4.4 رنگ کا سائز
اگر آپ ethtool -S ethX (rx_dropped, rx_dropped.nic) میں rx_dropped کاؤنٹرز دیکھ رہے ہیں، یا ایک سے زیادہ قطاروں کے ساتھ کیش پریشر کا شبہ ہے، تو آپ پہلے سے طے شدہ قدر سے انگوٹھی کے سائز کو ایڈجسٹ کرنے کی کوشش کر سکتے ہیں۔ پہلے سے طے شدہ قدر 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

نوٹ
ایتھول -S ایتھ ایکس
4.5 بہاؤ کنٹرول
پرت 2 فلو کنٹرول TCP کی کارکردگی کو کافی حد تک متاثر کر سکتا ہے اور زیادہ تر کام کے بوجھ کے لیے اسے غیر فعال کرنے کی سفارش کی جاتی ہے۔ ایک ممکنہ استثنا برسٹی ٹریفک ہے جہاں برسٹ طویل عرصے تک نہیں ہوتے ہیں۔
بہاؤ کنٹرول بطور ڈیفالٹ غیر فعال ہے۔

  • بہاؤ کنٹرول کو فعال کرنے کے لیے: ethtool -A ethX rx on tx on
  • بہاؤ کنٹرول کو غیر فعال کرنے کے لیے: ethtool -A ethX rx off tx off

نوٹ
فلو کنٹرول کو کامیابی سے فعال کرنے کے لیے آپ کے پاس فلو کنٹرول کے قابل لنک پارٹنر کا ہونا ضروری ہے۔
4.6 جمبو فریمز
جب متوقع ٹریفک ماحول ڈیٹا کے بڑے بلاکس پر مشتمل ہوتا ہے جو منتقل کیا جا رہا ہے، تو جمبو فریم فیچر کو فعال کرنا فائدہ مند ہو سکتا ہے۔ جمبو فریمز سپورٹ کو زیادہ سے زیادہ ٹرانسمیشن یونٹ (MTU) کو 1500 کی ڈیفالٹ ویلیو سے بڑی قدر میں تبدیل کرکے فعال کیا جاتا ہے۔ یہ ڈیوائس کو نیٹ ورک ماحول میں بڑے پیکٹوں میں ڈیٹا منتقل کرنے کی اجازت دیتا ہے۔ یہ ترتیب تھرو پٹ کو بہتر بنا سکتی ہے اور بڑے I/O کام کے بوجھ کے لیے CPU کے استعمال کو کم کر سکتی ہے۔ تاہم، یہ چھوٹے پیکٹ یا تاخیر سے متعلق حساس کام کے بوجھ کو متاثر کر سکتا ہے۔
نوٹ
جمبو فریم یا اس سے بڑی MTU ترتیب آپ کے پورے نیٹ ورک کے ماحول میں مناسب طریقے سے کنفیگر ہونی چاہیے۔
MTU سائز بڑھانے کے لیے ifconfig کمانڈ استعمال کریں۔ سابق کے لیےample، درج ذیل درج کریں، کہاں انٹرفیس نمبر ہے: ifconfig ایم ٹی یو 9000 اپ
متبادل طور پر، آپ ip کمانڈ کو اس طرح استعمال کر سکتے ہیں: ip link mtu 9000 dev سیٹ کریں آئی پی لنک سیٹ اپ ڈیو

پلیٹ فارم ٹیوننگ (i40e غیر مخصوص)

5.1 BIOS کی ترتیبات

  • ورچوئلائزیشن ورک بوجھ کے لیے Intel® VT-d کو فعال کریں۔
  • ہائپر تھریڈنگ (منطقی پروسیسر) کارکردگی کو متاثر کر سکتی ہے۔ اپنے کام کے بوجھ کے لیے اسے آن یا آف کرنے کا تجربہ کریں۔
  • Intel® Turbo Boost CPU کور کو CPU کی بنیادی فریکوئنسی سے زیادہ فریکوئنسی پر کام کرنے کی اجازت دیتا ہے۔ Intel® Turbo Boost کو فعال کرنا بہت سے کام کے بوجھ کے لیے کارکردگی کو بہتر بنا سکتا ہے لیکن کور کو اعلی تعدد پر رکھنے کے لیے زیادہ طاقت استعمال کرتا ہے۔ اپنے کام کے بوجھ کے لیے ٹربو بوسٹ آف/آن کے ساتھ تجربہ کریں۔

نوٹ
اگر پلیٹ فارم اعلی مجموعی CPU استعمال کا سامنا کر رہا ہے تو ٹربو تعدد کی ضمانت نہیں ہے۔ CPU کے مجموعی استعمال میں اضافے کے ساتھ ہی اعلیٰ کور ٹربو فریکوئنسی کم ہو جاتی ہے۔
5.2 پاور مینجمنٹ
پاور مینجمنٹ کارکردگی کو متاثر کر سکتا ہے، خاص طور پر کم تاخیر والے کام کے بوجھ میں۔ اگر کارکردگی بجلی کی کھپت کو کم کرنے کے مقابلے میں ایک اعلی ترجیح ہے، تو Intel تجویز کرتا ہے کہ آپ پاور مینجمنٹ کے اثرات کو محدود کرنے کے ساتھ تجربہ کریں۔ آپریٹنگ سسٹم ٹولز، BIOS سیٹنگز، اور کرنل بوٹ پیرامیٹرز کے ذریعے پاور مینجمنٹ کو محدود کرنے کے بہت سے مختلف طریقے ہیں۔ اپنے ماحول کے مطابق بہترین طریقہ اور سطح کا انتخاب کریں۔
5.2.1 C-اسٹیٹ کنٹرول
سی-اسٹیٹ داخلے کو CO یا C1 تک محدود کرنے سے کارکردگی بہتر ہوتی ہے اور بجلی کے استعمال میں اضافہ ہوتا ہے۔
CPU پیکیج C6 اسٹیٹ انٹری کو غیر فعال کرنا نیٹ ورک کی کارکردگی کو بہتر بنا سکتا ہے۔ تاہم، اس سے بجلی کے استعمال میں اضافہ ہوتا ہے۔
درج ذیل اختیارات دستیاب ہیں:

  • متحرک طور پر C-اسٹیٹ انٹری کو کنٹرول کریں:
    کھولیں۔
    /dev/cpu_dma_latency اور اس پر زیادہ سے زیادہ قابل اجازت تاخیر لکھیں۔

نوٹ
cpudmalatency.c نامی ایک چھوٹا پروگرام ہے جسے اوپن سورس کمیونٹی سے ڈاؤن لوڈ کیا جا سکتا ہے، کمپائل کیا جا سکتا ہے اور بالکل ایسا کرنے کے لیے کمانڈ لائن سے چلایا جا سکتا ہے۔
مندرجہ ذیل سابقample جاگنے کے وقت کے پانچ μs کی اجازت دیتا ہے، اور اس طرح C1 کے اندراج کی اجازت دیتا ہے: cpudmalatency 5 &

  • کرنل بوٹ سیٹنگز میں زیادہ سے زیادہ سی سٹیٹ کو محدود کریں:
    Intel CPUs کے لیے: intel_idle.max_cstates=1
    غیر انٹیل CPUs کے لیے: processor.max_cstates=1
  • CPU C6 حالت کو چیک اور غیر فعال کرنے کے لیے cpupower کمانڈ استعمال کریں: چیک کریں: cpupower مانیٹر یا cpupower idle-info
    C6 کو غیر فعال کریں: cpupower idle-set -d3 یا
    C-States کو غیر فعال کریں: cpupower idle-set -D0

نوٹس:

  1. اگر سرور کے پاس Intel® 4th Gen Intel® Xeon® اسکیل ایبل پروسیسر ہے تو CPU پر C-States کو غیر فعال کریں۔ جب ہائپر تھریڈنگ کو فعال یا غیر فعال کیا جاتا ہے تو، غیر فعال حالتوں (-D0) کو غیر فعال کرنے سے کور کو بیکار ادوار کے دوران کم طاقت والی ریاستوں میں داخل ہونے سے روکتا ہے اور CPU کے لیے غیر فعال اور فعال حالتوں کے درمیان منتقلی میں تاخیر کو کم کرتا ہے۔
  2. Intel® 4th Gen Intel® Xeon® اسکیل ایبل پروسیسر کا پاور مینجمنٹ انتہائی جارحانہ ہے۔ کورز کو کم طاقت والی حالتوں میں داخل ہونے سے بچنے کے لیے، ان کو زیادہ دیر تک بیدار رکھنے کے لیے استعمال میں موجود کوروں کی تعداد کو کم کرنے کی کوشش کریں (ایتھول -L مشترکہ )۔ نیز، سیٹ irq affinity (اکثر -x لوکل یا CPU cores کی فہرست کے ساتھ) کا استعمال کرتے ہوئے مخصوص کوروں سے رکاوٹیں باندھیں، اور یقینی بنائیں کہ کام کا بوجھ ٹاسک سیٹ یا numactl کے ساتھ انہی کوروں پر چلتا ہے۔ یہ کور کو فعال رکھنے اور مداخلت سے نمٹنے کو بہتر بنا کر کارکردگی کو بہتر بناتا ہے۔

C6 کو فعال کریں:
cpupower idle-set -d3
C-States کو فعال کریں:
cpupower idle-set -E

  • ایک اور طریقہ یہ ہے کہ پرفارمنس پرو سیٹ کرنے کے لیے ٹیونڈ ٹول (بہت سے لینکس ڈسٹری بیوشنز کے ساتھ) کا استعمال کیا جائے۔file. یہ پروfiles کئی OS سیٹنگز میں ترمیم کریں جو کئی ایپلیکیشنز میں کارکردگی کو متاثر کر سکتی ہیں۔ یہ پتہ چلا ہے کہ نیٹ ورک تھرو پٹ پروfile زیادہ تر کام کے بوجھ میں بہتری فراہم کرتا ہے۔
    چیک کریں:
    tuned-adm فعال
    سیٹ کریں:
    tuned-adm profile نیٹ ورک تھرو پٹ
    نوٹ
    مندرجہ بالا کمانڈز کے لیے ٹیونڈ سروس چلانی چاہیے۔ چیک/دوبارہ شروع کرنے کے لیے، ٹیونڈ: systemctl status tuned systemctl ری اسٹارٹ ٹیونڈ
    آپ کرنل بوٹ لائن میں درج ذیل کو شامل کر کے کسی بھی C-اسٹیٹ اندراج کی اجازت بھی دے سکتے ہیں۔
    بیکار = پول
  • سسٹم کی BIOS پاور مینجمنٹ سیٹنگز کے ذریعے سی سٹیٹ کو محدود کریں، جس میں پرفارمنس پرو ہو سکتا ہے۔file دستیاب
    turbostat یا x86_energy_perf_policy جیسے ٹولز کو پاور مینجمنٹ سیٹنگز کو چیک کرنے یا سیٹ کرنے کے لیے استعمال کیا جا سکتا ہے۔

5.2.2 PCIe پاور مینجمنٹ
ایکٹیو اسٹیٹ پاور مینجمنٹ (اے ایس پی ایم) PCIe لنکس کے لیے کم پاور اسٹیٹ کو قابل بناتا ہے جب وہ فعال استعمال میں نہ ہوں۔ یہ PCIe نیٹ ورک ڈیوائسز پر زیادہ تاخیر کا سبب بن سکتا ہے، لہذا انٹیل تجویز کرتا ہے کہ آپ تاخیر سے متعلق حساس کام کے بوجھ کے لیے ASPM کو غیر فعال کریں۔ کرنل بوٹ لائن میں درج ذیل کو شامل کرکے ASPM کو غیر فعال کریں: pcie_aspm=off
5.2.3 CPU فریکوئنسی اسکیلنگ
سی پی یو فریکوئنسی اسکیلنگ (یا سی پی یو اسپیڈ اسکیلنگ) ایک لینکس پاور مینجمنٹ تکنیک ہے جس میں بجلی اور حرارت کو بچانے کے لیے سسٹم کلاک اسپیڈ کو فلائی پر ایڈجسٹ کیا جاتا ہے۔ بالکل سی ریاستوں کی طرح، یہ نیٹ ورک کنکشن پر ناپسندیدہ تاخیر کا سبب بن سکتا ہے۔
سی پی یو پاور ٹول کو سی پی یو کی کارکردگی کے ڈیفالٹس اور حدود کو چیک کرنے اور اس میں ترمیم کرنے کے لیے بھی استعمال کیا جا سکتا ہے:

  • چیک کریں: cpupower مانیٹر یا
  • CPUs کو پرفارمنس موڈ پر سیٹ کریں: cpupower فریکوئنسی سیٹ -g کارکردگی

نوٹ
CPU فریکوئنسی کی حدوں میں ترمیم کا اثر بہت سے کام کے بوجھ پر پڑ سکتا ہے اور یہ دوسری خصوصیات کو غیر فعال کر سکتا ہے، جیسے CPU ٹربو موڈ۔
CPU فریکوئنسی اسکیلنگ کو غیر فعال کرنے کے لیے، درج ذیل کمانڈز کے ذریعے CPU پاور سروس کو غیر فعال کریں:
systemctl stop cpupower.service
systemctl cpupower.service کو غیر فعال کریں۔
5.2.4 اضافی پاور مینجمنٹ گائیڈنس
اس اعلیٰ سطحی اوور میں اضافی تفصیلات فراہم کی گئی ہیں۔view 3rd جنریشن Intel® Xeon® اسکیل ایبل پروسیسرز میں پاور مینجمنٹ کی بہت سی خصوصیات کے ساتھ ساتھ ان خصوصیات کو پلیٹ فارم کی سطح پر کیسے مربوط کیا جا سکتا ہے اس بارے میں رہنمائی: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® ٹربو بوسٹ
Intel® Turbo Boost ضرورت پڑنے پر پروسیسر کو تیز تر بناتا ہے لیکن اضافی بجلی استعمال کر سکتا ہے۔ ٹربو بوسٹ کو آف کرنا پروسیسر کو مستحکم رفتار پر رکھتا ہے، جس سے آپ کو مخصوص کام کے بوجھ کے لیے کارکردگی کی مستقل سطح ملتی ہے۔
5.4 فائر والز
فائر والز کارکردگی کو متاثر کر سکتے ہیں، خاص طور پر تاخیر کی کارکردگی۔
اگر ضرورت نہ ہو تو iptables/firewalld کو غیر فعال کریں۔
5.5 درخواست کی ترتیبات
زیادہ سے زیادہ بینڈوتھ حاصل کرنے کے لیے اکثر ایک ہی تھریڈ (جو کہ ایک نیٹ ورک کی قطار سے مطابقت رکھتا ہے) کافی نہیں ہوتا ہے۔ کچھ پلیٹ فارم آرکیٹیکچرز، جیسے AMD، Intel-based پروسیسرز والے پلیٹ فارمز کے مقابلے میں ایک ہی تھریڈ کے ساتھ زیادہ Rx پیکٹ چھوڑتے ہیں۔
ایپلیکیشنز کو NUMA نوڈ یا CPU cores میں مقامی نیٹ ورک ڈیوائس پر پن کرنے کے لیے ٹاسک سیٹ یا numactl جیسے ٹولز استعمال کرنے پر غور کریں۔ کچھ کام کے بوجھ جیسے اسٹوریج I/O کے لیے، ایپلیکیشن کو غیر مقامی نوڈ میں منتقل کرنا فائدہ فراہم کرتا ہے۔
اگر ممکن ہو تو اپنی ایپلیکیشن کے ذریعے استعمال ہونے والے دھاگوں کی تعداد بڑھانے کا تجربہ کریں۔
5.6 کرنل ورژن
زیادہ تر جدید ان باکس کرنل کارکردگی کے لیے معقول حد تک بہتر بنائے گئے ہیں لیکن، آپ کے استعمال کے معاملے پر منحصر ہے، کرنل کو اپ ڈیٹ کرنے سے کارکردگی بہتر ہو سکتی ہے۔ ماخذ کو ڈاؤن لوڈ کرنا آپ کو دانا بنانے سے پہلے کچھ خصوصیات کو فعال/غیر فعال کرنے کے قابل بناتا ہے۔
5.7 آپریٹنگ سسٹم/کرنل سیٹنگز
عام آپریٹنگ سسٹم ٹیوننگ کے بارے میں مزید بصیرت کے لیے آپریٹنگ سسٹم ٹیوننگ گائیڈز، جیسے Red Hat Enterprise Linux نیٹ ورک پرفارمنس ٹیوننگ گائیڈ سے مشورہ کریں۔
ٹیون کرنے کے لیے کچھ عام پیرامیٹرز درج ذیل جدول میں درج ہیں۔ نوٹ کریں کہ یہ صرف ابتدائی نکات تجویز کیے گئے ہیں، اور ان کو ڈیفالٹس سے تبدیل کرنے سے سسٹم پر استعمال ہونے والے وسائل میں اضافہ ہو سکتا ہے۔ اگرچہ اقدار کو بڑھانے سے کارکردگی کو بہتر بنانے میں مدد مل سکتی ہے، لیکن یہ طے کرنے کے لیے مختلف اقدار کے ساتھ تجربہ کرنا ضروری ہے کہ کسی نظام، کام کے بوجھ اور ٹریفک کی قسم کے لیے کیا بہتر کام کرتا ہے۔
کرنل پیرامیٹرز لینکس میں sysctl یوٹیلیٹی کا استعمال کرتے ہوئے قابل ترتیب ہیں جیسا کہ ذیل میں اشارہ کیا گیا ہے۔
کو view سسٹم پر rmem اور wmem کے لیے پہلے سے طے شدہ اقدار:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
قدروں کو زیادہ سے زیادہ پر سیٹ کریں (16 MB):
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 ٹیونڈ کمانڈ کا استعمال کرتے ہوئے یہ نیٹ ورکنگ ایپلی کیشنز کو ترجیح دینے کے لیے OS کی کچھ سیٹنگز میں ترمیم کرتا ہے۔
چیک کریں:
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 4th جنریشن Intel® Xeon® اسکیل ایبل پروسیسرز

Intel® 4th جنریشن Intel® Xeon® اسکیل ایبل پروسیسر کا پاور مینجمنٹ تیسری جنریشن Intel® Xeon® اسکیل ایبل پروسیسرز کے مقابلے میں انتہائی جارحانہ ہے۔ کورز کو کم طاقت والی حالتوں میں داخل ہونے سے بچنے کے لیے، استعمال میں cores کی تعداد کو کم کرنے کی کوشش کریں تاکہ انہیں زیادہ دیر تک بیدار رکھا جا سکے۔
اعلیٰ ترین کارکردگی کے لیے تجویز کردہ Bios ترتیبات

  1. سی پی یو پر ہائپر تھریڈنگ کو فعال/غیر فعال (کام کے بوجھ کی ضرورت اور کارکردگی کے اہداف کی بنیاد پر)۔
  2. سسٹم پرو سیٹ کریں۔file زیادہ سے زیادہ کارکردگی کے لئے کارکردگی.
    نوٹ
    اس کے نتیجے میں بجلی کی زیادہ کھپت ہوتی ہے۔
  3. CPU پاور مینجمنٹ کو زیادہ سے زیادہ کارکردگی پر سیٹ کریں تاکہ زیادہ سے زیادہ CPU کی کارکردگی کو پاور کی کارکردگی پر ترجیح دی جائے۔
  4. ٹربو بوسٹ کو فعال کریں۔ سسٹم BIOS سیٹنگز میں ٹربو بوسٹ کو غیر فعال کرنا عام طور پر CPU کو متحرک طور پر اپنی گھڑی کی رفتار کو اس کی بیس فریکوئنسی سے زیادہ بڑھانے سے روکتا ہے۔
  5. نوٹ
    ٹربو بوسٹ کو غیر فعال کرنا کچھ استعمال کے معاملات کے لیے موزوں ہو سکتا ہے جہاں زیادہ سے زیادہ کارکردگی پر مستقل کارکردگی، بجلی کی کارکردگی، یا تھرمل مینجمنٹ کو ترجیح دی جاتی ہے۔
  6. سنگل روٹ I/O ورچوئلائزیشن (SR-IOV) فیچر کو بند کر دیں، اگر سسٹم ورچوئلائزیشن ٹیکنالوجیز کا استعمال نہیں کر رہا ہے۔
  7. CPU کو فعال رہنے اور گہری بیکار حالتوں میں داخل ہونے سے روکنے کے لیے C-States کو غیر فعال کریں۔
  8. C1E کو غیر فعال کریں، اس بات کو یقینی بنانے کے لیے کہ CPU فعال رہے اور C1E غیر فعال حالت میں داخل نہ ہو۔
  9. سسٹم کو سب سے زیادہ دستیاب فریکوئنسی پر کام کرنے کی ہدایت دینے کے لیے غیر کور فریکوئنسی کو زیادہ سے زیادہ پر سیٹ کریں۔
  10. ڈیل پلیٹ فارمز پر، سی پی یو کور کی واضح اور قابل پیشن گوئی میپنگ فراہم کرنے کے لیے ایک سے زیادہ APIC تفصیل ٹیبل (MADT) کور ایمولیشن کو لکیری (یا BIOS پر منحصر راؤنڈ رابن) پر سیٹ کریں۔

آپٹمائزڈ پرفارمنس کے لیے تجویز کردہ OS لیول ٹیوننگز

  1. CPU فریکوئنسی اسکیلنگ گورنر کو کارکردگی پر سیٹ کریں۔ cpupower فریکوئنسی سیٹ -g کارکردگی cpupower فریکوئنسی-info
  2. C-States کو غیر فعال کریں۔ cpupower idle-set -D0
  3. کور Rx (rmem) اور Tx (wmem) بفرز کو زیادہ سے زیادہ قدر پر سیٹ کریں۔ sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
  4. نیٹ ورک ڈیوائس کا بیک لاگ سیٹ کریں۔ sysctl -w net.core.netdev_max_backlog=8192
  5. ٹیونڈ پرو سیٹ کریں۔file (تھرو پٹ / تاخیر کے لیے کام کا بوجھ منحصر)۔
    tuned-adm profile نیٹ ورک تھرو پٹ

بہتر کارکردگی کے لیے تجویز کردہ اڈاپٹر لیول ٹیوننگ

  1. ایپلیکیشن ٹریفک کے لیے استعمال کرنے کے لیے قطاروں کی تعداد کو محدود کریں۔ متعلقہ CPU کور کو فعال رکھنے کے لیے درکار قطاروں کی کم از کم تعداد کا استعمال کریں تاکہ انہیں گہری بیکار حالتوں میں داخل ہونے سے روکا جا سکے (کام کے بوجھ کے لیے ایڈجسٹ کریں): ethtool -L مشترکہ 32
  2. مداخلت کے اعتدال کی شرحیں طے کریں۔ ایتھول - سی adaptive-rx آف adaptive-tx بند rx-usecs-high 50 rx-usecs 50 tx-usecs 50
    کام کے بوجھ کے لیے بہترین قیمت تلاش کرنے کے لیے ٹرانسمٹ/ریسیو/اعلی ترجیحی کولیسنگ ٹائمر کو زیادہ (80/100/150/200) یا اس سے کم (25/20/10/5) کو ایڈجسٹ کرنے کی کوشش کریں۔
  3. Rx/Tx رنگ کے سائز سیٹ کریں۔ ایتھول - جی آر ایکس 4096 ٹی ایکس 4096
    نوٹ
    اگر آپ دیکھتے ہیں کہ Rx پیکٹ ethtool -S| کے ساتھ گرتا ہے۔ grep ڈراپ، انگوٹی کے سائز کو <4096 تک کم کرنے کی کوشش کریں۔ کام کے بوجھ کے لیے بہترین قیمت تلاش کرنے کی کوشش کریں جہاں پیکٹ نہیں گرائے گئے ہیں۔
  4. IRQ affinity سیٹ کریں۔ این آئی سی کے لیے مقامی کور استعمال کریں، یا مخصوص کور میپنگ (جہاں # کور صفحہ 1 پر 26 میں سیٹ کی گئی قطاروں کی تعداد کے برابر ہے۔ systemctl stop irqbalance set_irq_affinity -X local یا سیٹ_irq_affinity -X

5.9.2 AMD EPYC
AMD EPYC پروسیسرز سرورز اور ڈیٹا سینٹرز کے لیے بنائے گئے طاقتور CPUs ہیں، جو AMD کے Zen فن تعمیر پر بنائے گئے ہیں۔ ذیل کی ترتیبات AMD کی 4th جنریشن EPYC سیریز سے ہیں۔
اعلیٰ ترین کارکردگی کے لیے تجویز کردہ BIOS ترتیبات

  1. صارفین کو CPU کی کارکردگی، بجلی کی کھپت اور دیگر ترتیبات کو ایڈجسٹ کرنے کی اجازت دینے کے لیے حسب ضرورت وضع کو فعال کریں۔ یہ کارکردگی اور توانائی کی کارکردگی کے درمیان بہترین توازن کے لیے نظام کو ٹھیک کرنے میں مدد کرتا ہے۔
  2. مجموعی کارکردگی کو بہتر بناتے ہوئے، زیادہ گہرے کاموں کو سنبھالنے کے لیے CPU کو خود بخود اس کی رفتار بڑھانے کی اجازت دینے کے لیے بنیادی کارکردگی کے فروغ کو فعال کریں۔
  3. عالمی C-اسٹیٹ کنٹرول کو غیر فعال کریں، تاکہ CPU کو بجلی کی بچت والی گہری ریاستوں میں داخل ہونے سے روکا جا سکے جسے C-states کہا جاتا ہے، جو ردعمل کو برقرار رکھ سکتی ہے۔
    نوٹ
    سی سٹیٹس کو غیر فعال کرنے سے بجلی کی اضافی کھپت اور تھرمل درجہ حرارت میں اضافہ ہو سکتا ہے۔ کام کے بوجھ کے لیے دونوں کی نگرانی کریں۔
  4. کام کے بوجھ کی ضرورت اور کارکردگی کے اہداف کی بنیاد پر CPU پر بیک وقت ملٹی تھریڈنگ (SMT) کو فعال/غیر فعال کریں۔ ایس ایم ٹی انٹیل سی پی یوز پر ہائپر تھریڈنگ کے برابر ہے۔
    نوٹ
    بہتر کارکردگی کے لیے، تجویز کردہ OS اور اڈاپٹر لیول ٹیوننگ کے لیے صفحہ 40 پر ٹیوننگ i13e ڈرائیور سیٹنگز اور صفحہ 40 پر پلیٹ فارم ٹیوننگ (i19e غیر مخصوص) دیکھیں۔

اڈاپٹر بانڈنگ

لینکس بانڈنگ ایک طاقتور خصوصیت ہے جو سرور کے ماحول میں نیٹ ورک کی کارکردگی، بے کار پن، اور غلطی کو برداشت کرنے میں نمایاں طور پر بہتری لا سکتی ہے۔ تاہم، یہ نوٹ کرنا ضروری ہے کہ اسے مناسب طریقے سے کام کرنے کے لیے سرور اور سوئچ دونوں پر ہم آہنگ نیٹ ورک ہارڈویئر اور مناسب ترتیب کی ضرورت ہے۔
لینکس میں بانڈنگ ڈرائیور آپ کو متعدد فزیکل نیٹ ورک انٹرفیس کو بانڈڈ انٹرفیس میں جمع کرنے کی اجازت دیتا ہے۔ یہ بانڈڈ انٹرفیس آپریٹنگ سسٹم اور ایپلی کیشنز کے لیے ایک واحد ورچوئل نیٹ ورک انٹرفیس کے طور پر ظاہر ہوتا ہے۔
نوٹ
بانڈ ایک منطقی انٹرفیس ہے، اس لیے بانڈ انٹرفیس پر سی پی یو وابستگی کو براہ راست سیٹ کرنا ممکن نہیں ہے (سابق کے لیےample، bond0)۔ یعنی اس کا انٹرپٹ ہینڈلنگ یا CPU وابستگی پر کوئی براہ راست کنٹرول نہیں ہے۔ سی پی یو وابستگی کو ان بنیادی انٹرفیس کے لیے کنفیگر کیا جانا چاہیے جو بانڈ کا حصہ ہیں۔
بانڈنگ آپریشن کے کئی طریقے فراہم کرتی ہے، ہر ایک کی اپنی خصوصیات ہیں۔

موڈ  قسم
0 راؤنڈ رابن
1 ایکٹو بیک اپ
2 XOR
3 براڈ کاسٹ
4 ایل اے سی پی
5 لوڈ بیلنس منتقل کریں۔
6 انکولی لوڈ بیلنس

لینکس میں بانڈنگ بنانے کے مختلف طریقے ہیں۔ سب سے عام طریقوں میں سے ایک نیٹ ورک کنفیگریشن کا استعمال کرنا ہے۔ files (سابقہ ​​کے لیےample، /etc/network/ انٹرفیس یا /etc/sysconfig/network-scripts/ifcfg-bondX)۔
نیٹ ورک کنفیگریشن کا استعمال کرتے ہوئے کنفیگریشن Files
مندرجہ ذیل اقدامات نیٹ ورک کنفیگریشن کے ذریعے بانڈنگ بناتے ہیں۔ files.

  1. بانڈنگ کے لیے دو یا دو سے زیادہ NIC پورٹس کا انتخاب کریں (سابق کے لیےample، ethX اور ethY)
  2. NIC کنفیگریشن کھولیں۔ Fileمطلوبہ NIC انٹرفیس کے لیے /etc/sysconfig/network-scripts/ کے تحت (سابق کے لیےample, vi ifcfg-ethX اور vi ifcfg-ethY) اور درج ذیل متن کو شامل کریں:
    MASTER=bondN [نوٹ: N بانڈ نمبر کا ذکر کرنے کے لیے ایک عدد عدد ہے۔] SLAVE=yes
  3. ایک بانڈ نیٹ ورک اسکرپٹ بنائیں file vi /etc/sysconfig/networkscripts/ifcfg-bondN کا استعمال کرتے ہوئے اور درج ذیل متن درج کریں:
    DEVICE=bondN [نوٹ: N بانڈ نمبر کا ذکر کرنے کے لیے ایک عدد عدد ہے] ONBOOT=yes USERCTL=no BOOTPROTO=dhcp (یا) کوئی نہیں
    IPADDR=200.20.2.4 [ضروری ہے اگر BOOTPROTO=none] NETMASK=255.255.255.0 [ضروری ہے اگر BOOTPROTO=کوئی نہیں] نیٹ ورک =200.20.2.0 BOOTPROTO=none] BONDING_OPTS=”mode=200.20.2.255 miimon=1″
    نوٹ
    موڈ ضرورت کی بنیاد پر 0 سے 6 تک کوئی بھی عدد ہو سکتا ہے۔
  4. سروس نیٹ ورک ری اسٹارٹ یا systemctl ری اسٹارٹ NetworkManager.service کا استعمال کرتے ہوئے نیٹ ورک سروسز کو دوبارہ شروع کریں۔

کارکردگی کی خرابیوں کا سراغ لگانا

7.1 CPU کا استعمال
کام کا بوجھ چلنے کے دوران فی کور CPU کے استعمال کو چیک کریں۔
نوٹ کریں کہ فی کور کا استعمال مجموعی CPU استعمال کے مقابلے کارکردگی سے زیادہ متعلقہ ہے کیونکہ یہ فی نیٹ ورک قطار میں CPU کے استعمال کا اندازہ فراہم کرتا ہے۔ اگر آپ کے پاس نیٹ ورک ٹریفک چلانے والے صرف چند تھریڈز ہیں، تو آپ کے پاس صرف چند کور استعمال ہو سکتے ہیں۔ تاہم، اگر وہ کور 100% پر ہیں، تو آپ کا نیٹ ورک تھرو پٹ ممکنہ طور پر CPU کے استعمال سے محدود ہے اور یہ درج ذیل کام کرنے کا وقت ہے:

  1. IRQ ماڈریشن/رنگ سائز کو ٹیون کریں جیسا کہ انٹرپٹ موڈریشن میں تفصیل سے بتایا گیا ہے۔
  2. سی پی یو لوڈ کو مزید کوروں پر پھیلانے کے لیے ایپلیکیشن تھریڈز کی تعداد میں اضافہ کریں۔ اگر تمام کور 100% پر چل رہے ہیں تو آپ کی ایپلیکیشن نیٹ ورک باؤنڈ کے بجائے CPU باؤنڈ ہو سکتی ہے۔

عام طور پر دستیاب ٹولز:

  • سب سے اوپر
    - CPUs کی فہرست کو بڑھانے کے لیے 1 دبائیں اور چیک کریں کہ کون سا استعمال ہو رہا ہے۔
    - استعمال کی سطح پر غور کریں۔
    - نوٹس کریں کہ کون سے عمل سب سے زیادہ فعال کے طور پر درج ہیں (فہرست میں سب سے اوپر)۔
  • mpstat
    مندرجہ ذیل سابقample کمانڈ لائن کا تجربہ Red Hat Enterprise Linux 7.x پر کیا گیا تھا۔
    یہ فی کور CPU استعمال دکھاتا ہے (کل فیصد بیکار تلاش کرکے اور 100 سے گھٹا کر) اور 80% سے اوپر کی اقدار کو سرخ رنگ میں نمایاں کرتا ہے۔ mpstat -P ALL 1 1 | grep -v اوسط | tail -n +5 | head -n -1 | awk '{ پرنٹ (100-$13)}' | egrep -color=Always '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]؟.*| 100|' | کالم
  • پرف ٹاپ دیکھیں کہ سائیکل کہاں خرچ ہو رہے ہیں۔

7.2 i40e کاؤنٹرز
i40e ڈرائیور ethtool -S ethX کمانڈ کے ذریعے انٹرفیس ڈیبگ اور مانیٹرنگ کے لیے کاؤنٹرز کی ایک لمبی فہرست فراہم کرتا ہے۔ کام کا بوجھ چلنے کے دوران آؤٹ پٹ کو دیکھنا اور/یا کام کا بوجھ چلانے سے پہلے اور بعد میں کاؤنٹر ویلیوز کا موازنہ کرنا مددگار ثابت ہو سکتا ہے۔

  • i40e کاؤنٹرز کا مکمل ڈمپ حاصل کرنے کے لیے: ethtool -S ethX
  • صرف غیر صفر کاؤنٹرز دیکھنے کے لیے: watch -d (ethtool -S ethX) | egrep -v :\ 0 | کالم
    تلاش کرنے کے لئے کچھ چیزیں:
  • rx_dropped کا مطلب ہے کہ CPU کافی تیزی سے بفرز کی خدمت نہیں کر رہا ہے۔
  • port.rx_dropped کا مطلب ہے کہ سلاٹ/میموری/ سسٹم میں کوئی چیز اتنی تیز نہیں ہے۔

7.3 نیٹ ورک کاؤنٹرز
کام کا بوجھ چلانے سے پہلے / بعد میں netstat -s چیک کریں۔
Netstat سسٹم میں موجود تمام نیٹ ورک ڈیوائسز سے نیٹ ورک کی معلومات اکٹھا کرتا ہے۔ لہذا، ٹیسٹ کے تحت نیٹ ورک کے علاوہ دیگر نیٹ ورکس سے نتائج متاثر ہو سکتے ہیں۔ netstat -s سے آؤٹ پٹ لینکس آپریٹنگ سسٹم یا کرنل میں کارکردگی کے مسائل کا ایک اچھا اشارہ ہو سکتا ہے۔ عام آپریٹنگ سسٹم ٹیوننگ کے بارے میں مزید بصیرت کے لیے آپریٹنگ سسٹم ٹیوننگ گائیڈز، جیسے Red Hat Enterprise Linux نیٹ ورک پرفارمنس ٹیوننگ گائیڈ سے مشورہ کریں۔
7.4 سسٹم لاگز
غلطیوں اور انتباہات (/var/log/messages، dmesg) کے لیے سسٹم لاگز کو چیک کریں۔
7.5 Intel svr-info ٹول
انٹیل ایک svr-info ٹول فراہم کرتا ہے (دیکھیں۔ https://github.com/intel/svr-info) لینکس کے لیے جو سرور سے متعلقہ ہارڈ ویئر اور سافٹ ویئر کی تفصیلات حاصل کرتا ہے۔ svr-info آؤٹ پٹ سسٹم کی رکاوٹوں یا سیٹنگز/ٹیوننگز کی نشاندہی کرنے میں انتہائی مددگار ثابت ہو سکتا ہے جو کام کے بوجھ کے لیے موزوں نہیں ہیں۔ ایتھرنیٹ سے متعلق کارکردگی کے مسائل کے لیے Intel کے ساتھ سپورٹ کیس کھولتے وقت، svr-info output (متن file) ٹیسٹ کنفیگریشن میں ہر لینکس سرور کے لیے۔

  1. svr-info ڈاؤن لوڈ اور انسٹال کریں:
    wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
    ./svr-info
    > hostname.txt
  2. آؤٹ پٹ جمع کریں:
    ./svr-info > hostname.txt
  3. ایک متن منسلک کریں (.txt) file تجزیہ کے لیے آپ کے انٹیل سپورٹ کیس میں ہر سرور کے لیے۔

مشترکہ کارکردگی کے منظرناموں کے لیے سفارشات

8.1 IP فارورڈنگ

  • دانا کو اپ ڈیٹ کریں۔
    سیکیورٹی کی وجہ سے روٹنگ کیشے کو ہٹانے کے ساتھ شروع ہونے والے روٹنگ کوڈ میں کرنل کی تبدیلیوں کی وجہ سے کچھ حالیہ ان ڈسٹرو کرنل نے روٹنگ کی کارکردگی کو کم کیا ہے۔ حالیہ آؤٹ آف ڈسٹرو کرنل میں ایسے پیچ ہونے چاہئیں جو ان تبدیلیوں کے کارکردگی کے اثرات کو کم کرتے ہیں اور بہتر کارکردگی فراہم کر سکتے ہیں۔
  • ہائپر تھریڈنگ (منطقی کور) کو غیر فعال کریں۔
  • کرنل بوٹ پیرامیٹرز میں ترمیم کریں۔
    - جب تک ورچوئلائزیشن کی ضرورت نہ ہو کرنل بوٹ لائن سے iommu آف (intel_iommu=off یا iommu=off) کو مجبور کریں
    - پاور مینجمنٹ کو بند کریں: processor.max_cstates=1 idle=poll pcie_aspm=off
  • قطاروں کی تعداد کو مقامی ساکٹ پر کور کی تعداد کے برابر کرنے کے لیے محدود کریں (اس سابق میں 12ample)۔ ethtool -L ethX مشترکہ 12
  • صرف مقامی ساکٹ میں پن مداخلت کرتا ہے۔ set_irq_affinity -X local ethX یا set_irq_affinity -X مقامی ایتھ ایکس
    نوٹ
    -X یا -x کام کے بوجھ کے لحاظ سے استعمال کیا جا سکتا ہے۔
  • ضرورت کے مطابق Tx اور Rx رنگ کے سائز کو تبدیل کریں۔ ایک بڑی قدر زیادہ وسائل لیتی ہے لیکن آگے بڑھانے کی بہتر شرح فراہم کر سکتی ہے۔ ایتھول - جی ایتھ ایکس آر ایکس 4096 ٹی ایکس 4096
  • روٹنگ کرتے وقت GRO کو غیر فعال کریں۔
    کرنل کے ایک معلوم مسئلے کی وجہ سے، روٹنگ/فارورڈ کرتے وقت GRO کو بند کرنا ضروری ہے۔ ethtool -K ethX gro off جہاں ethX ایتھرنیٹ انٹرفیس ہے جس میں ترمیم کرنا ہے۔
  • انکولی مداخلت کے اعتدال کو غیر فعال کریں اور ایک مستحکم قدر سیٹ کریں۔ ethtool -C ethX adaptive-rx off adaptive-tx آف ethtool -C ethX rx-usecs 64 tx-usecs 64

نوٹ
پروسیسر کی قسم اور کام کے بوجھ پر منحصر ہے، RX اور TX کے لیے کولیسنگ پیرامیٹرز کو بہتر کارکردگی (یا کم فریم نقصان) کے لیے ایڈجسٹ کیا جا سکتا ہے۔

  • فائر وال کو غیر فعال کریں۔ sudo systemctl firewalld کو غیر فعال کریں sudo systemctl stop firewalld
  • آئی پی فارورڈنگ کو فعال کریں۔ sysctl -w net.ipv4.ip_forward=1
  • وصول کرنے اور ساکٹ بفر سائز بھیجنے کے لیے زیادہ سے زیادہ اقدار کو ترتیب دیں۔ sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216

نوٹ
کام کے بوجھ یا ضرورت پر منحصر ہے، ان اقدار کو ڈیفالٹ سے تبدیل کیا جا سکتا ہے۔
8.2 کم تاخیر

  • ہائپر تھریڈنگ (لوجیکل کور) کو آف کریں۔
  • یقینی بنائیں کہ نیٹ ورک ڈیوائس نمبرا کور 0 پر مقامی ہے۔
  • ٹاسک سیٹ -c 0 کا استعمال کرتے ہوئے بینچ مارک کو کور 0 پر پن کریں۔
  • Systemctl stop irqbalance کا استعمال کرتے ہوئے irqbalance کو بند کریں یا systemctl irqbalance کو غیر فعال کریں
  • کورز میں پھیلانے کے لیے وابستگی اسکرپٹ کو چلائیں۔ مقامی یا سبھی کو آزمائیں۔
  • مداخلتی اعتدال کو بند کریں۔ ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx آف rxusecs- ہائی 0
  • قطاروں کی تعداد کو مقامی ساکٹ پر کور کی تعداد کے برابر ہونا چاہیے (اس سابق میں 32ample)۔ ethtool -L ethX مشترکہ 32
  • صرف مقامی ساکٹ میں پن مداخلت کرتا ہے (اسکرپٹ i40e ڈرائیور سورس کے ساتھ پیک کیا گیا ہے)۔ set_irq_affinity -X مقامی ایتھ ایکس
  • ایک قائم کردہ بینچ مارک جیسے netperf -t TCP_RR، netperf -t UDP_RR، یا NetPipe استعمال کریں۔ netperf -t TCP_RR یا netperf -t UDP_RR
  • مقامی NUMA نوڈ میں ایک سنگل کور پر بینچ مارک پن کریں۔ ٹاسک سیٹ -c

Intel ® ایتھرنیٹ 700 سیریز
لینکس پرفارمنس ٹیوننگ گائیڈ
دسمبر 2024
ڈاکٹر نمبر: 334019، Rev.: 1.2

دستاویزات / وسائل

انٹیل ایتھرنیٹ 700 سیریز لینکس پرفارمنس ٹیوننگ [پی ڈی ایف] یوزر گائیڈ
334019، ایتھرنیٹ 700 سیریز لینکس پرفارمنس ٹیوننگ، ایتھرنیٹ 700 سیریز، لینکس پرفارمنس ٹیوننگ، پرفارمنس ٹیوننگ، ٹیوننگ

حوالہ جات

ایک تبصرہ چھوڑیں۔

آپ کا ای میل پتہ شائع نہیں کیا جائے گا۔ مطلوبہ فیلڈز نشان زد ہیں۔ *