Intel logotipasIntel® Ethernet 700 serija
Linux našumo derinimo vadovas
NEX Cloud Networking Group (NCNG)
1.2 red
2024 m. gruodžio mėn

Revizijos istorija

Peržiūra Data Komentarai
1.2 2024 m. gruodžio mėn · Pridėtos papildomos energijos valdymo instrukcijos.
· Pridėta Intel* Turbo Boost.
· Pridėtas tinklo įrenginių atsilikimas.
· Pridėtos platformai būdingos konfigūracijos ir derinimas.
· Pridėta 4-osios kartos Intel* %eon* keičiamo dydžio procesoriai.
· Pridėtas AMD EPYC.
· Atnaujintos sistemos aparatinės įrangos galimybių patikrinimas.
· Atnaujinta iPerf2.
· Atnaujinta iPerf3.
· Atnaujintos Tx/Rx eilės.
· Atnaujintas pertraukų moderavimas.
· Atnaujintas žiedo dydis.
· Atnaujintas platformos derinimas (i40e nespecifinis).
· Atnaujinti BIOS nustatymai.
· Atnaujintas C-State Control.
· Atnaujintas procesoriaus dažnio mastelis.
· Atnaujinti programos nustatymai.
· Atnaujinti operacinės sistemos / branduolio nustatymai.
· Atnaujintas IP persiuntimas.
· Atnaujinta maža delsa.
2023 m. rugpjūčio mėn Šio dokumento pakeitimai apima:
· Pridėtos susijusios nuorodos.
· Pridėta Užtikrinkite, kad DDP paketas būtų tinkamai įkeliamas.
· Pridėta iPerf2.
· Pridėta iPerf3.
· Pridėtas netperf.
· Atnaujintas IRQ Affinity.
· Pridėtos Tx/Rx eilės.
· Atnaujintas žiedo dydis.
· Pridėta Jumbo Frames.
· Pridėtas adapteris.
· Pridėtas Intel svr-info įrankis.
1.0 2016 m. kovo mėn Pradinis leidimas („Intel Public“).

Įvadas

Šiame vadove pateikiamos gairės, kaip suderinti aplinkas, kad būtų užtikrintas optimalus tinklo veikimas naudojant Intel ® Ethernet 700 serijos NIC Linux aplinkoje. Jame dėmesys sutelkiamas į aparatinę įrangą, tvarkykles ir operacinės sistemos sąlygas bei nustatymus, kurie gali pagerinti tinklo našumą. Reikėtų pažymėti, kad tinklo veikimą gali paveikti daugybė išorinių poveikių, šiame vadove aptariami tik labiausiai paplitę ir dramatiškiausi iš jų.
1.1 Susijusios nuorodos

Pradinis kontrolinis sąrašas

2.1 Atnaujinkite tvarkyklės / programinės įrangos versijas
Patikrinkite tvarkyklės / programinės įrangos versijas naudodami ethtool -i ethx.
Jei reikia, atnaujinkite šiuos dalykus:

