Intelov logotipIntel® Ethernet 700 Series
Vodnik za prilagajanje zmogljivosti Linuxa
NEX Cloud Networking Group (NCNG)
Rev. 1.2
december 2024

Zgodovina revizij

Revizija Datum Komentarji
1.2 december 2024 · Dodana dodatna navodila za upravljanje porabe energije.
· Dodan Intel* Turbo Boost.
· Dodan zaostanek omrežne naprave.
· Dodane konfiguracije in prilagoditve, specifične za platformo.
· Dodani Intel* %eon* razširljivi procesorji 4. generacije.
· Dodan AMD EPYC.
· Posodobljeno preverjanje zmogljivosti strojne opreme sistema.
· Posodobljen iPerf2.
· Posodobljen iPerf3.
· Posodobljene čakalne vrste Tx/Rx.
· Posodobljeno moderiranje prekinitev.
· Posodobljena velikost prstana.
· Posodobljeno prilagajanje platforme (i40e nespecifično).
· Posodobljene nastavitve BIOS-a.
· Posodobljen nadzor C-State.
· Posodobljeno skaliranje frekvence procesorja.
· Posodobljene nastavitve aplikacije.
· Posodobljene nastavitve operacijskega sistema/jedra.
· Posodobljeno posredovanje IP.
· Posodobljena nizka zakasnitev.
avgust 2023 Spremembe tega dokumenta vključujejo:
· Dodane sorodne reference.
· Dodano Prepričajte se, da se paket DDP pravilno nalaga.
· Dodan iPerf2.
· Dodan iPerf3.
· Dodan netperf.
· Posodobljena afiniteta IRQ.
· Dodane čakalne vrste Tx/Rx.
· Posodobljena velikost prstana.
· Dodani Jumbo okvirji.
· Dodano lepljenje adapterja.
· Dodano orodje Intel svr-info.
1.0 marec 2016 Začetna izdaja (Intel Public).

Uvod

Ta priročnik je namenjen zagotavljanju navodil za prilagajanje okolij za optimalno delovanje omrežja z uporabo omrežnih vmesnikov Intel ® Ethernet 700 Series v okoljih Linux. Osredotoča se na stanje in nastavitve strojne opreme, gonilnika in operacijskega sistema, ki lahko izboljšajo delovanje omrežja. Upoštevati je treba, da lahko na delovanje omrežja vpliva poljubno število zunanjih vplivov, v tem priročniku so zajeti le najpogostejši in najbolj dramatični.
1.1 Povezane reference

Začetni kontrolni seznam

2.1 Posodobite različice gonilnika/vdelane programske opreme
Preverite različice gonilnika/vdelane programske opreme z uporabo ethtool -i ethx.
Po potrebi posodobite naslednje:

2.2 Preberite README
Preverite znane težave in pridobite najnovejša navodila za konfiguracijo v README file vključen v izvorni paket i40e.
2.3 Preverite, ali je vaša reža PCI Express (PCIe) x8
Nekatere reže PCIe x8 so dejansko konfigurirane kot reže x4. Te reže nimajo zadostne pasovne širine za polno linijsko hitrost z napravami z dvojnimi in štirimi vrati. Poleg tega, če adapter, ki podpira PCIe v3.0, vstavite v režo PCIe v2.x, ne morete dobiti polne pasovne širine. Gonilnik programske opreme zazna to situacijo in v sistemski dnevnik zapiše to sporočilo:
Pasovna širina PCI-Express, ki je na voljo za to kartico, ne zadostuje za optimalno delovanje. Za optimalno delovanje je potrebna reža x8 PCI-Express.
Če pride do te napake, premaknite adapter v pravo režo PCIe v3.0 x8, da odpravite težavo.
2.4 Preverite zmogljivost strojne opreme sistema
Pri 10 Gbps, 25 Gbps in 40 Gbps Ethernet obstaja nekaj minimalnih CPE in sistemskih zahtev. Na splošno bi morala sodoben procesor strežniškega razreda in optimalna konfiguracija pomnilnika za vašo platformo zadostovati, vendar se potrebe razlikujejo glede na vašo delovno obremenitev. Vsi pomnilniški kanali morajo biti izpolnjeni in način delovanja pomnilnika mora biti omogočen v BIOS-u. Preverite, ali lahko konfiguracija CPE in pomnilnika podpirata raven zmogljivosti omrežja, ki jo potrebujete za svojo delovno obremenitev.
OPOMBA
XL710 je krmilnik 40 GbE. Adapter 2 x 40 GbE, ki uporablja ta krmilnik, ni namenjen 2 x 40 GbE, ampak 1 x 40 GbE z aktivnimi rezervnimi vrati. Pri poskusu uporabe linijskega prometa, ki vključuje obe vrati, je notranje stikalo zasičeno in skupna pasovna širina med obema vratoma je omejena na skupno SO Gbps.
2.4.1 Parametri zagona jedra
Če je v BIOS-u omogočena tehnologija Intel® Virtualization Technology for Directed I/O (Intel® VT-d), Intel priporoča, da je IOMMU v prehodnem načinu za optimalno delovanje gostiteljskega omrežja. To odpravlja stroške DMA v prometu gostitelja, hkrati pa omogoča, da imajo virtualni stroji (VM) še vedno prednosti Intel® VT-d. To dosežete tako, da zagonskim parametrom jedra dodate naslednjo vrstico: fommu-pt.
2.5 Prepričajte se, da se paket DDP pravilno nalaga
Osnovna gonilnika 140ea in 140eb nimata neposredne podpore za Dynamic Device Personalization (DDP). Za uporabo DDP z napravami serije 700, DDP profile lahko uporabite z aplikacijo testpmd.
Za podrobnosti o DDP profiles, in kako uporabiti DDP profile s testpmd na napravah serije 700 glejte tehnološka navodila Intel® Ethernet 700 Series Dynamic Device Personalization (DDP).
Če želite preveriti, ali je DDP profile je bilo uspešno naloženo:
testpmd> ddp pridobi seznam 0 Profile številka je: 1
OPOMBA
Če je profile število je 0, ni naložen noben paket DDP. V primeru napake pri nalaganju paketa DDP se naprava privzeto nastavi na varni način in številne funkcije delovanja niso na voljo. Če pride do napak, povezanih z nalaganjem paketa DDP, bo to povzročilo težave z delovanjem. Za korake za odpravljanje težav glejte tehnološka navodila za dinamično personalizacijo naprav (DDP) Inte/* Ethernet 700 Series.

Izhodiščne meritve uspešnosti in metodologija prilagajanja

3.1 Merila uspešnosti omrežja
Preden začnete z nastavljanjem, je pomembno, da imate dobro izhodiščno meritev delovanja omrežja. Običajno je poleg začetne meritve zmogljivosti vaše specifične aplikacije/delovne obremenitve dobro uporabiti tudi standardno merilo zmogljivosti omrežja, da preverite, ali je vaša omrežna naprava v dobrem stanju.
Za optimizacijo posameznega sistema sta netperf ali iperf in NetPIPE trdna odprtokodna brezplačna orodja, ki vam omogočajo, da obremenitev povezave in diagnosticirate težave z zmogljivostjo.
Netperf je močan tako za testiranje prepustnosti kot zakasnitve. NetPIPE je specifično orodje za zakasnitve, vendar ga je mogoče prevesti za katero koli okolje.
OPOMBA
Test TCP_RR v netperf vrne zakasnitev v vrednosti transakcij/s. To je povratna številka. Enosmerno zakasnitev je mogoče izračunati z naslednjo enačbo:
Zakasnitev (usec) = (1⁄2) / [Transakcije/s] * 1,000,000
3.1.1 iPerf2
Intel priporoča iperf2 namesto iperf3 za večino situacij primerjalnega testiranja zaradi enostavne uporabe in podpore več niti v enem primerku aplikacije. Intel priporoča izvajanje z možnostjo -P z 2-4 niti za povezave 25G in približno 4-6 niti za povezave 40G.

  • Če želite izvajati enosmerni promet od odjemalca do strežnika: ukaz strežnika example: iperf2 -s
    Ukaz odjemalca nprample: iperf2 -c -P
  • Če želite izvajati dvosmerni promet od odjemalca do strežnika (in obratno): ukaz strežnika example: iperf2 –s –p
    Ukaz odjemalca nprample:
    iperf2 -c -str -P -–polni dupleks ALI
    iperf2 -c -str -P –d

OPOMBA
Možnosti –full-duplex in –d v iperf2 uporabniku omogočata dvosmerno testiranje. Vendar se možnost –full-duplex posebej osredotoča na polno dupleksno testiranje.
OPOMBA
Pri preizkušanju iperf2 na več strežniških vratih je mogoče ukazu strežnika dodati zastavico -d za zagon vseh strežniških sej v ozadju iz istega terminalskega okna. Zastavico -d lahko uporabite tudi, ko je ukaz strežnika vdelan znotraj zanke for v skriptu.
OPOMBA
Pri izvajanju preizkusa prepustnosti omrežja z enim samim tokom/nitjo (nprample: P1), procesorji AMD morda ne bodo zagotovili pričakovane prepustnosti, zlasti omrežne kartice z večjo pasovno širino (če je hitrost >= 25G pasovne širine). Posledično je za doseganje višje prepustnosti potrebna pripenjanje aplikacije na določena jedra. Glejte Nastavitve aplikacije na strani 22.
3.1.2 iPerf3
Če se uporablja iperf3, je za napredovanje potrebnih več primerkov aplikacijetage večnitnih, RSS in čakalnih vrst strojne opreme. Intel priporoča izvajanje z 2-4 sejami aplikacije za povezave 25G in približno 4-6 sejami za povezave 40G. Vsaka seja mora podati edinstveno vrednost vrat TCP z možnostjo -p.

  • Za izvajanje enosmernega prometa od odjemalca do strežnika:
    Ukaz strežnika nprample:
    iperf3 -s -p
    Ukaz odjemalca nprample:
    iperf3 -c -str
  • Za izvajanje dvosmernega prometa od odjemalca do strežnika (in obratno):
    Ukaz strežnika nprample:
    iperf3 –s –p
    Ukaz odjemalca nprample: iperf3 -c -str -P –-bidir
  • Če želite zagnati več primerkov (niti) iperf3, priporočamo uporabo zanke za preslikavo niti v vrata TCP in zagon iperf3 v ozadju z uporabo & za ustvarjanje več procesov vzporedno.
    Ukaz strežnika nprample, zaženite 4 niti: port=””; za i v {0..3}; do port=520$i; bash -c “iperf3 -s -p $port &”; narejeno; Ukaz odjemalca nprample, zaženite 4 niti – Prenos testnih vrat=””; za i v {0..3}; do port=520$i; bash -c “iperf3 -c $serverIP -p $port &”; narejeno; Ukaz odjemalca nprample, zaženi 4 niti – Prejmi testna vrata=””; za i v {0..3}; do port=520$i; bash -c “iperf3 -R -c $serverIP -p $port &”; narejeno; Za povezave 40G povečajte for-loop, da ustvarite do 6 primerkov/niti.

OPOMBA
Pri izvajanju preizkusa prepustnosti omrežja z enim samim tokom/nitjo (nprample: P1), procesorji AMD morda ne bodo zagotovili pričakovane prepustnosti, zlasti večje pasovne širine
NIC (če je hitrost >= 25G pasovne širine). Posledično je za doseganje višje prepustnosti potrebna pripenjanje aplikacije na določena jedra. Glejte Nastavitve aplikacije na strani 22 in AMD EPYC na strani 26.
3.1.3 netperf
Orodje netperf je dobra izbira za testiranje prepustnosti in zakasnitve.

  • Test TCP_STREAM v netperf meri prepustnost naprave. Ukaz strežnika nprample: ukaz odjemalca netserver nprample: netperf -t TCP_STREAM -l 30 -H
  • Test TCP_RR v netperf vrne zakasnitev v vrednosti transakcij/sekundo. To je povratna številka. Priporočljivo je, da uporabite možnost -T x,x, če je x CPE lokalna naprava. Enosmerno zakasnitev je mogoče izračunati z uporabo: Latency(usec)=(1⁄2)/ [Transakcije/sec]*1,000,\ Ukaz strežnika example: omrežni strežnik
    Ukaz odjemalca nprample: netperf -t TCP_RR -l 30 -H -T x,x
  • Če želite zagnati več primerkov (niti) netperf, priporočamo uporabo zanke za preslikavo niti v vrata TCP in zagon netperf v ozadju z uporabo & za ustvarjanje več procesov vzporedno.
    Ukaz strežnika nprample, začni 8 niti:
    vrata=””; za i v {0..7}; do port=520$i; bash -c “netserver -L $serverIP -p $port &”; narejeno;
    Ukaz odjemalca nprample, zaženite 8 niti: port=””; za i v {0..7}; do port=520$i; bash -c “netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &”; narejeno;

3.2 Metodologija prilagajanja
Osredotočite se na eno spremembo nastavitve naenkrat, da boste vedeli, kakšen vpliv ima posamezna sprememba na vaš test. Bolj kot ste metodični v procesu prilagajanja, lažje boste prepoznali in odpravili vzroke za ozka grla v delovanju.

Uglaševanje nastavitev gonilnika i40e

4.1 Afiniteta IRQ
Konfiguriranje afinitete IRQ, tako da so prekinitve za različne omrežne čakalne vrste povezane z različnimi jedri CPE, lahko močno vpliva na zmogljivost, zlasti na večnitnih preizkusih prepustnosti.
Če želite konfigurirati afiniteto IRQ, zaustavite irqbalance in nato uporabite skript set_irq_affinity iz izvornega paketa i40e ali ročno pripnite čakalne vrste. Onemogočite izravnalnik IRQ uporabniškega prostora, da omogočite pripenjanje čakalne vrste:

  • systemctl onemogoči irqbalance
  • systemctl zaustavi irqbalance
    Uporaba skripta set_irq_affinity iz izvornega paketa i40e (priporočeno):
  • Za uporabo vseh jeder:
    [path-to-i40epackage]/scripts/set_irq_affinity -X all ethX
  • Za uporabo samo jeder v lokalni vtičnici NUMA: [path-to-i40epackage]/scripts/set_irq_affinity -X local ethX
  • Izberete lahko tudi vrsto jeder. Izogibajte se uporabi cpu0, ker izvaja naloge časovnika. [path-to-i40epackage]/scripts/set_irq_affinity 1-2 ethX

OPOMBA
Skript afinitete omogoča krmiljenje prenosa paketov (XPS) kot del postopka pripenjanja, ko je podana možnost -x. Ko je XPS omogočen, Intel priporoča, da onemogočite irqbalance, saj lahko uravnoteženje jedra z XPS povzroči nepredvidljivo delovanje. Skript afinitete onemogoči XPS, ko je podana možnost -X. Onemogočanje XPS in omogočanje simetričnih čakalnih vrst je koristno za delovne obremenitve, kjer je najboljša zmogljivost dosežena, ko se promet Tx in Rx servisirata v istem paru(-ih) čakalnih vrst.
Konfiguriranje simetričnih čakalnih vrst v Linuxu vključuje prilagajanje parametrov gonilnika omrežnega vmesnika, da se omogočijo simetrične čakalne vrste za sprejem (Rx) in simetrične čakalne vrste za oddajanje (Tx) za podprte omrežne kartice.
OPOMBA

  • Simetrične čakalne vrste so napredna omrežna funkcija in ne podpirajo jih vsi omrežni adapterji ali gonilniki serije 700.
  • Zagotovite, da imate potreben gonilnik in podporo za strojno opremo, preden poskušate konfigurirati simetrične čakalne vrste.

Če želite konfigurirati simetrične čakalne vrste, sledite tem splošnim korakom:

  1. Uredite konfiguracijo omrežnega vmesnika File: Uporabite urejevalnik besedil (nprample, vi, nano ali gedit) za urejanje konfiguracije omrežnega vmesnika file. The file se običajno nahaja v imeniku /etc/sysconfig/network-scripts/ in ima ime, kot je ifcfg-ethX, kjer je ethX ime vašega omrežnega vmesnika.
  2. Dodajte parametre simetrične čakalne vrste. V konfiguracijo omrežnega vmesnika dodajte naslednje vrstice file: ETHTOOL_OPTS=”rx-čakalne vrste 8 tx-čakalne vrste 8″
  3. Znova zaženite omrežno storitev.
    Ko naredite spremembe, znova zaženite omrežno storitev, da uporabite novo konfiguracijo. sudo systemctl znova zaženite omrežje

Ročno:

  • Poiščite procesorje, priključene na vsako vozlišče, z uporabo: numactl –hardware lscpu
  • Poiščite bitne maske za vsakega od procesorjev:
  • Ob predpostavki jeder 0-11 za vozlišče 0: [1,2,4,8,10,20,40,80,100,200,400,800]
  • Poiščite IRQ-je, dodeljene dodeljenim vratom: grep ethX /proc/interrupts in zabeležite vrednosti IRQ, npr.ample, 181-192 za 12 naloženih vektorjev.
  • Eho vrednosti afinitete SMP v ustrezen vnos IRQ. Upoštevajte, da je to treba narediti za vsak vnos IRQ: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity Prikaži afiniteto IRQ:
  • Za prikaz afinitete IRQ za vsa jedra: /scripts/set_irq_affinity -s ethX
  • Za prikaz samo jeder na lokalni vtičnici NUMA: /scripts/set_irq_affinity -s lokalni ethX
  • Izberete lahko tudi vrsto jeder: /scripts/set_irq_affinity -s 40-0-8,16 ethX

OPOMBA
Skript set_irq_affinity podpira zastavico -s v gonilniku i40e različice 2.16.11 in novejših.
4.2 Čakalne vrste Tx/Rx
Privzeto število čakalnih vrst, ki jih gonilnik ob inicializaciji omogoči za vsaka vrata Ethernet, je enako skupnemu številu CPU-jev, ki so na voljo na platformi. To dobro deluje za številne platforme in konfiguracije delovne obremenitve. Vendar pa lahko na platformah z velikim številom jeder in/ali visoko gostoto ethernetnih vrat ta konfiguracija povzroči spor za vire. Zato bo morda treba v nekaterih primerih spremeniti privzeto za vsaka vrata v sistemu.
Privzeto število čakalnih vrst Tx/Rx se lahko razlikuje glede na določen model in različico gonilnika. Število čakalnih vrst je mogoče prilagoditi z ukazom ethtool -L, ki je naveden spodaj.
OPOMBA
V teh primerih Intel priporoča, da zmanjšate privzeto število čakalnih vrst za posamezna vrata na največ število CPU-jev, ki so na voljo v vozlišču NUMA, ki je lokalno glede na vrata vmesnika. V nekaterih primerih, ko poskušate uravnotežiti vire na implementacijah z velikim številom vrat, bo morda treba to število še dodatno zmanjšati.
Če želite spremeniti konfiguracijo čakalne vrste:
Naslednji example nastavi vrata na 32 čakalnih vrst Tx/Rx: ethtool -L ethX kombinirano 32
Example izhod:
ethtool -l ethX
Parametri kanala za ethX: Prednastavljene največje vrednosti:
RX: 96
TX: 96
Drugo: 1
Skupno: 96
Trenutne nastavitve strojne opreme:
RX: 0
TX: 0
Drugo: 1
Skupno: 32
4.3 Prekinitev moderiranja
Prilagodljivo moderiranje prekinitev je privzeto vklopljeno in je zasnovano tako, da zagotavlja uravnotežen pristop med nizko porabo procesorja in visoko zmogljivostjo. Vendar pa lahko poskusite nastavitve prekinitev prilagoditi ročno, da bodo ustrezale vašemu primeru uporabe.
Razpon 0–235 mikrosekund zagotavlja učinkovit obseg od 4,310 do 250,000 prekinitev na sekundo. Vrednost rx-μsecs-high je mogoče nastaviti neodvisno od rx-μsecs in tx-μsecs v istem ukazu ethtool in je tudi neodvisna od prilagodljivega algoritma za moderiranje prekinitev. Osnovna strojna oprema podpira razdrobljenost v intervalih 2 mikrosekund, zato lahko sosednje vrednosti povzročijo enako stopnjo prekinitev.

  • Če želite izklopiti moderiranje prilagodljivih prekinitev: ethtool -C ethX adaptive-rx off adaptive-tx off
  • Če želite vklopiti moderiranje prilagodljivih prekinitev: ethtool -C ethX adaptive-rx on adaptive-tx on

Dober začetek za splošno nastavitev je 84 μs ali ~12000 prekinitev/s. Če vidite, da se števci rx_dropped izvajajo med prometom (z uporabo ethtool -S ethX), potem imate verjetno prepočasen CPE, premalo medpomnilnikov glede na velikost obroča adapterja (ethtool -G), da bi zadržali pakete 84 μs ali nizko stopnjo prekinitve.

  • Za nastavitev moderiranja prekinitev na fiksno hitrost prekinitev 84 μs med prekinitvami (12000 prekinitev/s): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 Naslednja vrednost, ki jo lahko preizkusite, je 62 μs, če niste dosegli maksimalne obremenitve CPE. To uporablja več CPE-ja, vendar servisira hitrejše medpomnilnike in zahteva manj deskriptorjev (velikost obroča, ethtool -G).
  • Za nastavitev moderiranja prekinitev na fiksno hitrost prekinitev 62 usek med prekinitvami (16000 prekinitev/s). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
    Če se števci rx_dropped povečajo med prometom (z uporabo ethtool -S ethX), imate verjetno prepočasen CPE, premalo medpomnilnikov zaradi velikosti obroča adapterja (ethtool -G) ali prenizko stopnjo prekinitev. Če niste dosegli maksimalne obremenitve procesorja, lahko povečate stopnjo prekinitev z znižanjem vrednosti ITR. To uporablja več CPE-ja, vendar storitve medpomnilnik hitreje in zahtevajo manj deskriptorjev (velikost obroča, ethtool -G).
    Če je vaš CPE na 100 %, povečanja stopnje prekinitev ni priporočljivo. V določenih okoliščinah, kot je delovna obremenitev CPE, boste morda želeli povečati vrednost μs, da omogočite več časa CPE za druge aplikacije.
    Če potrebujete zmogljivost z nizko zakasnitvijo in/ali imate veliko procesorja, ki ga lahko posvetite omrežni obdelavi, lahko v celoti onemogočite moderiranje prekinitev, kar omogoča, da se prekinitve sprožijo čim hitreje.
  • Če želite onemogočiti moderiranje prekinitev ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0

OPOMBA
Pri izvajanju z onemogočenim moderiranjem prekinitev je lahko stopnja prekinitev v vsaki čakalni vrsti zelo visoka. Razmislite o vključitvi parametra rx-usec-high, da nastavite zgornjo mejo stopnje prekinitev. Naslednji ukaz onemogoči prilagodljivo moderiranje prekinitve in dovoli največ 5 mikrosekund, preden nakaže, da je sprejem ali prenos končan. Namesto da bi povzročil kar 200,000 prekinitev na sekundo, omeji skupno število prekinitev na sekundo na 50,000 prek parametra rx-usec-high. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 20 rx-usecs 5 txusec 5 Poskusite prilagoditi združevalni časovnik oddajanja/sprejemanja/visoke prioritete višje (80/100/150/200) ali nižje (25/20/10/5), da najdete optimalno vrednost za delovno obremenitev.
4.4 Velikost prstana
Če vidite števce rx_dropped v orodju ethtool -S ethX (rx_dropped, rx_dropped.nic) ali sumite na pritisk predpomnilnika z več aktivnimi čakalnimi vrstami, lahko poskusite prilagoditi velikost obroča s privzete vrednosti. Privzeta vrednost je 512, največja vrednost je 4096.

  • Če želite preveriti trenutne vrednosti: ethtool -g ethX
    Če obstaja sum, da pomanjkanje medpomnilnika povzroča padce pri trenutni stopnji prekinitev, lahko najprej poskusite z največjo vrednostjo, nato z najmanjšo, nato pa nadaljujete z binarnim iskanjem, dokler ne vidite optimalne zmogljivosti.
    Če sumite na pritisk predpomnilnika (aktivnih je veliko čakalnih vrst), lahko zmanjšanje vmesnih pomnilnikov od privzetih pripomore k učinkovitejšemu delovanju Intel® Data Direct I/O (Intel® DDIO). Intel priporoča poskus 128 ali 256 na čakalno vrsto, pri čemer se zavedajte, da bo morda potrebno povečanje stopnje prekinitev prek ethtool -C, da se izognete povečanju rx_dropped.
  • Za nastavitev velikosti obroča na fiksno vrednost: ethtool -G eth12 rx 256 tx 256

OPOMBA
Če želite popraviti padce paketov Rx, ugotovljene z ethtool -S ethX|grep drop, razmislite o povečanju velikosti obroča na 4096. Poskusite najti najboljšo nastavitev za delovno obremenitev, vendar bodite pozorni na prekomerno uporabo pomnilnika z višjimi vrednostmi.
4.5 Nadzor pretoka
Nadzor pretoka ravni 2 lahko znatno vpliva na zmogljivost TCP in ga je priporočljivo onemogočiti za večino delovnih obremenitev. Morebitna izjema je hiter promet, kjer izbruhi niso dolgotrajni.
Nadzor pretoka je privzeto onemogočen.

  • Če želite omogočiti nadzor pretoka: ethtool -A ethX rx on tx on
  • Če želite onemogočiti nadzor pretoka: ethtool -A ethX rx off tx off

OPOMBA
Če želite uspešno omogočiti nadzor pretoka, morate imeti povezovalnega partnerja, ki je zmožen nadzora toka.
4.6 Jumbo okvirji
Ko je pričakovano prometno okolje sestavljeno iz velikih blokov podatkov, ki se prenašajo, bi bilo morda koristno omogočiti funkcijo velikega okvirja. Podpora za Jumbo Frames je omogočena s spremembo največje enote prenosa (MTU) na vrednost, ki je večja od privzete vrednosti 1500. To napravi omogoča prenos podatkov v večjih paketih v omrežnem okolju. Ta nastavitev lahko izboljša prepustnost in zmanjša uporabo CPE-ja za velike V/I delovne obremenitve. Vendar pa lahko vpliva na majhne pakete ali delovne obremenitve, občutljive na zakasnitev.
OPOMBA
Veliki okvirji ali večja nastavitev MTU morajo biti pravilno konfigurirana v vašem omrežnem okolju.
Za povečanje velikosti MTU uporabite ukaz ifconfig. Na primerample, vnesite naslednje, kjer je številka vmesnika: ifconfig mtu 9000 gor
Lahko pa uporabite ukaz ip na naslednji način: ip link set mtu 9000 dev ip link set up dev

Nastavitev platforme (i40e nespecifično)

5.1 Nastavitve BIOS-a

  • Omogočite Intel® VT-d za virtualizacijske delovne obremenitve.
  • Hyper-threading (logični procesorji) lahko vpliva na zmogljivost. Eksperimentirajte z vklopom ali izklopom glede na svojo delovno obremenitev.
  • Intel® Turbo Boost omogoča, da jedra CPE delujejo pri višji frekvenci od osnovne frekvence CPE. Če omogočite Intel® Turbo Boost, lahko izboljšate zmogljivost za številne delovne obremenitve, vendar porabite več energije, da ohranite jedra pri višji frekvenci. Eksperimentirajte z izklopom/vklopom Turbo Boost za svojo delovno obremenitev.

OPOMBA
Turbo frekvence niso zagotovljene, če ima platforma visoko splošno izkoriščenost procesorja. Višje jedrne turbo frekvence se zmanjšajo, ko se splošna izkoriščenost procesorja poveča.
5.2 Upravljanje porabe energije
Upravljanje porabe lahko vpliva na zmogljivost, zlasti pri delovnih obremenitvah z nizko zakasnitvijo. Če je zmogljivost pomembnejša od zmanjšanja porabe energije, Intel priporoča, da poskusite omejiti učinke upravljanja porabe energije. Obstaja veliko različnih načinov za omejitev upravljanja porabe energije z orodji operacijskega sistema, nastavitvami BIOS-a in zagonskimi parametri jedra. Izberite najboljšo metodo in raven, ki ustreza vašemu okolju.
5.2.1 Nadzor stanja C
Omejitev vstopa v stanje C na CO ali C1 izboljša zmogljivost in poveča izkoristek energije.
Če onemogočite vnos stanja paketa CPE C6, lahko izboljšate delovanje omrežja. Vendar to poveča porabo energije.
Na voljo so naslednje možnosti:

  • Dinamično nadzirajte vnos C-stanja:
    Odpri
    /dev/cpu_dma_latency in vanj zapišite največjo dovoljeno zakasnitev.

OPOMBA
Obstaja majhen program, imenovan cpudmalatency.c, ki ga je mogoče prenesti iz odprtokodne skupnosti, prevesti in zagnati iz ukazne vrstice, da naredi točno to.
Naslednji example dovoljuje pet μs časa bujenja in tako omogoča vnos C1: cpudmalatency 5 &

  • Omejite največje C-stanje v nastavitvah zagona jedra:
    Za procesorje Intel: intel_idle.max_cstates=1
    Za procesorje, ki niso Intelovi: processor.max_cstates=1
  • Z ukazom cpupower preverite in onemogočite stanje CPU C6: Preverite: cpupower monitor ali cpupower idle-info
    Onemogoči C6: cpupower idle-set -d3 oz
    Onemogoči stanja C: cpupower idle-set -D0

Opombe:

  1. Onemogočite C-stanje na CPE, če ima strežnik procesor(je) Intel® Xeon® Scalable 4. generacije. Ko je Hyper Threading omogočen ali onemogočen, onemogočanje stanj nedejavnosti (-D0) prepreči, da bi jedra med obdobji nedejavnosti prešla v stanja nizke porabe energije, in zmanjša zakasnitev CPE-ja pri prehodu med stanjem nedejavnosti in aktivnim stanjem.
  2. Upravljanje porabe energije razširljivega procesorja Intel® 4. generacije Intel® Xeon® je izjemno agresivno. Če želite preprečiti, da bi jedra prešla v stanje nizke porabe energije, poskusite zmanjšati število jeder v uporabi, da jih ohranite budne dlje (ethtool -L kombinirano ). Prav tako povežite prekinitve na določena jedra z uporabo nastavljene afinitete irq (najpogosteje z -x local ali seznamom jeder CPE) in zagotovite, da se delovna obremenitev izvaja na teh istih jedrih z taskset ali numactl. To izboljša zmogljivost z ohranjanjem aktivnih jeder in optimizacijo obravnavanja prekinitev.

Omogoči C6:
cpupower idle-set -d3
Omogoči stanja C:
cpupower idle-set -E

  • Druga metoda je uporaba prilagojenega orodja (vključenega v številne distribucije Linuxa) za nastavitev profesionalne zmogljivostifile. Ti profiles spremenite več nastavitev operacijskega sistema, ki lahko vplivajo na delovanje številnih aplikacij. Ugotovljeno je bilo, da omrežna prepustnost profile zagotavlja izboljšanje večine delovnih obremenitev.
    Preverite:
    tuned-adm aktiven
    Set:
    tuned-adm profile prepustnost omrežja
    OPOMBA
    Nastavljena storitev mora delovati za zgornje ukaze. Za preverjanje/ponovni zagon, tuned: systemctl status tuned systemctl restart tuned
    Prav tako lahko onemogočite kateri koli vnos C-state tako, da v zagonsko vrstico jedra dodate naslednje:
    mirovanje=anketa
  • Omejite C-stanje prek nastavitev za upravljanje porabe v BIOS-u sistema, ki bi lahko bile učinkovitejšefile na voljo.
    Orodja, kot je turbostat ali x86_energy_perf_policy, lahko uporabite za preverjanje ali nastavitev nastavitev upravljanja porabe energije.

5.2.2 Upravljanje napajanja PCIe
Upravljanje porabe v aktivnem stanju (ASPM) omogoča nižje stanje porabe za povezave PCIe, ko niso v aktivni uporabi. To lahko povzroči večjo zakasnitev na omrežnih napravah PCIe, zato Intel priporoča, da onemogočite ASPM za delovne obremenitve, občutljive na zakasnitev. Onemogočite ASPM tako, da v zagonsko vrstico jedra dodate naslednje: pcie_aspm=off
5.2.3 Skaliranje frekvence procesorja
Skaliranje frekvence procesorja (ali skaliranje hitrosti procesorja) je tehnika upravljanja porabe energije v Linuxu, pri kateri se sistemska takt prilagaja sproti, da se prihrani energija in toplota. Tako kot C-stanja lahko tudi to povzroči neželeno zakasnitev omrežnih povezav.
Orodje cpupower lahko uporabite tudi za preverjanje in spreminjanje privzetih nastavitev in omejitev zmogljivosti procesorja:

  • Preverite: cpupower monitor oz
  • Nastavite procesorje v način delovanja: cpupower frequency-set -g performance

OPOMBA
Spremembe omejitev frekvence CPE lahko vplivajo na številne delovne obremenitve in lahko onemogočijo druge funkcije, kot je turbo način CPE.
Če želite onemogočiti skaliranje frekvence procesorja, onemogočite storitev napajanja procesorja z naslednjimi ukazi:
systemctl zaustavi cpupower.service
systemctl onemogoči cpupower.service
5.2.4 Dodatna navodila za upravljanje porabe energije
Dodatne podrobnosti so na voljo v tem pregledu na visoki ravniview številnih funkcij za upravljanje porabe energije v procesorjih Intel® Xeon® Scalable 3. generacije, kot tudi navodila o tem, kako je mogoče te funkcije integrirati na ravni platforme: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Intel® Turbo Boost po potrebi pospeši procesor, vendar lahko porabi dodatno energijo. Če izklopite Turbo Boost, procesor ohranja enakomerno hitrost, kar vam zagotavlja dosledno raven zmogljivosti za določene delovne obremenitve.
5.4 Požarni zidovi
Požarni zidovi lahko vplivajo na zmogljivost, zlasti na zmogljivost zakasnitve.
Onemogočite iptables/firewalld, če ni potreben.
5.5 Nastavitve aplikacije
Pogosto ena nit (ki ustreza eni omrežni čakalni vrsti) ne zadostuje za doseganje največje pasovne širine. Nekatere arhitekture platform, kot je AMD, običajno izpustijo več paketov Rx z eno samo nitjo v primerjavi s platformami s procesorji, ki temeljijo na Intelu.
Razmislite o uporabi orodij, kot sta taskset ali numactl, da pripnete aplikacije na vozlišče NUMA ali jedra CPE lokalno na omrežno napravo. Pri nekaterih delovnih obremenitvah, kot je V/I za shranjevanje, je premik aplikacije na nelokalno vozlišče korist.
Če je mogoče, poskusite povečati število niti, ki jih uporablja vaša aplikacija.
5.6 Različica jedra
Večina sodobnih vgrajenih jeder je razmeroma dobro optimiziranih za zmogljivost, vendar lahko posodobitev jedra zagotovi izboljšano zmogljivost, odvisno od vašega primera uporabe. Prenos izvorne kode vam prav tako omogoča, da omogočite/onemogočite določene funkcije pred gradnjo jedra.
5.7 Nastavitve operacijskega sistema/jedra
Za več vpogleda v splošno prilagajanje operacijskega sistema si oglejte vodnike za nastavitev operacijskega sistema, kot je Red Hat Enterprise Linux Network Performance Tuning Guide.
Nekateri pogosti parametri za nastavitev so navedeni v naslednji tabeli. Upoštevajte, da so to samo predlagane izhodiščne točke in če jih spremenite s privzetih vrednosti, lahko povečate vire, uporabljene v sistemu. Čeprav lahko povečanje vrednosti pomaga izboljšati zmogljivost, je treba eksperimentirati z različnimi vrednostmi, da ugotovimo, kaj najbolje deluje za dani sistem, delovno obremenitev in vrsto prometa.
Parametre jedra je mogoče konfigurirati s pomočjo pripomočka sysctl v Linuxu, kot je navedeno spodaj.
Za view privzete vrednosti za rmem in wmem v sistemu:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
Nastavite vrednosti na max (16 MB):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Velikosti medpomnilnika vtičnic, znane tudi kot sprejemni medpomnilnik (rmem) in oddajni medpomnilnik (wmem), so sistemski parametri, ki določajo količino pomnilnika, rezerviranega za dohodni in odhodni omrežni promet.
Zagon sysctl brez argumenta -w prikaže parameter s trenutno nastavitvijo.

Nastavitev sklada Opis
net.core.rmem_default Privzeta velikost okna za sprejem
net.core.wmem_default Privzeta velikost okna za prenos
net.core.rmem_max Največja velikost okna za sprejem
net.core.wmem_max Največja velikost oddajnega okna
net.core.optmem_max Največja možnost pomnilniških medpomnilnikov
net.core.netdev_max_backlog Zaostanek neobdelanih paketov, preden začne jedro padati
net.ipv4.tcp_rmem Rezervator pomnilnika za medpomnilnike za branje TCP
net.ipv4.tcp_wmem Rezervator pomnilnika za medpomnilnike pošiljanja TCP

Parametri jedra, omrežnega sklada, upravljalnika pomnilnika, hitrosti procesorja in upravljanja porabe energije lahko močno vplivajo na delovanje omrežja. Običajno priporočilo je, da uporabite omrežno prepustnost profile z uporabo uglašenega ukaza. To spremeni nekaj nastavitev operacijskega sistema, da daje prednost omrežnim aplikacijam.
Preverite:
tuned-adm aktiven
Set:
tuned-adm profile prepustnost omrežja
5.8 Zaostanek omrežne naprave
Ta funkcija pomaga izboljšati zmogljivost omrežja z učinkovitim upravljanjem dohodnega prometa, zmanjšanjem izgube paketov, nižjo zakasnitvijo in povečanjem prepustnosti. To vodi do boljše uporabniške izkušnje in hitrejšega odziva sistema.
Privzeto je omogočen v večini operacijskih sistemov Linux. Če želite preveriti privzeto vrednost:
sysctl net.core.netdev_max_backlog
Največja vrednost za netdev_max_backlog se lahko razlikuje glede na dejavnike, kot so različica jedra, strojna oprema, pomnilnik in delovna obremenitev. V mnogih primerih se 8192 šteje za dobro vrednost. sysctl -w net.core.netdev_max_backlog=8192
5.9 Konfiguracije in prilagajanje, specifične za platformo
5.9.1 Razširljivi procesorji Intel® Xeon® 4. generacije

Upravljanje porabe energije procesorja Intel® Xeon® Scalable Intel® 4. generacije je izjemno agresivno v primerjavi s procesorji Intel® Xeon® Scalable 3. generacije. Če želite preprečiti, da bi jedra prešla v stanje nizke porabe energije, poskusite zmanjšati število uporabljenih jeder, da bodo ostala budna dlje.
Priporočene nastavitve Bios za najvišjo zmogljivost

  1. Omogoči/onemogoči Hyper-threading (glede na zahteve glede delovne obremenitve in ciljev zmogljivosti) na CPE.
  2. Nastavite sistem profile do Performance za največjo zmogljivost.
    OPOMBA
    Posledica tega je večja poraba energije
  3. Nastavite upravljanje porabe CPE na Maximum Performance, da daste prednost največji zmogljivosti CPE pred energetsko učinkovitostjo.
  4. Omogoči Turbo Boost. Če onemogočite Turbo Boost v sistemskih nastavitvah BIOS-a, CPE običajno prepreči dinamično povečanje takta nad osnovno frekvenco.
  5. OPOMBA
    Onemogočanje funkcije Turbo Boost je morda primerno za določene primere uporabe, kjer imajo dosledno delovanje, energetska učinkovitost ali toplotno upravljanje prednost pred največjo zmogljivostjo.
  6. Izklopite funkcijo Single Root I/O Virtualization (SR-IOV), če sistem ne uporablja virtualizacijskih tehnologij.
  7. Onemogočite C-stanje, da naročite CPE-ju, naj ostane aktiven in prepreči vstop v globlje stanje mirovanja.
  8. Onemogočite C1E, da zagotovite, da CPE ostane aktiven in ne preide v stanje mirovanja C1E.
  9. Nastavite uncore frekvenco na največjo vrednost, da sistemu naročite delovanje na najvišji razpoložljivi frekvenci.
  10. Na platformah Dell nastavite emulacijo jedra za več APIC Description Table (MADT) na Linear (ali Round-Robin, odvisno od BIOS-a), da zagotovite jasno in predvidljivo preslikavo jeder CPU.

Priporočene nastavitve ravni OS za optimizirano delovanje

  1. Nastavite regulator frekvence CPE na zmogljivost. cpupower frekvenca-nastavitev -g zmogljivost cpupower frekvenca-info
  2. Onemogoči stanja C. cpupower idle-set -D0
  3. Nastavite jedrna medpomnilnika Rx (rmem) in Tx (wmem) na največjo vrednost. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
  4. Nastavite zaostanek omrežne naprave. sysctl -w net.core.netdev_max_backlog=8192
  5. Nastavite uglašenega profesionalcafile (odvisno od delovne obremenitve za prepustnost/zakasnitev).
    tuned-adm profile prepustnost omrežja

Priporočene nastavitve ravni adapterja za optimizirano delovanje

  1. Omejite število čakalnih vrst za promet aplikacij. Uporabite minimalno število čakalnih vrst, ki je potrebno, da ostanejo povezana jedra CPU aktivna, da jim preprečite vstop v globlja stanja mirovanja (prilagodite se delovni obremenitvi): ethtool -L kombinirano 32
  2. Nastavite stopnje moderiranja prekinitev. ethtool -C adaptive-rx izklopljen adaptive-tx izklopljen rx-usecs-high 50 rx-usecs 50 tx-usecs 50
    Poskusite prilagoditi časovnik združevanja oddajanja/sprejemanja/visoke prioritete višje (80/100/150/200) ali nižje (25/20/10/5), da najdete optimalno vrednost za delovno obremenitev.
  3. Nastavite velikosti obročev Rx/Tx. ethtool -G rx 4096 tx 4096
    OPOMBA
    Če vidite, da paket Rx pade z ethtool -S| grep, poskusite zmanjšati velikost obroča na <4096. Poskusite najti optimalno vrednost za delovno obremenitev, kjer se paketi ne spustijo.
  4. Nastavite afiniteto IRQ. Uporabite jedra, lokalna za NIC, ali posebno preslikavo jeder (kjer je # jeder enako številu čakalnih vrst, nastavljenih v 1 na strani 26. systemctl stop irqbalance set_irq_affinity -X local ALI set_irq_affinity -X

5.9.2 AMD EPYC
Procesorji AMD EPYC so zmogljivi procesorji, izdelani za strežnike in podatkovne centre, zgrajeni na AMD-jevi arhitekturi Zen. Spodnje nastavitve so iz AMD-jeve 4. generacije serije EPYC.
Priporočene nastavitve BIOS-a za najvišjo zmogljivost

  1. Omogočite način po meri, da uporabnikom omogočite prilagajanje zmogljivosti procesorja, porabe energije in drugih nastavitev. To pomaga pri fini nastavitvi sistema za najboljše ravnovesje med zmogljivostjo in energetsko učinkovitostjo.
  2. Omogočite povečanje zmogljivosti jedra, da omogočite CPE-ju, da samodejno poveča svojo hitrost za obvladovanje intenzivnejših nalog in izboljša splošno zmogljivost.
  3. Onemogočite globalni nadzor stanja C, da CPE-ju preprečite vstop v globlja stanja varčevanja z energijo, znana kot stanja C, ki lahko ohranijo odzivnost.
    OPOMBA
    Onemogočanje C-stanj lahko povzroči dodatno porabo energije in zviša toplotne temperature. Spremljajte oboje glede delovne obremenitve.
  4. Omogoči/onemogoči hkratno večnitno obdelavo (SMT) v CPE-ju glede na delovno obremenitev in cilje glede zmogljivosti. SMT je enakovreden Hyper Threading na procesorjih Intel.
    OPOMBA
    Za optimizirano zmogljivost si oglejte Prilagajanje nastavitev gonilnika i40e na strani 13 in Uravnavanje platforme (i40e nespecifično) na strani 19 za priporočeno nastavitev ravni OS in adapterja.

Lepljenje adapterja

Linux bonding je zmogljiva funkcija, ki lahko bistveno izboljša zmogljivost omrežja, redundanco in toleranco napak v strežniških okoljih. Vendar je pomembno upoštevati, da za pravilno delovanje potrebuje združljivo omrežno strojno opremo in ustrezno konfiguracijo tako na strežniku kot na stikalu.
Gonilnik povezovanja v Linuxu omogoča združevanje več fizičnih omrežnih vmesnikov v povezani vmesnik. Ta vezan vmesnik se prikaže kot en sam virtualni omrežni vmesnik za operacijski sistem in aplikacije.
OPOMBA
Veza je logični vmesnik, zato ni mogoče nastaviti afinitete CPU neposredno na vmesniku povezave (npr.ample, vez0). To pomeni, da nima neposrednega nadzora nad obravnavanjem prekinitev ali afiniteto CPU. Afiniteto CPE je treba konfigurirati za osnovne vmesnike, ki so del povezave.
Bonding omogoča več načinov delovanja, od katerih ima vsak svoje značilnosti.

Način  Vrsta
0 Round Robin
1 Aktivno varnostno kopiranje
2 XOR
3 Oddaja
4 LACP
5 Ravnovesje obremenitve prenosa
6 Prilagodljivo ravnotežje obremenitve

V Linuxu obstajajo različni načini za ustvarjanje vezi. Ena najpogostejših metod je uporaba omrežne konfiguracije files (nprample, /etc/network/ vmesniki ali /etc/sysconfig/network-scripts/ifcfg-bondX).
Konfiguracija z uporabo omrežne konfiguracije Files
Naslednji koraki ustvarijo povezavo skozi konfiguracijo omrežja files.

  1. Izberite dve ali več vrat NIC za povezovanje (nprample, ethX in ethY)
  2. Odprite konfiguracijo omrežne kartice Files pod /etc/sysconfig/network-scripts/ za potreben vmesnik NIC (npr.ample, vi ifcfg-ethX in vi ifcfg-ethY) in dodajte naslednje besedilo:
    MASTER=bondN [Opomba: N je celo število za omembo številke obveznice.] SLAVE=yes
  3. Ustvarite vezni omrežni skript file z uporabo vi /etc/sysconfig/networkscripts/ifcfg-bondN in vnesite naslednje besedilo:
    DEVICE=bondN [Opomba: N je celo število, ki omenja številko veze] ONBOOT=da USERCTL=ne BOOTPROTO=dhcp (ali) nič
    IPADDR=200.20.2.4 [zahtevan, če BOOTPROTO=ni] NETMASK=255.255.255.0 [zahtevan, če je BOOTPROTO=ni] NETWORK=200.20.2.0 [zahtevan, če je BOOTPROTO=ni] BROADCAST=200.20.2.255 [zahtevan, če BOOTPROTO=brez] BONDING_OPTS=”mode=1 miimon=100″
    OPOMBA
    Način je lahko poljubno celo število od 0 do 6 glede na zahtevo.
  4. Ponovno zaženite omrežne storitve z uporabo storitvenega ponovnega zagona omrežja ali systemctl znova zaženite NetworkManager.service

Odpravljanje težav z delovanjem

7.1 Izkoriščenost procesorja
Med izvajanjem delovne obremenitve preverite izkoriščenost procesorja na jedro.
Upoštevajte, da je izkoriščenost na jedro pomembnejša za zmogljivost kot splošna izkoriščenost CPE-ja, saj daje predstavo o izkoriščenosti CPE-ja na omrežno čakalno vrsto. Če imate samo nekaj niti, ki izvajajo omrežni promet, boste morda uporabljali le nekaj jeder. Če pa so ta jedra 100-odstotna, je prepustnost vašega omrežja verjetno omejena z uporabo procesorja in čas je, da izvedete naslednje:

  1. Nastavite moderiranje IRQ/velikost zvonjenja, kot je podrobno opisano v moderiranju prekinitev.
  2. Povečajte število niti aplikacije, da porazdelite obremenitev CPE na več jeder. Če vsa jedra delujejo pri 100 %, je vaša aplikacija morda vezana na CPE in ne na omrežje.

Splošno dostopna orodja:

  • vrh
    — Pritisnite 1, da razširite seznam procesorjev in preverite, kateri se uporabljajo.
    — Upoštevajte stopnjo izkoriščenosti.
    — Opazite, kateri procesi so navedeni kot najbolj aktivni (na vrhu seznama).
  • mpstat
    Naslednji exampukazna vrstica je bila testirana na Red Hat Enterprise Linux 7.x.
    Prikaže izkoriščenost procesorja na jedro (z iskanjem skupnega odstotka nedejavnosti in odštevanjem od 100) in poudari vrednosti nad 80 % z rdečo. mpstat -P VSE 1 1 | grep -v Povprečje | rep -n +5 | glava -n -1 | awk '{ print (100-$13)}' | egrep -color=vedno '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | stolpec
  • perf top Poiščite, kje se cikli porabljajo.

7.2 i40e Števci
Gonilnik i40e nudi dolg seznam števcev za odpravljanje napak vmesnika in nadzor prek ukaza ethtool -S ethX. Koristno je opazovati izhod med izvajanjem delovne obremenitve in/ali primerjati vrednosti števca pred in po izvajanju delovne obremenitve.

  • Če želite dobiti popoln izpis števcev i40e: ethtool -S ethX
  • Za opazovanje samo neničelnih števcev: watch -d (ethtool -S ethX) | egrep -v :\ 0 | stolpec
    Nekaj ​​stvari, na katere morate iskati:
  • rx_dropped pomeni, da CPE ne servisira medpomnilnikov dovolj hitro.
  • port.rx_dropped pomeni, da nekaj ni dovolj hitro v reži/pomnilniku/ sistemu.

7.3 Omrežni števci
Preverite netstat -s pred/po izvajanju delovne obremenitve.
Netstat zbira podatke o omrežju iz vseh omrežnih naprav v sistemu. Zato lahko na rezultate vplivajo omrežja, ki niso preizkušeno. Izhod iz netstat -s je lahko dober pokazatelj težav z zmogljivostjo v operacijskem sistemu ali jedru Linux. Za več vpogleda v splošno prilagajanje operacijskega sistema si oglejte vodnike za nastavitev operacijskega sistema, kot je Red Hat Enterprise Linux Network Performance Tuning Guide.
7.4 Sistemski dnevniki
Preverite sistemske dnevnike za napake in opozorila (/var/log/messages, dmesg).
7.5 Orodje Intel svr-info
Intel ponuja orodje svr-info (glejte https://github.com/intel/svr-info) za Linux, ki zajema ustrezne podrobnosti o strojni in programski opremi s strežnika. Izhod svr-info je lahko izjemno koristen za prepoznavanje ozkih grl v sistemu ali nastavitev/prilagoditev, ki niso optimizirane za delovno obremenitev. Ko pri Intelu odprete primer podpore za težave z zmogljivostjo, povezane z ethernetom, ne pozabite vključiti izhoda svr-info (besedilo file) za vsak strežnik Linux v preskusni konfiguraciji.

  1. Prenesite in namestite svr-info:
    wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
    ./svr-info
    > imegostitelja.txt
  2. Zberi izhod:
    ./svr-info > imegostitelja.txt
  3. Pripni eno besedilo (.txt) file za vsak strežnik vašemu primeru Intelove podpore za analizo.

Priporočila za pogoste scenarije delovanja

8.1 Posredovanje IP

  • Posodobite jedro.
    Nekatera nedavna jedra v distribuciji so poslabšala zmogljivost usmerjanja zaradi sprememb jedra v kodi usmerjanja, začenši z odstranitvijo predpomnilnika usmerjanja zaradi varnosti. Najnovejša jedra zunaj distribucije bi morala imeti popravke, ki ublažijo vpliv teh sprememb na zmogljivost in lahko zagotovijo izboljšano zmogljivost.
  • Onemogoči hipernitnost (logična jedra).
  • Uredite zagonske parametre jedra.
    — Prisilno izklopite iommu (intel_iommu=off ali iommu=off) iz zagonske vrstice jedra, razen če je to potrebno za virtualizacijo
    — Izklop upravljanja porabe energije: processor.max_cstates=1 idle=poll pcie_aspm=off
  • Omejite število čakalnih vrst tako, da bo enako številu jeder na lokalni vtičnici (12 v tem primeruample). ethtool -L ethX kombinirano 12
  • Pin prekinitve samo na lokalno vtičnico. set_irq_affinity -X lokalni ethX ALI set_irq_affinity -X lokalni ethX
    OPOMBA
    Uporabite lahko -X ali -x, odvisno od delovne obremenitve.
  • Po potrebi spremenite velikosti obročev Tx in Rx. Večja vrednost zahteva več virov, vendar lahko zagotovi boljše stopnje posredovanja. ethtool -G ethX rx 4096 tx 4096
  • Onemogoči GRO pri usmerjanju.
    Zaradi znane težave z jedrom mora biti GRO izklopljen pri usmerjanju/posredovanju. ethtool -K ethX gro off, kjer je ethX vmesnik Ethernet, ki ga je treba spremeniti.
  • Onemogočite prilagodljivo moderiranje prekinitev in nastavite statično vrednost. ethtool -C ethX adaptive-rx izklopljen adaptive-tx izklopljen ethtool -C ethX rx-usecs 64 tx-usecs 64

OPOMBA
Odvisno od vrste procesorja in delovne obremenitve je mogoče parametre združevanja za RX in TX prilagoditi za izboljšano zmogljivost (ali manjšo izgubo okvirja).

  • Onemogočite požarni zid. sudo systemctl onemogoči požarni zid sudo systemctl zaustavi požarni zid
  • Omogoči posredovanje IP. sysctl -w net.ipv4.ip_forward=1
  • Konfigurirajte največje vrednosti za velikost medpomnilnika vtičnice za prejemanje in pošiljanje. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216

OPOMBA
Odvisno od delovne obremenitve ali zahteve je mogoče te vrednosti spremeniti s privzetih.
8.2 Nizka zakasnitev

  • Izklopite hipernitnost (logična jedra).
  • Zagotovite, da je omrežna naprava lokalna na numa core 0.
  • Pripnite merilo uspešnosti na jedro 0 z uporabo taskset -c 0.
  • Izklopite irqbalance z uporabo systemctl stop irqbalance ali systemctl disable irqbalance
  • Zaženite afinitetni skript za širjenje po jedrih. Poskusite lokalno ali vse.
  • Izklopite moderiranje prekinitev. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- high 0
  • Omejite število čakalnih vrst, da bo enako številu jeder na lokalni vtičnici (32 v tem primeruample). ethtool -L ethX kombinirano 32
  • Pripni prekinitve samo na lokalni vtičnici (skript je pakiran z virom gonilnika i40e). set_irq_affinity -X lokalni ethX
  • Uporabite uveljavljeno merilo uspešnosti, kot je netperf -t TCP_RR, netperf -t UDP_RR ali NetPipe. netperf -t TCP_RR ali netperf -t UDP_RR
  • Pripni merilo uspešnosti na eno jedro v lokalnem vozlišču NUMA. nabor nalog -c

Intel® Ethernet 700 Series
Vodnik za prilagajanje zmogljivosti Linuxa
december 2024
Doc. št.: 334019, rev.: 1.2

Dokumenti / Viri

Intel Ethernet 700 Series Linux Performance Tuning [pdf] Uporabniški priročnik
334019, Ethernet 700 Series Linux Performance Tuning, Ethernet 700 Series, Linux Performance Tuning, Performance Tuning, Tuning

Reference

Pustite komentar

Vaš elektronski naslov ne bo objavljen. Obvezna polja so označena *