2.2 Perskaitykite README
Patikrinkite, ar nėra žinomų problemų, ir gaukite naujausias konfigūravimo instrukcijas iš README file įtraukta į i40e šaltinio paketą.
2.3 Patikrinkite, ar jūsų PCI Express (PCIe) lizdas yra x8
Kai kurie PCIe x8 lizdai iš tikrųjų sukonfigūruoti kaip x4 lizdai. Šie lizdai turi nepakankamą pralaidumą visam linijos greičiui naudojant dviejų ir keturių prievadų įrenginius. Be to, jei į PCIe v3.0.x lizdą įdėsite PCIe v2 palaikantį adapterį, negalėsite gauti viso pralaidumo. Programinės įrangos įrenginio tvarkyklė aptinka šią situaciją ir sistemos žurnale įrašo šį pranešimą:
Šios kortelės PCI-Express pralaidumo nepakanka optimaliam veikimui. Norint užtikrinti optimalų veikimą, reikalingas x8 PCI-Express lizdas.
Jei įvyksta ši klaida, perkelkite adapterį į tikrą PCIe v3.0 x8 lizdą, kad išspręstumėte problemą.
2.4 Patikrinkite sistemos aparatinės įrangos galimybes
Esant 10 Gbps, 25 Gbps ir 40 Gbps eterneto spartai, taikomi keli minimalūs procesoriaus ir sistemos reikalavimai. Apskritai šiuolaikinio serverio klasės procesoriaus ir optimalios atminties konfigūracijos jūsų platformai turėtų pakakti, tačiau poreikiai skiriasi priklausomai nuo jūsų darbo krūvio. Visi atminties kanalai turi būti užpildyti, o atminties našumo režimas turi būti įjungtas BIOS. Patikrinkite, ar jūsų procesoriaus ir atminties konfigūracija gali palaikyti tokį tinklo našumo lygį, kurio reikia jūsų darbo krūviui.
PASTABA
XL710 yra 40 GbE valdiklis. 2 x 40 GbE adapteris, kuriame naudojamas šis valdiklis, yra ne 2 x 40 GbE, o 1 x 40 GbE su aktyviu atsarginiu prievadu. Bandant naudoti linijos spartos srautą, apimantį abu prievadus, vidinis jungiklis yra prisotintas, o bendras pralaidumas tarp dviejų prievadų ribojamas iki bendro SO Gbps.
2.4.1 Branduolio įkrovos parametrai
Jei BIOS įjungta „Intel® Virtualization Technology for Directed I/O“ („Intel® VT-d“), „Intel“ rekomenduoja, kad IOMMU būtų perdavimo režimu, kad būtų užtikrintas optimalus pagrindinio tinklo veikimas. Tai pašalina DMA pridėtines prieglobos srauto išlaidas ir leidžia virtualiosioms mašinoms (VM) vis tiek naudotis Intel® VT-d pranašumais. Tai pasiekiama pridedant šią eilutę prie branduolio įkrovos parametrų: fommu-pt.
2.5 Įsitikinkite, kad DDP paketas įkeliamas tinkamai
140ea ir 140eb bazinės tvarkyklės neturi tiesioginio dinaminio įrenginio personalizavimo (DDP) palaikymo. Norėdami naudoti DDP su 700 serijos įrenginiais, DDP profile galima taikyti su testpmd programa.
Norėdami gauti daugiau informacijos apie DDP profiles ir kaip pritaikyti DDP profile su testpmd 700 serijos įrenginiuose, žr. Intel® Ethernet 700 serijos dinaminio įrenginio personalizavimo (DDP) technologijos vadovą.
Norėdami patikrinti, ar DDP profile sėkmingai įkeltas:
testpmd> ddp gauti sąrašą 0 Profile numeris yra: 1
PASTABA
Jei profesionalasfile skaičius yra 0, DDP paketas neįkeltas. Įvykus DDP paketo įkėlimo klaidai, įrenginys veikia pagal numatytuosius nustatymus į saugųjį režimą ir daugelis našumo funkcijų nepasiekiamos. Jei yra klaidų, susijusių su DDP paketo įkėlimu, tai sukels našumo problemų. Trikčių šalinimo veiksmų ieškokite Inte/* Ethernet 700 serijos dinaminio įrenginio personalizavimo (DDP) technologijos vadove.

Pradiniai našumo matavimai ir derinimo metodika

3.1 Tinklo našumo standartai
Prieš pradedant derinimo pratimą, svarbu gerai išmatuoti tinklo našumą. Paprastai ne tik pradinis konkrečios programos / darbo krūvio našumo įvertinimas, bet ir standartinis tinklo našumo etalonas, siekiant patikrinti, ar tinklo įrenginys yra geros būklės.
Vienai sistemai optimizuoti netperf arba iperf ir NetPIPE yra tvirti atvirojo kodo nemokami įrankiai, leidžiantys pabrėžti ryšį ir diagnozuoti našumo problemas.
Netperf yra stiprus tiek pralaidumo, tiek delsos testavimui. NetPIPE yra specifinis delsos įrankis, tačiau jį galima sudaryti bet kokiai aplinkai.
PASTABA
TCP_RR testas netperf grąžina delsą operacijų per sekundę verte. Tai yra kelionės pirmyn ir atgal numeris. Vienpusį delsą galima apskaičiuoti naudojant šią lygtį:
Vėlavimas (naudojimas) = ​​(1⁄2) / [operacijos per sek.] * 1,000,000 XNUMX XNUMX
3.1.1 iPerf2
„Intel“ rekomenduoja naudoti iperf2, o ne iperf3 daugelyje lyginamųjų situacijų, nes paprasta naudoti ir palaikyti kelias gijas viename programos egzemplioriuje. „Intel“ rekomenduoja paleisti su -P parinktimi su 2–4 gijomis 25G jungtims ir maždaug 4–6 gijomis 40G jungtims.

  • Norėdami paleisti vienakryptį srautą iš kliento į serverį: Serverio komanda pvzample: iperf2 -s
    Kliento komanda pvzample: iperf2 -c -P
  • Norėdami paleisti dvikryptį srautą iš kliento į serverį (ir atvirkščiai): serverio komanda pvzample: iperf2 –s –p
    Kliento komanda pvzampLe:
    iperf2 -c -p -P --visiškai dvipusis ARBA
    iperf2 -c -p -P –d

PASTABA
Ir „iperf2“ parinktys „-full-duplex“ ir „-d“ leidžia vartotojui atlikti dviejų krypčių testavimą. Tačiau – „Full-duplex“ parinktis yra skirta visiškam dvipusiam bandymui.
PASTABA
Bandant iperf2 keliuose serverio prievaduose, prie serverio komandos galima pridėti vėliavėlę -d, kad visos serverio sesijos būtų paleistos fone iš to paties terminalo lango. Žymė -d taip pat gali būti naudojama, kai serverio komanda yra įterpta į scenarijaus for-ciklą.
PASTABA
Vykdant tinklo pralaidumo testą su vienu srautu / gija (pvz.,ample: P1), AMD procesoriai gali nesuteikti laukiamo pralaidumo, ypač didesnio pralaidumo NIC (jei greitis >= 25G pralaidumo). Todėl norint pasiekti didesnį pralaidumą, reikia prisegti programą prie konkrečių branduolių. Žr. Programos nustatymai 22 puslapyje.
3.1.2 iPerf3
Jei naudojamas iperf3, norint pasinaudoti „Advan“, reikalingi keli programos egzemplioriaitage iš kelių gijų, RSS ir aparatinės įrangos eilių. „Intel“ rekomenduoja paleisti 2–4 programos seansus 25G ryšiams ir maždaug 4–6 seansus 40G ryšiams. Kiekviena sesija turi nurodyti unikalią TCP prievado reikšmę naudojant -p parinktį.

  • Norėdami paleisti vienakryptį srautą iš kliento į serverį:
    Serverio komanda pvzampLe:
    iperf3 -s -p
    Kliento komanda pvzampLe:
    iperf3 -c -p
  • Norėdami paleisti dvikryptį srautą iš kliento į serverį (ir atvirkščiai):
    Serverio komanda pvzampLe:
    iperf3 –s –p
    Kliento komanda pvzample: iperf3 -c -p -P –-bidir
  • Norint paleisti kelis iperf3 egzempliorius (gijas), rekomenduojama naudoti for-loop gijas susieti su TCP prievadais ir paleisti iperf3 fone naudojant &, kad lygiagrečiai būtų sukurti keli procesai.
    Serverio komanda pvzample, pradėkite 4 gijas: port=””; i 0..3}; do port=520$i; bash -c "iperf3 -s -p $port &"; padaryta; Kliento komanda pvzample, pradėti 4 gijas – Transmit test port=””; i 0..3}; do port=520$i; bash -c "iperf3 -c $serverIP -p $port &"; padaryta; Kliento komanda pvzample, pradėti 4 gijas – Gauti testavimo prievadą=””; i 0..3}; do port=520$i; bash -c "iperf3 -R -c $serverIP -p $port &"; padaryta; 40G ryšiams padidinkite for-ciklą, kad sukurtumėte iki 6 egzempliorių / gijų.

PASTABA
Vykdant tinklo pralaidumo testą su vienu srautu / gija (pvz.,ample: P1), AMD procesoriai gali nesuteikti laukiamo pralaidumo, ypač didesnio pralaidumo
NIC (jei greitis >= 25G pralaidumo). Todėl norint pasiekti didesnį pralaidumą, reikia prisegti programą prie konkrečių branduolių. Žr. Programos nustatymai 22 puslapyje ir AMD EPYC 26 puslapyje.
3.1.3 netperf
Netperf įrankis yra puikus pasirinkimas tiek pralaidumui, tiek delsai tikrinti.

  • TCP_STREAM testas netperf matuoja įrenginio pralaidumą. Serverio komanda pvzample: netserver Kliento komanda example: netperf -t TCP_STREAM -l 30 -H
  • TCP_RR testas netperf grąžina delsą operacijų per sekundę verte. Tai yra kelionės pirmyn ir atgal numeris. Jei x yra įrenginio vietinis procesorius, rekomenduojama naudoti parinktį -T x,x. Vienpusį delsą galima apskaičiuoti naudojant: Latencija(naudojimas)=(1⁄2)/ [Operacijos/sek.]*1,000,\ Serverio komanda pvz.ample: tinklo serveris
    Kliento komanda pvzample: netperf -t TCP_RR -l 30 -H -T x,x
  • Norint pradėti kelis netperf egzempliorius (gijas), rekomenduojama naudoti for-loop gijas susieti su TCP prievadais ir paleisti netperf fone naudojant &, kad lygiagrečiai būtų sukurti keli procesai.
    Serverio komanda pvzample, pradėkite 8 temas:
    prievadas =""; i 0..7}; do port=520$i; bash -c "netserver -L $serverIP -p $port &"; padaryta;
    Kliento komanda pvzample, pradėti 8 gijas: port=””; i 0..7}; do port=520$i; bash -c "netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &"; padaryta;

3.2 Derinimo metodika
Vienu metu sutelkite dėmesį į vieną derinimo pakeitimą, kad žinotumėte, kokią įtaką kiekvienas pakeitimas daro jūsų testui. Kuo metodiškiau būsite derinimo procese, tuo lengviau bus nustatyti ir pašalinti našumo kliūčių priežastis.

„i40e“ tvarkyklės nustatymų derinimas

4.1 IRQ giminingumas
IRQ giminystės konfigūravimas taip, kad skirtingų tinklo eilių pertraukimai būtų susieti su skirtingais procesoriaus branduoliais, gali turėti didžiulį poveikį našumui, ypač kelių gijų pralaidumo testams.
Norėdami sukonfigūruoti IRQ giminystę, sustabdykite irqbalance ir naudokite scenarijų set_irq_affinity iš i40e šaltinio paketo arba prisegkite eiles rankiniu būdu. Išjunkite vartotojo erdvės IRQ balansavimo priemonę, kad įgalintumėte eilės prisegimą:

  • systemctl išjungti irqbalance
  • systemctl stop irqbalance
    Naudojant set_irq_affinity scenarijų iš i40e šaltinio paketo (rekomenduojama):
  • Norėdami naudoti visus branduolius:
    [kelias į i40epackage]/scripts/set_irq_affinity -X all ethX
  • Norėdami naudoti tik branduolius vietiniame NUMA lizde: [path-to-i40epackage]/scripts/set_irq_affinity -X local ethX
  • Taip pat galite pasirinkti daugybę branduolių. Venkite naudoti cpu0, nes jis vykdo laikmačio užduotis. [kelias į i40epackage]/scripts/set_irq_affinity 1-2 ethX

PASTABA
Afiniteto scenarijus įgalina perdavimo paketų valdymą (XPS) kaip prisegimo proceso dalį, kai nurodyta parinktis -x. Įjungus XPS, „Intel“ rekomenduoja išjungti irqbalance, nes branduolio balansavimo priemonė su XPS gali sukelti nenuspėjamą veikimą. Afiniteto scenarijus išjungia XPS, kai nurodoma parinktis -X. XPS išjungimas ir simetriškų eilių įgalinimas naudingas darbo krūviams, kai geriausias našumas pasiekiamas, kai Tx ir Rx srautas aptarnaujamas toje pačioje eilių poroje (-ose).
Simetrinių eilių konfigūravimas sistemoje „Linux“ apima tinklo sąsajos tvarkyklės parametrų derinimą, kad būtų įgalintos simetrinės priėmimo eilės (Rx) ir simetrinės perdavimo eilės (Tx) palaikomiems tinklo adapteriams.
PASTABA

  • Simetrinės eilės yra pažangi tinklo funkcija, ir ne visi 700 serijos tinklo adapteriai ar tvarkyklės jas palaiko.
  • Prieš bandydami konfigūruoti simetriškas eiles, įsitikinkite, kad turite reikiamą tvarkyklės ir aparatinės įrangos palaikymą.

Norėdami sukonfigūruoti simetriškas eiles, atlikite šiuos bendruosius veiksmus:

  1. Redaguoti tinklo sąsajos konfigūraciją File: naudokite teksto rengyklę (pvz.,ample, vi, nano arba gedit), kad galėtumėte redaguoti tinklo sąsajos konfigūraciją file. The file paprastai yra /etc/sysconfig/network-scripts/ kataloge ir turi tokį pavadinimą kaip ifcfg-ethX, kur ethX yra jūsų tinklo sąsajos pavadinimas.
  2. Pridėti simetrinius eilės parametrus. Pridėkite šias eilutes prie tinklo sąsajos konfigūracijos file: ETHTOOL_OPTS="rx-eilės 8 tx-eilės 8"
  3. Iš naujo paleiskite tinklo paslaugą.
    Atlikę pakeitimus iš naujo paleiskite tinklo paslaugą, kad pritaikytumėte naują konfigūraciją. sudo systemctl iš naujo paleiskite tinklą

Rankiniu būdu:

  • Raskite prie kiekvieno mazgo prijungtus procesorius naudodami: numactl –hardware lscpu
  • Raskite kiekvieno procesoriaus bitų kaukes:
  • Darant prielaidą, kad 0 mazgo branduoliai yra 11–0: [1,2,4,8,10,20,40,80,100,200,400,800]
  • Raskite IRQ, priskirtus priskirtam prievadui: grep ethX /proc/interrupts ir atkreipkite dėmesį į IRQ reikšmes pvz.ample, 181-192 12 įkeltų vektorių.
  • Pakartokite SMP afiniteto reikšmę į atitinkamą IRQ įrašą. Atminkite, kad tai reikia padaryti kiekvienam IRQ įrašui: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity Rodyti IRQ giminystę:
  • Norėdami parodyti visų branduolių IRQ giminingumą: /scripts/set_irq_affinity -s ethX
  • Norėdami rodyti tik vietinio NUMA lizdo branduolius: /scripts/set_irq_affinity -s vietinis ethX
  • Taip pat galite pasirinkti keletą branduolių: /scripts/set_irq_affinity -s 40-0-8,16 ethX

PASTABA
Scenarijus set_irq_affinity palaiko -s vėliavėlę i40e tvarkyklės 2.16.11 ir naujesnėse versijose.
4.2 Tx/Rx eilės
Numatytasis eilių, kurias tvarkyklė įgalino kiekvienam Ethernet prievadui inicijavimo metu, skaičius yra lygus bendram platformoje pasiekiamų procesorių skaičiui. Tai gerai veikia daugelyje platformų ir darbo krūvio konfigūracijų. Tačiau platformose su dideliu branduolių skaičiumi ir (arba) dideliu Ethernet prievado tankiu dėl šios konfigūracijos gali kilti ginčų dėl išteklių. Todėl kai kuriais atvejais gali prireikti pakeisti kiekvieno sistemos prievado numatytuosius nustatymus.
Numatytasis Tx/Rx eilių skaičius gali skirtis priklausomai nuo konkretaus modelio ir tvarkyklės versijos. Eilių skaičių galima reguliuoti naudojant toliau pateiktą komandą ethtool -L.
PASTABA
Tokiais atvejais „Intel“ rekomenduoja sumažinti numatytąjį kiekvieno prievado eilių skaičių iki procesorių, galimų NUMA mazge, esančiame vietiniame adapterio prievade, skaičiaus. Kai kuriais atvejais, bandant subalansuoti išteklius naudojant didelio prievadų skaičiaus diegimą, gali prireikti dar labiau sumažinti šį skaičių.
Norėdami pakeisti eilės konfigūraciją:
Šis buvęsample nustato prievadą į 32 Tx/Rx eiles: ethtool -L ethX kartu 32
Exampišvestis:
ethtool -l ethX
Kanalo parametrai ethX: iš anksto nustatyti maksimumai:
RX: 96
TX: 96
Kita: 1
Kartu: 96
Dabartiniai aparatūros nustatymai:
RX: 0
TX: 0
Kita: 1
Kartu: 32
4.3 Pertraukimo moderavimas
Adaptyvusis pertraukų moderavimas įjungtas pagal numatytuosius nustatymus ir yra sukurtas taip, kad būtų suderintas mažas procesoriaus panaudojimas ir didelis našumas. Tačiau galite pabandyti rankiniu būdu nustatyti pertraukimo nustatymus, kad jie atitiktų jūsų naudojimo atvejį.
0–235 mikrosekundžių diapazonas užtikrina efektyvų diapazoną nuo 4,310 250,000 iki 2 XNUMX pertraukimų per sekundę. Rx-μsec-high reikšmė gali būti nustatyta nepriklausomai nuo rx-μsec ir tx-μsec toje pačioje ethtool komandoje, taip pat nepriklauso nuo adaptyvaus pertraukimo moderavimo algoritmo. Pagrindinė aparatinė įranga palaiko detalumą XNUMX mikrosekundžių intervalais, todėl gretimos reikšmės gali lemti tą patį pertraukimų dažnį.

  • Norėdami išjungti adaptyvų pertraukimo moderavimą: ethtool -C ethX adaptive-rx off adaptive-tx off
  • Norėdami įjungti adaptyvų pertraukimo moderavimą: ethtool -C ethX adaptive-rx įjungus adaptive-tx

Gera vieta pradėti bendram derinimui yra 84 μs arba ~12000 pertraukimų/s. Jei matote, kad srauto metu veikia rx_dropped skaitikliai (naudojant ethtool -S ethX), tikriausiai turite per lėtą procesorių, nepakanka adapterio žiedo dydžio buferių (ethtool -G), kad būtų galima laikyti paketus 84 μs arba per mažą pertraukimo dažnį.

  • Norėdami nustatyti pertraukų moderavimą iki fiksuoto 84 μs pertraukimo dažnio tarp pertraukimų (12000 84 pertraukimų per sekundę): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usec 84 tx-usecs 62 Kita vertė, kurią reikia išbandyti, jei nesate maksimaliai išnaudotas CPU, yra XNUMX μs. Tai naudoja daugiau procesoriaus, bet greičiau aptarnauja buferį ir reikalauja mažiau deskriptorių (žiedo dydis, ethtool -G).
  • Nustatyti pertraukų moderavimą fiksuotam 62 pertraukimų dažniui tarp pertraukimų (16000 pertraukimų/s). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
    Jei srauto metu rx_dropped skaitikliai didėja (naudojant ethtool -S ethX), tikriausiai turite per lėtą procesorių, per mažai buferių nuo adapterio žiedo dydžio (ethtool -G) arba per mažą pertraukimų dažnį. Jei nesate maksimaliai išnaudoję procesoriaus, galite padidinti pertraukimų dažnį sumažindami ITR reikšmę. Tai naudoja daugiau procesoriaus, bet paslaugos veikia greičiau ir reikalauja mažiau deskriptorių (žiedo dydis, ethtool -G).
    Jei jūsų procesorius yra 100%, nerekomenduojama didinti pertraukimų dažnio. Tam tikromis aplinkybėmis, pvz., dėl procesoriaus susieto darbo krūvio, galbūt norėsite padidinti μs reikšmę, kad suteiktumėte daugiau CPU laiko kitoms programoms.
    Jei jums reikia mažo delsos veikimo ir (arba) turite daug procesoriaus, kurį galite skirti tinklo apdorojimui, galite visiškai išjungti pertraukų moderavimą, kad pertraukimai įsijungtų kuo greičiau.
  • Norėdami išjungti pertraukimo moderavimą ethtool -C ethX adaptive-rx off adaptive-tx off rx-usec 0 tx-usecs 0

PASTABA
Kai vykdoma išjungus pertraukų moderavimą, pertraukimų dažnis kiekvienoje eilėje gali būti labai didelis. Apsvarstykite galimybę įtraukti parametrą rx-usec-high, kad nustatytumėte viršutinę pertraukimo dažnio ribą. Ši komanda išjungia adaptyvų pertraukų moderavimą ir leidžia ne ilgiau kaip 5 mikrosekundes, kol nurodoma, kad priėmimas arba siuntimas baigtas. Užuot 200,000 50,000 pertraukimų per sekundę, jis apriboja bendrą pertraukimų skaičių iki 20 5 per sekundę naudodamas parametrą rx-usec-high. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 5 rx-usecs 80 txusecs 100 Pabandykite koreguoti perdavimo / priėmimo / aukšto prioriteto sujungimo laikmatį didesnę (150/200/25/20) arba mažesnę (10/5) darbo reikšmę, kad rastumėte optimalią darbo reikšmę.
4.4 Žiedo dydis
Jei matote rx_dropped skaitiklius ethtool -S ethX (rx_dropped, rx_dropped.nic) arba įtariate talpyklos spaudimą, kai aktyvios kelios eilės, galite pabandyti pakoreguoti žiedo dydį pagal numatytąją reikšmę. Numatytoji vertė yra 512, didžiausia - 4096.

  • Norėdami patikrinti esamas reikšmes: ethtool -g ethX
    Jei įtariama, kad dėl buferio trūkumo sumažėja dabartinis pertraukimų dažnis, pirmiausia galite išbandyti didžiausią, tada mažiausią, tada tęsti dvejetainę paiešką, kol pamatysite optimalų našumą.
    Jei įtariama, kad talpyklos slėgis (daug aktyvių eilių), sumažinus buferius nuo numatytojo, Intel ® Data Direct I/O (Intel ® DDIO) gali veikti efektyviau. „Intel“ rekomenduoja išbandyti 128 arba 256 vienoje eilėje, žinant, kad gali prireikti padidinti pertraukimų dažnį naudojant ethtool -C, kad būtų išvengta rx_dropped padidėjimo.
  • Norėdami nustatyti žiedo dydį į fiksuotą vertę: ethtool -G eth12 rx 256 tx 256

PASTABA
Norėdami ištaisyti Rx paketų sumažėjimą, aptiktą naudojant ethtool -S ethX|grep drop, apsvarstykite galimybę padidinti žiedo dydį iki 4096. Eksperimentuokite, kad surastumėte geriausią darbo krūvio nustatymą, bet saugokitės, kad nenaudojama per daug atminties su didesnėmis reikšmėmis.
4.5 Srauto valdymas
2 lygmens srauto valdymas gali labai paveikti TCP našumą ir rekomenduojama jį išjungti daugeliui darbo krūvių. Galima išimtis yra intensyvus eismas, kai serijos trunka neilgai.
Pagal numatytuosius nustatymus srauto valdymas išjungtas.

  • Norėdami įjungti srauto valdymą: ethtool -A ethX rx on tx on įjungtas
  • Norėdami išjungti srauto valdymą: ethtool -A ethX rx off tx off

PASTABA
Norėdami sėkmingai įjungti srauto valdymą, turite turėti srauto valdymą palaikantį susiejimo partnerį.
4.6 Jumbo rėmeliai
Kai numatomą srauto aplinką sudaro dideli perduodamų duomenų blokai, gali būti naudinga įjungti didžiojo kadro funkciją. Jumbo Frames palaikymas įgalinamas pakeitus didžiausią perdavimo vienetą (MTU) į didesnę nei numatytoji reikšmė 1500. Tai leidžia įrenginiui perduoti duomenis didesniais paketais tinklo aplinkoje. Šis nustatymas gali pagerinti pralaidumą ir sumažinti procesoriaus naudojimą esant dideliam įvesties / išvesties darbo krūviui. Tačiau tai gali turėti įtakos mažiems paketams arba delsai jautriems darbo krūviams.
PASTABA
Jumbo rėmeliai arba didesnis MTU nustatymas turi būti tinkamai sukonfigūruotas jūsų tinklo aplinkoje.
Norėdami padidinti MTU dydį, naudokite komandą ifconfig. Pavyzdžiui,ample, įveskite toliau nurodytą kur yra sąsajos numeris: ifconfig mtu 9000 iki
Arba galite naudoti komandą ip taip: ip link set mtu 9000 dev ip nuorodos nustatymas dev

Platformos derinimas (nespecifinis „i40e“)

5.1 BIOS nustatymai

  • Įgalinkite „Intel® VT-d“ virtualizavimo darbo krūviams.
  • Hipersriegiavimas (loginiai procesoriai) gali turėti įtakos našumui. Eksperimentuokite su juo įjungę arba išjungę savo darbo krūvį.
  • „Intel® Turbo Boost“ leidžia procesoriaus branduoliams veikti didesniu dažniu nei bazinis procesoriaus dažnis. „Intel® Turbo Boost“ įjungimas gali pagerinti daugelio darbo krūvių našumą, tačiau sunaudojama daugiau energijos, kad branduoliai veiktų aukštesniu dažniu. Eksperimentuokite su „Turbo Boost“ išjungimu / įjungimu pagal savo darbo krūvį.

PASTABA
Turbo dažniai negarantuojami, jei platforma patiria didelį bendrą procesoriaus panaudojimą. Didėjant bendram procesoriaus panaudojimui, sumažėja aukštesni branduolių turbo dažniai.
5.2 Energijos valdymas
Energijos valdymas gali turėti įtakos našumui, ypač esant mažam delsos darbo krūviui. Jei našumas yra svarbesnis nei energijos suvartojimo mažinimas, „Intel“ rekomenduoja eksperimentuoti apribojant energijos valdymo poveikį. Yra daug skirtingų būdų, kaip apriboti energijos valdymą, naudojant operacinės sistemos įrankius, BIOS nustatymus ir branduolio įkrovos parametrus. Pasirinkite geriausią metodą ir lygį, atitinkantį jūsų aplinką.
5.2.1 C-State Control
C būsenos įvedimo apribojimas iki CO arba C1 pagerina našumą ir padidina energijos suvartojimą.
CPU paketo C6 būsenos įvedimo išjungimas gali pagerinti tinklo našumą. Tačiau tai padidina energijos suvartojimą.
Galimos šios parinktys:

  • Dinamiškai valdykite C būsenos įrašą:
    Atidaryti
    /dev/cpu_dma_latency ir įrašykite didžiausią leistiną delsą.

PASTABA
Yra nedidelė programa, vadinama cpudmalatency.c, kurią galima atsisiųsti iš atvirojo kodo bendruomenės, sukompiliuoti ir paleisti iš komandinės eilutės, kad tai padarytumėte.
Šis buvęsample leidžia penkias μs pažadinimo laiko, taigi leidžia įvesti C1: cpudmalatency 5 &

  • Apribokite didžiausią C būseną branduolio įkrovos nustatymuose:
    „Intel“ procesoriams: intel_idle.max_cstates=1
    Ne Intel CPU: processor.max_cstates=1
  • Naudokite komandą cpupower, kad patikrintumėte ir išjungtumėte CPU C6 būseną: Patikrinkite: cpupower monitorius arba cpupower idle-info
    Išjungti C6: cpupower idle-set -d3 arba
    Išjungti C būsenas: cpupower idle-set -D0

Pastabos:

  1. Išjunkite CPU būsenas, jei serveryje yra Intel® 4th Gen Intel® Xeon® keičiamo dydžio procesorius (-iai). Kai įjungtas arba išjungtas „Hyper Threading“, išjungus tuščiosios eigos būsenas (-D0) neleidžiama branduoliams pereiti į mažos galios būseną neveiklumo laikotarpiais ir sumažinama procesoriaus perėjimo iš neveikimo į aktyvią būseną delsa.
  2. Intel® 4th Gen Intel® Xeon® Scalable Processor energijos valdymas yra itin agresyvus. Kad branduoliai nepatektų į mažos galios būseną, pabandykite sumažinti naudojamų branduolių skaičių, kad jie ilgiau nemiegotų (ethtool -L sujungti ). Be to, susiekite pertraukimus prie konkrečių branduolių naudodami nustatytą irq afinitetą (dažniausiai su -x local arba procesoriaus branduolių sąrašu) ir užtikrinkite, kad darbo krūvis būtų vykdomas tuose pačiuose branduoliuose su taskset arba numactl. Tai pagerina našumą išlaikant aktyvius branduolius ir optimizuojant pertraukimų tvarkymą.

Įgalinti C6:
cpupower idle-set -d3
Įgalinti C būsenas:
cpupower idle-set -E

  • Kitas būdas yra naudoti suderintą įrankį (yra įtrauktas į daugelį „Linux“ paskirstymų), kad būtų galima nustatyti efektyvumąfile. Šie profesionalaifiles keisti kelis OS nustatymus, kurie gali turėti įtakos daugelio programų veikimui. Nustatyta, kad tinklo pralaidumo profile pagerina daugumą darbo krūvių.
    Patikrinkite:
    tuned-adm aktyvus
    Nustatyti:
    tuned-adm profile tinklo pralaidumas
    PASTABA
    Suderinta paslauga turi veikti aukščiau nurodytoms komandoms. Norėdami patikrinti / paleisti iš naujo, suderinta: sureguliuota systemctl būsena systemctl restart sureguliuota
    Taip pat galite neleisti bet kokio C būsenos įrašo, į branduolio įkrovos eilutę įtraukdami:
    tuščiąja eiga = apklausa
  • Apribokite C būseną naudodami sistemos BIOS maitinimo valdymo nustatymus, kurie gali turėti našumo profesionalųfile prieinama.
    Energijos valdymo parametrams patikrinti arba nustatyti galima naudoti tokius įrankius kaip turbostatas arba x86_energy_perf_policy.

5.2.2 PCIe maitinimo valdymas
Aktyvios būsenos energijos valdymas (ASPM) įgalina mažesnės galios būseną PCIe nuorodoms, kai jos nėra aktyviai naudojamos. Dėl to PCIe tinklo įrenginiuose gali padidėti delsa, todėl „Intel“ rekomenduoja išjungti ASPM, kai darbo krūvis yra jautrus delsai. Išjunkite ASPM, į branduolio įkrovos eilutę įtraukdami: pcie_aspm=off
5.2.3 CPU dažnio mastelio keitimas
CPU dažnio mastelio keitimas (arba procesoriaus greičio mastelio keitimas) yra „Linux“ energijos valdymo metodas, kai sistemos laikrodžio greitis koreguojamas skrydžio metu, kad būtų taupoma energija ir šiluma. Kaip ir C būsenos, tai gali sukelti nepageidaujamą tinklo ryšių delsą.
Cpupower įrankis taip pat gali būti naudojamas norint patikrinti ir keisti procesoriaus našumo numatytuosius nustatymus ir ribas:

  • Patikrinkite: cpupower monitorius arba
  • Nustatyti CPU našumo režimu: cpupower dažnis-nustatyti -g našumas

PASTABA
CPU dažnio apribojimų pakeitimai gali turėti įtakos daugeliui darbo krūvių ir gali išjungti kitas funkcijas, pvz., CPU turbo režimą.
Norėdami išjungti procesoriaus dažnio mastelį, išjunkite procesoriaus maitinimo paslaugą naudodami šias komandas:
systemctl stop cpupower.service
systemctl išjungti cpupower.service
5.2.4 Papildomi energijos valdymo nurodymai
Papildoma informacija pateikiama šiame aukšto lygio viršelyjeview daugelio 3-osios kartos Intel® Xeon® Scalable procesorių energijos valdymo funkcijų, taip pat nurodymai, kaip šias funkcijas galima integruoti platformos lygiu: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 „Intel® Turbo Boost“.
„Intel® Turbo Boost“ prireikus pagreitina procesorių, tačiau gali sunaudoti daugiau energijos. Išjungus „Turbo Boost“, procesorius veikia pastoviai, o tai užtikrina pastovų našumo lygį esant tam tikram darbo krūviui.
5.4 Ugniasienės
Ugniasienės gali paveikti našumą, ypač delsos našumą.
Jei nereikia, išjunkite iptables/firewalld.
5.5 Programos nustatymai
Dažnai vienos gijos (kuris atitinka vieną tinklo eilę) nepakanka, kad būtų pasiektas didžiausias pralaidumas. Kai kurios platformų architektūros, pvz., AMD, paprastai išmeta daugiau Rx paketų su viena gija, palyginti su platformomis su „Intel“ procesoriais.
Apsvarstykite galimybę naudoti įrankius, pvz., užduočių rinkinį arba numactl, kad prisegtumėte programas prie NUMA mazgo arba procesoriaus branduolių, esančių tinklo įrenginyje. Kai kuriems darbo krūviams, pvz., saugyklos įvesties / išvesties, programos perkėlimas į ne vietinį mazgą yra naudingas.
Jei įmanoma, eksperimentuokite padidindami savo programoje naudojamų gijų skaičių.
5.6 branduolio versija
Dauguma šiuolaikinių dėžutėje esančių branduolių yra pakankamai gerai optimizuoti našumui užtikrinti, tačiau, atsižvelgiant į naudojimo atvejį, branduolio atnaujinimas gali pagerinti našumą. Atsisiuntę šaltinį taip pat galite įjungti / išjungti tam tikras funkcijas prieš kuriant branduolį.
5.7 Operacinės sistemos / branduolio nustatymai
Norėdami gauti daugiau informacijos apie bendrą operacinės sistemos derinimą, žr. operacinės sistemos derinimo vadovus, pvz., „Red Hat Enterprise Linux Network Performance Tuning Guide“.
Kai kurie įprasti derinami parametrai yra išvardyti toliau esančioje lentelėje. Atminkite, kad tai tik siūlomi pradžios taškai, o juos pakeitus iš numatytųjų gali padidėti sistemoje naudojami ištekliai. Nors reikšmių padidinimas gali padėti pagerinti našumą, būtina eksperimentuoti su skirtingomis reikšmėmis, siekiant nustatyti, kas geriausiai tinka tam tikrai sistemai, darbo krūviui ir srauto tipui.
Branduolio parametrus galima konfigūruoti naudojant „sysctl“ įrankį „Linux“, kaip nurodyta toliau.
Į view numatytosios rmem ir wmem reikšmės sistemoje:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
Nustatykite didžiausias reikšmes (16 MB):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Lizdų buferio dydžiai, taip pat žinomi kaip priėmimo buferis (rmem) ir perdavimo buferis (wmem), yra sistemos parametrai, nurodantys įeinančiam ir išeinančiam tinklo srautui rezervuotos atminties kiekį.
Vykdant sysctl be argumento -w pateikiamas parametro sąrašas su dabartiniu nustatymu.

Krūvos nustatymas Aprašymas
net.core.rmem_default Numatytasis gavimo lango dydis
net.core.wmem_default Numatytasis perdavimo lango dydis
net.core.rmem_max Maksimalus priėmimo lango dydis
net.core.wmem_max Maksimalus perdavimo lango dydis
net.core.optmem_max Maksimalus parinkčių atminties buferis
net.core.netdev_max_backlog Neapdorotų paketų atsilikimas, kol branduolys pradeda kristi
net.ipv4.tcp_rmem Atminties rezervatorius TCP skaitymo buferiams
net.ipv4.tcp_wmem Atminties rezervatorius TCP siuntimo buferiams

Branduolys, tinklo krūva, atminties tvarkytuvė, procesoriaus greitis ir energijos valdymo parametrai gali turėti didelės įtakos tinklo veikimui. Bendra rekomendacija yra taikyti tinklo pralaidumo profile naudojant sureguliuotą komandą. Tai pakeičia kelis OS nustatymus, kad būtų teikiama pirmenybė tinklo programoms.
Patikrinkite:
tuned-adm aktyvus
Nustatyti:
tuned-adm profile tinklo pralaidumas
5.8 Tinklo įrenginio atsilikimas
Ši funkcija padeda pagerinti tinklo našumą efektyviai valdant gaunamą srautą, sumažinant paketų praradimą, sumažinant delsą ir padidinant pralaidumą. Tai užtikrina geresnę vartotojo patirtį ir greitesnį sistemos atsaką.
Pagal numatytuosius nustatymus jis įjungtas daugumoje „Linux“ operacinių sistemų. Norėdami patikrinti numatytąją reikšmę:
sysctl net.core.netdev_max_backlog
Didžiausia netdev_max_backlog vertė gali skirtis priklausomai nuo tokių veiksnių kaip branduolio versija, aparatinė įranga, atmintis ir darbo krūvis. Daugeliu atvejų 8192 vertinamas kaip gera vertė. sysctl -w net.core.netdev_max_backlog=8192
5.9 Platformai būdingos konfigūracijos ir derinimas
5.9.1 4-osios kartos Intel® Xeon® keičiami procesoriai

Intel® 4th Generation Intel® Xeon® Scalable procesoriaus energijos valdymas yra ypač agresyvus, palyginti su 3-osios kartos Intel® Xeon® Scalable procesoriais. Kad branduoliai nepatektų į mažos galios būseną, pabandykite sumažinti naudojamų branduolių skaičių, kad jie ilgiau nemiegotų.
Rekomenduojami BIOS nustatymai, kad būtų pasiektas didžiausias našumas

  1. Hipersriegio įjungimas / išjungimas (atsižvelgiant į darbo krūvio reikalavimus ir našumo tikslus) CPU.
  2. Nustatykite sistemos profile į Performance, kad pasiektumėte maksimalų našumą.
    PASTABA
    Tai lemia didesnes energijos sąnaudas
  3. Nustatykite procesoriaus galios valdymą į Maksimalus našumas, kad pirmenybė būtų teikiama maksimaliam procesoriaus našumui, o ne energijos vartojimo efektyvumui.
  4. Įgalinti Turbo Boost. Sistemos BIOS nustatymuose išjungus Turbo Boost, CPU paprastai negali dinamiškai didinti savo taktinio dažnio viršijantį bazinį dažnį.
  5. PASTABA
    „Turbo Boost“ išjungimas gali būti tinkamas tam tikrais naudojimo atvejais, kai pirmenybė teikiama pastoviam veikimui, energijos vartojimo efektyvumui ar šilumos valdymui, o ne maksimaliam našumui.
  6. Išjunkite vienos šakninės įvesties/išvesties virtualizavimo (SR-IOV) funkciją, jei sistema nenaudoja virtualizacijos technologijų.
  7. Išjunkite C būsenas, kad nurodytumėte CPU likti aktyviam ir neleisti patekti į gilesnes tuščiosios eigos būsenas.
  8. Išjunkite C1E, kad užtikrintumėte, jog centrinis procesorius išliktų aktyvus ir nepereitų į C1E tuščiosios eigos būseną.
  9. Nustatykite didžiausią nepagrindinį dažnį, kad nurodytumėte sistemai veikti aukščiausiu galimu dažniu.
  10. „Dell“ platformose nustatykite kelių APIC aprašymo lentelės (MADT) branduolių emuliaciją į Linear (arba Round-Robin, priklausomai nuo BIOS), kad būtų pateiktas aiškus ir nuspėjamas procesoriaus branduolių atvaizdavimas.

Rekomenduojami OS lygio derinimai optimizuoti našumą

  1. Nustatykite procesoriaus dažnio mastelio reguliatorių į našumą. cpupower dažnio rinkinys -g našumas cpupower dažnio informacija
  2. Išjungti C būsenas. cpupower idle-set -D0
  3. Nustatykite didžiausią pagrindinių Rx (rmem) ir Tx (wmem) buferių vertę. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
  4. Nustatyti tinklo įrenginio atsilikimą. sysctl -w net.core.netdev_max_backlog=8192
  5. Nustatyti tuned profile (darbo krūvis priklauso nuo pralaidumo / delsos).
    tuned-adm profile tinklo pralaidumas

Rekomenduojami adapterio lygio derinimai optimizuoti našumą

  1. Apriboti eilių, naudojamų programų srautui, skaičių. Naudokite minimalų eilių skaičių, reikalingą, kad susiję procesoriaus branduoliai būtų aktyvūs, kad jie nepatektų į gilesnes tuščiosios eigos būsenas (koreguokite pagal darbo krūvį): ethtool -L kartu 32
  2. Nustatykite pertraukų moderavimo normas. ethool -C adaptyvus-rx išjungtas adaptyvus-tx išjungtas rx-usecs-high 50 rx-usecs 50 tx-usecs 50
    Norėdami rasti optimalią darbo krūvio vertę, pabandykite sureguliuoti siuntimo / priėmimo / aukšto prioriteto sujungimo laikmatį didesnę (80/100/150/200) arba žemesnę (25/20/10/5).
  3. Nustatykite Rx/Tx žiedo dydžius. ethool -G rx 4096 tx 4096
    PASTABA
    Jei matote, kad Rx paketas krenta naudojant ethtool -S| grep drop, pabandykite sumažinti žiedo dydį iki <4096. Pabandykite rasti optimalią darbo krūvio vertę, kai paketai nėra išmesti.
  4. Nustatykite IRQ ryšį. Naudokite vietinius NIC branduolius arba specifinį branduolių susiejimą (kur # branduolių yra lygus eilių, nustatytų 1 puslapyje 26, skaičiui. systemctl stop irqbalance set_irq_affinity -X local ARBA set_irq_affinity -X

5.9.2 AMD EPYC
AMD EPYC procesoriai yra galingi serveriams ir duomenų centrams skirti procesoriai, sukurti remiantis AMD Zen architektūra. Žemiau pateikti nustatymai yra iš AMD 4-osios kartos EPYC serijos.
Didžiausio našumo rekomenduojami BIOS nustatymai

  1. Įgalinkite tinkintą režimą, kad naudotojai galėtų koreguoti procesoriaus našumą, energijos suvartojimą ir kitus nustatymus. Tai padeda tiksliai suderinti sistemą, kad būtų pasiekta geriausia našumo ir energijos vartojimo efektyvumo pusiausvyra.
  2. Įgalinkite pagrindinio našumo padidinimą, kad CPU galėtų automatiškai padidinti greitį, kad būtų galima atlikti intensyvesnes užduotis ir pagerinti bendrą našumą.
  3. Išjunkite visuotinį C būsenos valdymą, kad CPU nepatektų į gilesnes energijos taupymo būsenas, vadinamas C būsenomis, kurios gali išlaikyti reagavimą.
    PASTABA
    Išjungus C būsenas, gali sunaudoti daugiau energijos ir padidėti šiluminė temperatūra. Stebėkite abiejų darbo krūvį.
  4. Įgalinti / išjungti vienalaikį kelių gijų (SMT) CPU, atsižvelgiant į darbo krūvio reikalavimus ir našumo tikslus. SMT yra lygiavertis „Hyper Threading“ „Intel“ procesoriams.
    PASTABA
    Norėdami optimizuoti našumą, žr. „i40e tvarkyklės nustatymų derinimas“ 13 puslapyje ir platformos derinimas (nespecifinis „i40e“) puslapyje 19, kuriame rasite rekomenduojamą OS ir adapterio lygio derinimą.

Adapterio klijavimas

Linux susiejimas yra galinga funkcija, galinti žymiai pagerinti tinklo našumą, dubliavimą ir atsparumą gedimams serverio aplinkoje. Tačiau svarbu pažymėti, kad norint tinkamai veikti, reikalinga suderinama tinklo aparatinė įranga ir tinkama serverio ir jungiklio konfigūracija.
Sujungimo tvarkyklė sistemoje „Linux“ leidžia sujungti kelias fizines tinklo sąsajas į susietą sąsają. Ši susietoji sąsaja atrodo kaip viena virtualaus tinklo sąsaja su operacine sistema ir programomis.
PASTABA
Ryšys yra loginė sąsaja, todėl neįmanoma nustatyti procesoriaus afiniteto tiesiogiai jungties sąsajoje (pvz.ample, obligacija0). Tai reiškia, kad jis negali tiesiogiai valdyti pertraukimų tvarkymo ar procesoriaus giminystės. CPU giminingumas turi būti sukonfigūruotas pagrindinėms sąsajoms, kurios yra ryšio dalis.
Klijavimas suteikia keletą operacijų režimų, kurių kiekvienas turi savo ypatybes.

Režimas  Tipas
0 Apvalus Robinas
1 Aktyvi atsarginė kopija
2 XOR
3 Transliacija
4 LACP
5 Perduoti apkrovos balansą
6 Prisitaikantis apkrovos balansas

Yra įvairių būdų, kaip sukurti ryšį „Linux“. Vienas iš labiausiai paplitusių būdų yra tinklo konfigūravimas files (pvzample, /etc/network/ interfaces arba /etc/sysconfig/network-scripts/ifcfg-bondX).
Konfigūracija naudojant tinklo konfigūraciją Files
Šie veiksmai sukuria ryšį per tinklo konfigūraciją files.

  1. Norėdami sujungti, pasirinkite du ar daugiau NIC prievadų (pvz.,ample, ethX ir ethY)
  2. Atidarykite NIC konfigūraciją Files aplanke /etc/sysconfig/network-scripts/ reikalingai NIC sąsajai (pvz.ample, vi ifcfg-ethX ir vi ifcfg-ethY) ir pridėkite šį tekstą:
    MASTER=bondN [Pastaba: N yra sveikasis skaičius, skirtas jungties numeriui paminėti.] SLAVE=taip
  3. Sukurkite obligacijų tinklo scenarijų file naudodami vi /etc/sysconfig/networkscripts/ifcfg-bondN ir įveskite šį tekstą:
    DEVICE=bondN [Pastaba: N yra sveikasis skaičius, nurodantis ryšio numerį] ONBOOT=taip USERCTL=ne BOOTPROTO=dhcp (arba) nėra
    IPADDR=200.20.2.4 [būtina, jei BOOTPROTO=nėra] NETMASK=255.255.255.0 [būtina, jei BOOTPROTO=nėra] NETWORK=200.20.2.0 [reikalaujama, jei BOOTPROTO=nėra] [BROADCAST200.20.2.255reikalaujama1reikalaujama100] BROADCAST BOOTPROTO=nėra] BONDING_OPTS=”mode=XNUMX miimon=XNUMX″
    PASTABA
    Režimas gali būti bet koks sveikasis skaičius nuo 0 iki 6, atsižvelgiant į reikalavimą.
  4. Iš naujo paleiskite tinklo paslaugas naudodami paslaugų tinklo paleidimą iš naujo arba systemctl restart NetworkManager.service

Našumo trikčių šalinimas

7.1 procesoriaus naudojimas
Patikrinkite procesoriaus naudojimą vienam branduoliui, kai vykdomas darbo krūvis.
Atminkite, kad vieno branduolio panaudojimas yra labiau susijęs su našumu nei bendras procesoriaus panaudojimas, nes jis suteikia idėją apie procesoriaus panaudojimą tinklo eilėje. Jei tinklo srautą vykdo tik kelios gijos, gali būti, kad naudojami tik keli branduoliai. Tačiau jei šie branduoliai yra 100%, greičiausiai jūsų tinklo pralaidumą riboja procesoriaus naudojimas, todėl laikas atlikti šiuos veiksmus:

  1. Nustatykite IRQ moderavimą / žiedo dydį, kaip aprašyta skyriuje Pertraukimo moderavimas.
  2. Padidinkite taikomųjų programų gijų skaičių, kad procesoriaus apkrova būtų paskirstyta daugiau branduolių. Jei visi branduoliai veikia 100%, jūsų programa gali būti susieta su CPU, o ne su tinklu.

Dažniausiai prieinami įrankiai:

  • viršuje
    — Paspauskite 1, kad išplėstumėte procesorių sąrašą ir patikrintumėte, kurie iš jų yra naudojami.
    — Atkreipkite dėmesį į panaudojimo lygį.
    — Atkreipkite dėmesį, kurie procesai išvardyti kaip aktyviausi (sąrašo viršuje).
  • mpstat
    Šis buvęsample komandų eilutė buvo išbandyta naudojant Red Hat Enterprise Linux 7.x.
    Rodomas procesoriaus panaudojimas vienam branduoliui (randant bendrą tuščiosios eigos procentą ir atimant iš 100), o vertės, viršijančios 80 %, paryškinamos raudonai. mpstat -P VISI 1 1 | grep -v Vidutinis | uodega -n +5 | galva -n -1 | awk „{ spausdinti (100–13 USD)}“ | egrep -color=always '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | stulpelyje
  • perf top Ieškokite, kur praleidžiami ciklai.

7.2 i40e skaitikliai
„i40e“ tvarkyklė pateikia ilgą sąsajos derinimo ir stebėjimo skaitiklių sąrašą naudojant komandą ethtool -S ethX. Gali būti naudinga stebėti išvestį, kai vykdomas darbo krūvis, ir (arba) palyginti skaitiklių reikšmes prieš ir po darbo krūvio vykdymo.

  • Norėdami gauti visą i40e skaitiklių sąvartyną: ethtool -S ethX
  • Jei norite žiūrėti tik nulinius skaitiklius: watch -d (ethtool -S ethX) | egrep -v :\ 0 | stulpelyje
    Kai kurie dalykai, kurių reikia ieškoti:
  • rx_dropped reiškia, kad CPU nepakankamai greitai aptarnauja buferius.
  • port.rx_dropped reiškia, kad kažkas nėra pakankamai greitas lizde/atmintyje/sistemoje.

7.3 Tinklo skaitikliai
Patikrinkite netstat -s prieš arba po darbo krūvio vykdymo.
Netstat renka tinklo informaciją iš visų sistemos tinklo įrenginių. Todėl rezultatams gali turėti įtakos kiti tinklai nei bandomasis tinklas. Netstat -s išvestis gali būti geras „Linux“ operacinės sistemos ar branduolio našumo problemų rodiklis. Norėdami gauti daugiau informacijos apie bendrą operacinės sistemos derinimą, žr. operacinės sistemos derinimo vadovus, pvz., „Red Hat Enterprise Linux Network Performance Tuning Guide“.
7.4 Sistemos žurnalai
Patikrinkite, ar sistemos žurnaluose nėra klaidų ir įspėjimų (/var/log/messages, dmesg).
7.5 Intel svr-info įrankis
„Intel“ teikia „svr-info“ įrankį (žr https://github.com/intel/svr-info), skirta „Linux“, kuri fiksuoja atitinkamą aparatinės ir programinės įrangos informaciją iš serverio. svr-info išvestis gali būti labai naudinga nustatant sistemos kliūtis arba nustatymus / derinimus, kurie nėra optimizuoti darbo krūviui. Atidarydami palaikymo dėklą su „Intel“ dėl su eternetu susijusių našumo problemų, būtinai įtraukite svr-info išvestį (tekstas file) kiekvienam Linux serveriui bandomojoje konfigūracijoje.

  1. Atsisiųskite ir įdiekite svr-info:
    wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
    ./svr-info
    > pagrindinio kompiuterio pavadinimas.txt
  2. Surinkite išvestį:
    ./svr-info > pagrindinio kompiuterio pavadinimas.txt
  3. Pridėkite vieną tekstą (.txt) file kiekvienam serveriui į „Intel“ palaikymo atvejį analizei.

Rekomendacijos dėl bendrų veiklos scenarijų

8.1 IP persiuntimas

  • Atnaujinkite branduolį.
    Kai kurie naujausi in-distro branduoliai pablogino maršruto parinkimo našumą dėl branduolio maršruto kodo pakeitimų, pradedant nuo maršruto talpyklos pašalinimo dėl saugumo. Naujausiuose neplatintuose branduoliuose turėtų būti pataisų, kurios sumažintų šių pakeitimų poveikį našumui ir galėtų pagerinti našumą.
  • Išjungti hipergiją (loginius branduolius).
  • Redaguokite branduolio įkrovos parametrus.
    — priverstinai išjungti iommu (intel_iommu=off arba iommu=off) iš branduolio įkrovos eilutės, nebent to reikia virtualizavimui
    — Išjunkite energijos valdymą: processor.max_cstates=1 idle=poll pcie_aspm=off
  • Apribokite eilių skaičių, kad jis būtų lygus vietinio lizdo branduolių skaičiui (12ample). ethtool -L ethX kombinuotas 12
  • Smeigtukai pertraukia tik vietinį lizdą. set_irq_affinity -X local ethX ARBA set_irq_affinity -X local ethX
    PASTABA
    -X arba -x gali būti naudojami priklausomai nuo darbo krūvio.
  • Jei reikia, pakeiskite Tx ir Rx žiedų dydžius. Didesnė vertė reikalauja daugiau išteklių, bet gali užtikrinti geresnius persiuntimo tarifus. ethtool -G ethX rx 4096 tx 4096
  • Išjunkite GRO maršruto kūrimo metu.
    Dėl žinomos branduolio problemos GRO turi būti išjungtas nukreipiant / persiunčiant. ethtool -K ethX gro off kur ethX yra Ethernet sąsaja, kurią reikia modifikuoti.
  • Išjunkite adaptyvų pertraukų moderavimą ir nustatykite statinę reikšmę. ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64

PASTABA
Atsižvelgiant į procesoriaus tipą ir darbo krūvį, RX ir TX sujungimo parametrus galima koreguoti, kad būtų pagerintas našumas (arba mažesnis kadrų praradimas).

  • Išjunkite ugniasienę. sudo systemctl išjungti ugniasienę sudo systemctl sustabdyti ugniasienę
  • Įgalinti IP persiuntimą. sysctl -w net.ipv4.ip_forward=1
  • Konfigūruokite didžiausias priėmimo ir siuntimo lizdų buferio dydžių vertes. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216

PASTABA
Priklausomai nuo darbo krūvio ar reikalavimų, šios reikšmės gali būti pakeistos iš numatytosios.
8.2 Maža delsa

  • IŠJUNKITE hipersriegius (loginius branduolius).
  • Įsitikinkite, kad tinklo įrenginys yra vietinis numa core 0.
  • Prisekite etaloną prie 0 pagrindo naudodami užduočių rinkinį -c 0.
  • Išjunkite irqbalance naudodami systemctl sustabdyti irqbalance arba systemctl išjungti irqbalance
  • Paleiskite giminystės scenarijų, kad paskirstytumėte branduolius. Išbandykite vietinį arba visus.
  • Išjunkite pertraukimo moderavimą. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- high 0
  • Riboti eilių skaičių, kad jis būtų lygus vietinio lizdo branduolių skaičiui (32ample). ethtool -L ethX kombinuotas 32
  • Kaiščių pertraukimai tik vietiniame lizde (scenarijus supakuotas su i40e tvarkyklės šaltiniu). set_irq_affinity -X vietinis ethX
  • Naudokite nusistovėjusį etaloną, pvz., netperf -t TCP_RR, netperf -t UDP_RR arba NetPipe. netperf -t TCP_RR arba netperf -t UDP_RR
  • Prisekite etaloną prie vieno branduolio vietiniame NUMA mazge. užduočių rinkinys -c

Intel® Ethernet 700 serija
Linux našumo derinimo vadovas
2024 m. gruodžio mėn
Dok. Nr.: 334019, red.: 1.2

Dokumentai / Ištekliai

Intel Ethernet 700 serijos Linux našumo derinimas [pdfVartotojo vadovas
334019, „Ethernet 700“ serija „Linux Performance Tuning“, „Ethernet 700“ serija, „Linux Performance Tuning“, „Performance Tuning“, „Tuning“

Nuorodos

Palikite komentarą

Jūsų el. pašto adresas nebus skelbiamas. Privalomi laukai pažymėti *