Intelov logotipIntel ® Ethernet 700 serije
Vodič za podešavanje izvedbe Linuxa
NEX Cloud Networking Group (NCNG)
Rev. 1.2
prosinac 2024

Povijest revizija

Revizija Datum Komentari
1.2 prosinac 2024 · Dodane dodatne smjernice za upravljanje napajanjem.
· Dodan Intel* Turbo Boost.
· Dodan zaostatak mrežnog uređaja.
· Dodane konfiguracije i podešavanja specifične za platformu.
· Dodani 4. generacija Intel* %eon* skalabilnih procesora.
· Dodan AMD EPYC.
· Ažurirano Provjerite mogućnosti hardvera sustava.
· Ažurirani iPerf2.
· Ažurirani iPerf3.
· Ažurirani Tx/Rx redovi čekanja.
· Ažurirano moderiranje prekida.
· Ažurirana veličina prstena.
· Ažurirano podešavanje platforme (i40e nespecifično).
· Ažurirane BIOS postavke.
· Ažurirana kontrola C-State.
· Ažurirano skaliranje frekvencije procesora.
· Ažurirane postavke aplikacije.
· Ažurirane postavke operativnog sustava/kernela.
· Ažurirano IP prosljeđivanje.
· Ažurirana niska latencija.
kolovoza 2023 Promjene u ovom dokumentu uključuju:
· Dodane srodne reference.
· Dodano Osigurajte da se DDP paket pravilno učitava.
· Dodan iPerf2.
· Dodan iPerf3.
· Dodan netperf.
· Ažurirani IRQ afinitet.
· Dodani Tx/Rx redovi čekanja.
· Ažurirana veličina prstena.
· Dodani Jumbo okviri.
· Dodano spajanje adaptera.
· Dodan Intel svr-info alat.
1.0 ožujka 2016 Početno izdanje (Intel Public).

Uvod

Ovaj vodič je namijenjen pružanju smjernica za podešavanje okruženja za optimalnu mrežnu izvedbu korištenjem Intel ® Ethernet 700 NIC-ova serije u Linux okruženjima. Fokusira se na uvjete i postavke hardvera, upravljačkog programa i operativnog sustava koji mogu poboljšati performanse mreže. Treba imati na umu da na performanse umrežavanja mogu utjecati brojni vanjski utjecaji, samo oni najčešći i najdramatičniji od njih pokriveni su ovim vodičem.
1.1 Povezane reference

Početni kontrolni popis

2.1 Ažurirajte upravljačke programe/verzije firmvera
Provjerite verziju upravljačkog programa/firmvera pomoću ethtool -i ethx.
Po potrebi ažurirajte sljedeće:

2.2 Pročitajte README
Provjerite postoje li poznati problemi i preuzmite najnovije upute za konfiguraciju iz README-a file uključen u izvorni paket i40e.
2.3 Provjerite je li vaš PCI Express (PCIe) utor x8
Neki PCIe x8 utori zapravo su konfigurirani kao x4 utori. Ovi utori nemaju dovoljnu propusnost za punu brzinu linije s uređajima s dva i četiri priključka. Osim toga, ako stavite adapter koji podržava PCIe v3.0 u utor za PCIe v2.x, ne možete dobiti punu propusnost. Softverski upravljački program detektira ovu situaciju i zapisuje sljedeću poruku u zapisnik sustava:
PCI-Express propusnost dostupna za ovu karticu nije dovoljna za optimalne performanse. Za optimalne performanse potreban je x8 PCI-Express utor.
Ako se pojavi ova pogreška, premjestite adapter na pravi PCIe v3.0 x8 utor kako biste riješili problem.
2.4 Provjerite hardverske mogućnosti sustava
Za 10 Gbps, 25 Gbps i 40 Gbps Ethernet, postoje neki minimalni CPU i sistemski zahtjevi. Općenito, moderan poslužiteljski procesor i optimalna konfiguracija memorije za vašu platformu trebali bi biti dovoljni, ali potrebe se razlikuju ovisno o vašem radnom opterećenju. Svi memorijski kanali trebaju biti popunjeni i način rada memorije treba biti omogućen u BIOS-u. Provjerite mogu li vaš CPU i konfiguracija memorije podržati razinu mrežnih performansi koja vam je potrebna za vaše radno opterećenje.
BILJEŠKA
XL710 je 40 GbE kontroler. Adapter 2 x 40 GbE koji koristi ovaj kontroler nije namijenjen da bude 2 x 40 GbE, već 1 x 40 GbE s aktivnim rezervnim priključkom. Prilikom pokušaja korištenja linijskog prometa koji uključuje oba priključka, interni prekidač je zasićen, a kombinirana propusnost između dva priključka ograničena je na ukupno SO Gbps.
2.4.1 Parametri pokretanja jezgre
Ako je Intel® virtualizacijska tehnologija za usmjereni I/O (Intel® VT-d) omogućena u BIOS-u, Intel preporučuje da IOMMU bude u prolaznom načinu rada za optimalnu izvedbu mreže glavnog računala. Ovo eliminira DMA opterećenje na glavnom prometu dok omogućuje virtualnim strojevima (VM) da i dalje imaju prednosti Intel® VT-d. To se postiže dodavanjem sljedećeg retka u parametre pokretanja kernela: fommu-pt.
2.5 Osigurajte da se DDP paket ispravno učitava
140ea i 140eb osnovni upravljački programi nemaju izravnu podršku za Dynamic Device Personalization (DDP). Za korištenje DDP-a s uređajima serije 700, DDP profile može se primijeniti s aplikacijom testpmd.
Za detalje o DDP profiles, i kako primijeniti DDP profile s testpmd na uređajima serije 700, pogledajte Tehnološki vodič za dinamičku personalizaciju uređaja (DDP) Intel® Ethernet serije 700.
Za provjeru je li DDP profile je uspješno učitano:
testpmd> ddp get list 0 Profile broj je: 1
BILJEŠKA
Ako je profile broj je 0, nijedan DDP paket nije učitan. U slučaju pogreške učitavanja DDP paketa, uređaj se prema zadanim postavkama postavlja na siguran način rada i mnoge značajke performansi nisu dostupne. Ako postoje pogreške povezane s učitavanjem DDP paketa, to će uzrokovati probleme s performansama. Za korake za rješavanje problema, pogledajte Inte/* Ethernet 700 Series Dynamic Device Personalization (DDP) Tehnološki vodič.

Osnovna mjerenja performansi i metodologija podešavanja

3.1 Referentne vrijednosti mrežnih performansi
Prije početka vježbe podešavanja, važno je imati dobro osnovno mjerenje performansi vaše mreže. Obično uz početno mjerenje performansi vaše specifične aplikacije/radnog opterećenja, dobra je ideja koristiti i standardnu ​​referentnu vrijednost performansi mreže kako biste potvrdili da je vaš mrežni uređaj u dobrom stanju.
Za optimizaciju jednog sustava, netperf ili iperf i NetPIPE solidni su besplatni alati otvorenog koda koji vam omogućuju da naglasite vezu i dijagnosticirate probleme s performansama.
Netperf je jak za testiranje propusnosti i latencije. NetPIPE je alat specifičan za kašnjenje, ali se može kompajlirati za bilo koju vrstu okruženja.
BILJEŠKA
TCP_RR test u netperf-u vraća kašnjenje u vrijednosti od transakcija/s. Ovo je povratni broj. Jednosmjerna latencija može se izračunati pomoću sljedeće jednadžbe:
Latencija (usec) = (1⁄2) / [Transakcije/s] * 1,000,000
3.1.1 iPerf2
Intel preporučuje iperf2 umjesto iperf3 za većinu situacija benchmarkinga zbog jednostavnosti korištenja i podrške za više niti u jednoj instanci aplikacije. Intel preporučuje rad s opcijom -P s 2-4 niti za 25G veze i oko 4-6 niti za 40G veze.

  • Za pokretanje jednosmjernog prometa od klijenta do poslužitelja: Naredba poslužitelja example: iperf2 -s
    Naredba klijenta prample: iperf2 -c -P
  • Za pokretanje dvosmjernog prometa od klijenta do poslužitelja (i obrnuto): Naredba poslužitelja example: iperf2 –s –p
    Naredba klijenta prampono:
    iperf2 -c -str -P -–full-duplex OR
    iperf2 -c -str -P –d

BILJEŠKA
I opcije –full-duplex i -d u iperf2 omogućuju korisniku izvođenje dvosmjernog testiranja. Međutim, -full-duplex opcija posebno se fokusira na full duplex testiranje.
BILJEŠKA
Prilikom testiranja iperf2 na više priključaka poslužitelja, zastavica -d može se dodati naredbi poslužitelja za pokretanje svih sesija poslužitelja u pozadini iz istog prozora terminala. Oznaka -d također se može koristiti kada je naredba poslužitelja ugrađena unutar for-petlje u skripti.
BILJEŠKA
Prilikom izvođenja testa propusnosti mreže s jednim tokom/nitom (nprample: P1), AMD procesori možda neće pružiti očekivanu propusnost, osobito NIC-ovi veće propusnosti (ako je brzina >= 25G propusnost). Kao rezultat toga, potrebno je prikvačivanje aplikacije na određene jezgre kako bi se postigla veća propusnost. Pogledajte Postavke aplikacije na stranici 22.
3.1.2 iPerf3
Ako se koristi iperf3, potrebno je više instanci aplikacije za napredovanjetage od više niti, RSS-a i hardverskih redova čekanja. Intel preporučuje rad s 2-4 sesije aplikacije za 25G veze i oko 4-6 sesija za 40G veze. Svaka sesija treba navesti jedinstvenu vrijednost TCP porta pomoću opcije -p.

  • Za pokretanje jednosmjernog prometa od klijenta do poslužitelja:
    Naredba poslužitelja exampono:
    iperf3 -s -p
    Naredba klijenta prampono:
    iperf3 -c -str
  • Za pokretanje dvosmjernog prometa od klijenta do poslužitelja (i obrnuto):
    Naredba poslužitelja exampono:
    iperf3 –s –p
    Naredba klijenta prample: iperf3 -c -str -P –-bidir
  • Za pokretanje višestrukih instanci (niti) iperf3, preporuka je koristiti for-loop za mapiranje niti u TCP portove i pokretanje iperf3 u pozadini koristeći & za stvaranje više procesa paralelno.
    Naredba poslužitelja example, pokrenite 4 niti: port=””; za i u {0..3}; do port=520$i; bash -c “iperf3 -s -p $port &”; učinjeno; Naredba klijenta prample, pokrenite 4 niti – Transmit test port=””; za i u {0..3}; do port=520$i; bash -c “iperf3 -c $serverIP -p $port &”; učinjeno; Naredba klijenta prample, pokrenite 4 niti – Primite testni port=””; za i u {0..3}; do port=520$i; bash -c “iperf3 -R -c $serverIP -p $port &”; učinjeno; Za 40G veze, povećajte for-loop za stvaranje do 6 instanci/niti.

BILJEŠKA
Prilikom izvođenja testa propusnosti mreže s jednim tokom/nitom (nprample: P1), AMD procesori možda neće pružiti očekivanu propusnost, osobito veću propusnost
NIC (ako je brzina >= 25G propusnost). Kao rezultat toga, potrebno je prikvačivanje aplikacije na određene jezgre kako bi se postigla veća propusnost. Pogledajte Postavke aplikacije na stranici 22 i AMD EPYC na stranici 26.
3.1.3 netperf
Alat netperf dobar je izbor za testiranje propusnosti i latencije.

  • TCP_STREAM test u netperf mjeri propusne mogućnosti uređaja. Naredba poslužitelja example: netserver Klijentska naredba prample: netperf -t TCP_STREAM -l 30 -H
  • TCP_RR test u netperf-u vraća kašnjenje u vrijednosti od transakcija/sekundi. Ovo je povratni broj. Preporuča se koristiti opciju -T x,x ako je x CPU lokalni na uređaju. Jednosmjerna latencija može se izračunati pomoću: Latencija(usec)=(1⁄2)/ [Transakcije/sek]*1,000,\ Naredba poslužitelja example: mrežni poslužitelj
    Naredba klijenta prample: netperf -t TCP_RR -l 30 -H -T x,x
  • Za pokretanje višestrukih instanci (niti) netperf-a, preporuka je korištenje for-petlje za mapiranje niti u TCP portove i pokretanje netperf-a u pozadini pomoću & za stvaranje višestrukih procesa paralelno.
    Naredba poslužitelja example, pokrenite 8 niti:
    port=””; za i u {0..7}; do port=520$i; bash -c “netserver -L $serverIP -p $port &”; učinjeno;
    Naredba klijenta prample, pokrenite 8 niti: port=””; za i u {0..7}; do port=520$i; bash -c “netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &”; učinjeno;

3.2 Metodologija podešavanja
Usredotočite se na jednu po jednu promjenu podešavanja kako biste znali kakav utjecaj svaka promjena ima na vaš test. Što ste metodičniji u procesu podešavanja, lakše ćete identificirati i riješiti uzroke uskih grla u izvedbi.

Podešavanje postavki upravljačkog programa i40e

4.1 IRQ afinitet
Konfiguriranje IRQ afiniteta tako da prekidi za različite mrežne redove čekanja budu povezani s različitim CPU jezgrama može imati veliki utjecaj na izvedbu, posebno testove propusnosti više niti.
Za konfiguraciju IRQ afiniteta, zaustavite irqbalance i zatim upotrijebite set_irq_affinity skriptu iz izvornog paketa i40e ili ručno postavite red čekanja. Onemogućite balanser IRQ-a korisničkog prostora da biste omogućili prikvačivanje reda:

  • systemctl onemogući irqbalance
  • systemctl zaustavi irqbalance
    Korištenje skripte set_irq_affinity iz izvornog paketa i40e (preporučeno):
  • Za korištenje svih jezgri:
    [path-to-i40epackage]/scripts/set_irq_affinity -X all ethX
  • Za korištenje samo jezgri na lokalnoj NUMA utičnici: [path-to-i40epackage]/scripts/set_irq_affinity -X local ethX
  • Također možete odabrati niz jezgri. Izbjegavajte korištenje cpu0 jer pokreće zadatke mjerača vremena. [path-to-i40epackage]/scripts/set_irq_affinity 1-2 ethX

BILJEŠKA
Skripta afiniteta omogućuje upravljanje prijenosom paketa (XPS) kao dio procesa pričvršćivanja kada je navedena opcija -x. Kada je XPS omogućen, Intel preporučuje da onemogućite irqbalance jer balanser kernela s XPS-om može uzrokovati nepredvidive performanse. Skripta afiniteta onemogućuje XPS kada je navedena opcija -X. Onemogućavanje XPS-a i omogućavanje simetričnih redova čekanja korisno je za radna opterećenja gdje se najbolje performanse postižu kada se promet Tx i Rx servisira na istom paru (parovima) čekanja.
Konfiguriranje simetričnih redova čekanja u Linuxu uključuje podešavanje parametara upravljačkog programa mrežnog sučelja kako bi se omogućili simetrični redovi čekanja za primanje (Rx) i simetrični redovi čekanja za slanje (Tx) za podržane mrežne adaptere.
BILJEŠKA

  • Simetrični redovi čekanja su napredna mrežna značajka i ne podržavaju ih svi mrežni adapteri ili upravljački programi serije 700.
  • Provjerite imate li potreban upravljački program i hardversku podršku prije nego što pokušate konfigurirati simetrične redove čekanja.

Da biste konfigurirali simetrične redove čekanja, slijedite ove općenite korake:

  1. Uredite konfiguraciju mrežnog sučelja File: Koristite uređivač teksta (nprample, vi, nano ili gedit) za uređivanje konfiguracije mrežnog sučelja file. The file obično se nalazi u direktoriju /etc/sysconfig/network-scripts/ i ima naziv poput ifcfg-ethX, gdje je ethX naziv vašeg mrežnog sučelja.
  2. Dodajte parametre simetričnog reda čekanja. Dodajte sljedeće retke konfiguraciji mrežnog sučelja file: ETHTOOL_OPTS=”rx-redovi 8 tx-redovi 8″
  3. Ponovno pokrenite mrežnu uslugu.
    Nakon što napravite promjene, ponovno pokrenite mrežnu uslugu kako biste primijenili novu konfiguraciju. sudo systemctl ponovno pokrenite mrežu

Ručno:

  • Pronađite procesore priključene na svaki čvor koristeći: numactl –hardware lscpu
  • Pronađite bit maske za svaki od procesora:
  • Pretpostavljajući jezgre 0-11 za čvor 0: [1,2,4,8,10,20,40,80,100,200,400,800]
  • Pronađite IRQ-ove dodijeljene portu koji se dodjeljuje: grep ethX /proc/interrupts i zabilježite IRQ vrijednosti, npr.ample, 181-192 za 12 učitanih vektora.
  • Eho SMP vrijednosti afiniteta u odgovarajući IRQ unos. Imajte na umu da ovo treba učiniti za svaki IRQ unos: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity Prikaži IRQ afinitet:
  • Za prikaz IRQ afiniteta za sve jezgre: /skripte/set_irq_affinity -s ethX
  • Za prikaz samo jezgri na lokalnoj NUMA utičnici: /scripts/set_irq_affinity -s lokalni ethX
  • Također možete odabrati niz jezgri: /skripte/set_irq_affinity -s 40-0-8,16 ethX

BILJEŠKA
Skripta set_irq_affinity podržava oznaku -s u i40e driver verziji 2.16.11 i novijim.
4.2 Redovi čekanja za prijenos/prijem
Zadani broj čekanja koje je upravljački program omogućio za svaki Ethernet priključak pri inicijalizaciji jednak je ukupnom broju CPU-a dostupnih na platformi. Ovo dobro funkcionira za mnoge platforme i konfiguracije radnog opterećenja. Međutim, na platformama s velikim brojem jezgri i/ili velikom gustoćom Ethernet priključaka, ova konfiguracija može uzrokovati sukobe resursa. Stoga bi u nekim slučajevima moglo biti potrebno promijeniti zadanu vrijednost za svaki priključak u sustavu.
Zadani broj čekanja za prijenos/prijem može varirati ovisno o specifičnom modelu i verziji upravljačkog programa. Broj redova čekanja može se podesiti pomoću dolje navedene naredbe ethtool -L.
BILJEŠKA
U tim slučajevima, Intel preporučuje da smanjite zadani broj čekanja za svaki priključak na ne više od broja CPU-a dostupnih u NUMA čvoru lokalnom za priključak adaptera. U nekim slučajevima, pri pokušaju balansiranja resursa na implementacijama s velikim brojem priključaka, možda će biti potrebno još više smanjiti taj broj.
Za izmjenu konfiguracije reda:
Sljedeći prample postavlja port na 32 Tx/Rx redova: ethtool -L ethX kombinirano 32
Example izlaz:
ethtool -l ethX
Parametri kanala za ethX: Unaprijed postavljeni maksimumi:
RX: 96
TX: 96
Ostalo: 1
Kombinirano: 96
Trenutne postavke hardvera:
RX: 0
TX: 0
Ostalo: 1
Kombinirano: 32
4.3 Prekid moderiranja
Prilagodljivo moderiranje prekida uključeno je prema zadanim postavkama i osmišljeno je za pružanje uravnoteženog pristupa između niske iskorištenosti CPU-a i visokih performansi. Međutim, možete pokušati ručno podesiti postavke prekida kako bi odgovarale vašem slučaju upotrebe.
Raspon od 0-235 mikrosekundi pruža učinkovit raspon od 4,310 do 250,000 2 prekida u sekundi. Vrijednost rx-μsecs-high može se postaviti neovisno o rx-μsecs i tx-μsecs u istoj naredbi ethtool, a također je neovisna o adaptivnom algoritmu moderiranja prekida. Temeljni hardver podržava granularnost u intervalima od XNUMX mikrosekunde, tako da susjedne vrijednosti mogu rezultirati istom stopom prekida.

  • Za isključivanje adaptivnog moderiranja prekida: ethtool -C ethX adaptive-rx off adaptive-tx off
  • Za uključivanje adaptivnog moderiranja prekida: ethtool -C ethX adaptive-rx on adaptive-tx on

Dobro mjesto za početak za opće podešavanje je 84 μs ili ~12000 prekida/s. Ako vidite da se brojači rx_dropped pokreću tijekom prometa (koristeći ethtool -S ethX), tada vjerojatno imate prespor CPU, nemate dovoljno međuspremnika od veličine prstena adaptera (ethtool -G) da zadržite pakete 84 μs ili nisku stopu prekida.

  • Za postavljanje moderiranja prekida na fiksnu stopu prekida od 84 μs između prekida (12000 prekida/s): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 Sljedeća vrijednost koju treba isprobati je 62 μs, ako nemate maksimalnu iskorištenost CPU-a. Ovo koristi više CPU-a, ali servisira brže međuspremnike i zahtijeva manje deskriptora (veličina prstena, ethtool -G).
  • Za postavljanje moderiranja prekida na fiksnu brzinu prekida od 62 usec između prekida (16000 prekida/s). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
    Ako se rx_dropped brojači povećavaju tijekom prometa (koristeći ethtool -S ethX), vjerojatno imate prespor CPU, nemate dovoljno međuspremnika zbog veličine prstena adaptera (ethtool -G) ili prenisku stopu prekida. Ako niste maksimalno iskoristili CPU, možete povećati stopu prekida snižavanjem ITR vrijednosti. Ovo koristi više CPU-a, ali usluge se brže spremaju u međuspremnik i zahtijevaju manje deskriptora (veličina prstena, ethtool -G).
    Ako je vaš CPU na 100%, ne savjetuje se povećanje stope prekida. U određenim okolnostima, kao što je CPU vezano radno opterećenje, možda ćete htjeti povećati vrijednost μs kako biste omogućili više CPU vremena za druge aplikacije.
    Ako vam je potrebna izvedba niske latencije i/ili imate puno CPU-a za mrežnu obradu, možete u potpunosti onemogućiti moderiranje prekida, što omogućuje da se prekidi aktiviraju što je brže moguće.
  • Za onemogućavanje moderiranja prekida ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0

BILJEŠKA
Kada se izvodi s onemogućenom moderacijom prekida, stopa prekida na svakom redu čekanja može biti vrlo visoka. Razmislite o uključivanju parametra rx-usec-high za postavljanje gornje granice stope prekida. Sljedeća naredba onemogućuje adaptivno moderiranje prekida i dopušta najviše 5 mikrosekundi prije nego što se pokaže da je primanje ili slanje završeno. Umjesto da rezultira s čak 200,000 prekida u sekundi, ograničava ukupni broj prekida u sekundi na 50,000 putem parametra rx-usec-high. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 20 rx-usecs 5 txusecs 5 Pokušajte namjestiti tajmer spajanja prijenosa/prijema/visokog prioriteta na više (80/100/150/200) ili niže (25/20/10/5) kako biste pronašli optimalnu vrijednost za radno opterećenje.
4.4 Veličina prstena
Ako vidite brojače rx_dropped u ethtool -S ethX (rx_dropped, rx_dropped.nic), ili sumnjate na pritisak predmemorije s višestrukim aktivnim redovima čekanja, možete pokušati prilagoditi veličinu prstena sa zadane vrijednosti. Zadana vrijednost je 512, maksimalna je 4096.

  • Za provjeru trenutnih vrijednosti: ethtool -g ethX
    Ako se sumnja da nedostatak međuspremnika uzrokuje padove na trenutnoj stopi prekida, možete prvo pokušati s maksimumom, zatim s minimumom, a zatim nastaviti s binarnim pretraživanjem dok ne vidite optimalnu izvedbu.
    Ako se sumnja na pritisak predmemorije (mnogo aktivnih redova), smanjenje međuspremnika u odnosu na zadane može pomoći da Intel ® Data Direct I/O (Intel ® DDIO) radi učinkovitije. Intel preporučuje isprobavanje 128 ili 256 po redu čekanja, imajući na umu da povećanje stope prekida putem ethtool -C može biti potrebno kako bi se izbjeglo povećanje rx_dropped.
  • Za postavljanje veličine prstena na fiksnu vrijednost: ethtool -G eth12 rx 256 tx 256

BILJEŠKA
Da biste popravili ispadanje Rx paketa pronađeno pomoću ethtool -S ethX|grep drop, razmislite o povećanju veličine prstena na 4096. Eksperimentirajte kako biste pronašli najbolju postavku za radno opterećenje, ali pripazite na prekomjerno korištenje memorije s višim vrijednostima.
4.5 Kontrola protoka
Kontrola toka sloja 2 može značajno utjecati na performanse TCP-a i preporučuje se da se onemogući za većinu radnih opterećenja. Potencijalna iznimka je burst promet gdje eksplozije nisu dugotrajne.
Kontrola protoka je prema zadanim postavkama onemogućena.

  • Da biste omogućili kontrolu toka: ethtool -A ethX rx on tx on
  • Za onemogućavanje kontrole toka: ethtool -A ethX rx off tx off

BILJEŠKA
Morate imati partnera za vezu koji je sposoban za kontrolu protoka da biste uspješno omogućili kontrolu protoka.
4.6 Veliki okviri
Kada se očekivano prometno okruženje sastoji od velikih blokova podataka koji se prenose, moglo bi biti korisno omogućiti značajku velikog okvira. Podrška za Jumbo okvire omogućena je promjenom maksimalne jedinice prijenosa (MTU) na vrijednost veću od zadane vrijednosti od 1500. To omogućuje uređaju prijenos podataka u većim paketima unutar mrežnog okruženja. Ova postavka može poboljšati propusnost i smanjiti korištenje CPU-a za velika I/O radna opterećenja. Međutim, to može utjecati na radna opterećenja osjetljiva na male pakete ili kašnjenje.
BILJEŠKA
Jumbo okviri ili veća MTU postavka moraju biti pravilno konfigurirani u vašem mrežnom okruženju.
Upotrijebite naredbu ifconfig za povećanje MTU veličine. Na primjerample, unesite sljedeće, gdje je broj sučelja: ifconfig mtu 9000 gore
Alternativno, možete koristiti naredbu ip na sljedeći način: ip link set mtu 9000 dev ip link set set dev

Podešavanje platforme (i40e nespecifičan)

5.1 BIOS postavke

  • Omogućite Intel® VT-d za radna opterećenja virtualizacije.
  • Hyper-threading (logički procesori) može utjecati na performanse. Eksperimentirajte s uključivanjem ili isključivanjem za svoje radno opterećenje.
  • Intel® Turbo Boost omogućuje CPU jezgrama da rade na višoj frekvenciji od osnovne frekvencije CPU-a. Omogućavanje Intel® Turbo Boosta može poboljšati performanse za mnoga radna opterećenja, ali troši više energije kako bi se jezgre održavale na višoj frekvenciji. Eksperimentirajte s uključivanjem/isključivanjem Turbo Boosta za svoje radno opterećenje.

BILJEŠKA
Turbo frekvencije nisu zajamčene ako platforma ima visoku ukupnu iskorištenost CPU-a. Više turbo frekvencije jezgre smanjuju se kako se povećava ukupna iskorištenost CPU-a.
5.2 Upravljanje napajanjem
Upravljanje napajanjem može utjecati na izvedbu, osobito u radnim opterećenjima s malom latencijom. Ako je izvedba veći prioritet od smanjenja potrošnje energije, Intel preporučuje da eksperimentirate s ograničavanjem učinaka upravljanja energijom. Postoji mnogo različitih načina za ograničavanje upravljanja napajanjem, putem alata operativnog sustava, postavki BIOS-a i parametara pokretanja kernela. Odaberite najbolju metodu i razinu koja odgovara vašem okruženju.
5.2.1 Kontrola C-stanja
Ograničavanje ulaska u C-stanje na CO ili C1 poboljšava performanse i povećava iskorištenje energije.
Onemogućavanje unosa stanja CPU paketa C6 može poboljšati performanse mreže. Međutim, to povećava potrošnju energije.
Dostupne su sljedeće opcije:

  • Dinamički kontrolirajte unos C-stanja:
    Otvoriti
    /dev/cpu_dma_latency i u njega upišite maksimalno dopušteno kašnjenje.

BILJEŠKA
Postoji mali program pod nazivom cpudmalatency.c koji se može preuzeti iz zajednice otvorenog izvornog koda, kompajlirati i pokrenuti iz naredbenog retka kako bi učinio upravo to.
Sljedeći prample dopušta pet μs vremena buđenja i stoga dopušta unos C1: cpudmalatency 5 &

  • Ograničite maksimalno C-stanje u postavkama pokretanja jezgre:
    Za Intel CPU: intel_idle.max_cstates=1
    Za procesore koji nisu Intelovi: processor.max_cstates=1
  • Upotrijebite naredbu cpupower da provjerite i onemogućite stanje CPU C6: Provjerite: cpupower monitor ili cpupower idle-info
    Onemogući C6: cpupower idle-set -d3 ili
    Onemogući C-State: cpupower idle-set -D0

Bilješke:

  1. Onemogućite C-state na CPU-u ako poslužitelj ima Intel® Intel® Xeon® skalabilne procesore 4. generacije. Kada je Hyper Threading omogućen ili onemogućen, onemogućavanje stanja mirovanja (-D0) sprječava jezgre da uđu u stanja niske potrošnje tijekom razdoblja mirovanja i smanjuje latenciju za prijelaz CPU-a između stanja mirovanja i aktivnog stanja.
  2. Upravljanje napajanjem Intel® Intel® Xeon® skalabilnog procesora 4. generacije iznimno je agresivno. Kako biste izbjegli da jezgre uđu u stanje niske potrošnje, pokušajte smanjiti broj jezgri u upotrebi kako biste ih duže držali budnima (ethtool -L kombinirani ). Također, povežite prekide s određenim jezgrama pomoću postavljenog irq afiniteta (najčešće s -x local ili popisom CPU jezgri) i osigurajte da se radno opterećenje izvodi na tim istim jezgrama s tasksetom ili numactl. Ovo poboljšava performanse održavajući jezgre aktivnima i optimizirajući rukovanje prekidima.

Omogući C6:
cpupower idle-set -d3
Omogući C-stanja:
cpupower idle-set -E

  • Druga metoda je korištenje podešenog alata (uključenog u mnoge distribucije Linuxa) za postavljanje profesionalne izvedbefile. Ovi profiles mijenjati nekoliko postavki OS-a koje mogu utjecati na performanse u mnogim aplikacijama. Utvrđeno je da mrežna propusnost profile omogućuje poboljšanje većine radnih opterećenja.
    Provjeriti:
    tuned-adm aktivan
    set:
    tuned-adm profile mrežna propusnost
    BILJEŠKA
    Podešena usluga mora biti pokrenuta za gornje naredbe. Za provjeru/ponovno pokretanje, tuned: systemctl status tuned systemctl restart tuned
    Također možete onemogućiti bilo koji unos C-state dodavanjem sljedećeg u liniju za pokretanje kernela:
    mirovanje=anketa
  • Ograničite C-stanje putem postavki upravljanja napajanjem BIOS-a sustava, što bi moglo imati profesionalnu izvedbufile dostupan.
    Alati kao što su turbostat ili x86_energy_perf_policy mogu se koristiti za provjeru ili postavljanje postavki upravljanja napajanjem.

5.2.2 PCIe upravljanje napajanjem
Upravljanje napajanjem u aktivnom stanju (ASPM) omogućuje niže stanje napajanja za PCIe veze kada nisu u aktivnoj upotrebi. To može uzrokovati veće kašnjenje na PCIe mrežnim uređajima, stoga Intel preporučuje da onemogućite ASPM za radna opterećenja osjetljiva na kašnjenje. Onemogućite ASPM dodavanjem sljedećeg u redak za pokretanje kernela: pcie_aspm=off
5.2.3 Skaliranje CPU frekvencije
Skaliranje frekvencije CPU-a (ili skaliranje brzine CPU-a) tehnika je upravljanja napajanjem Linuxa u kojoj se brzina takta sustava prilagođava u hodu radi uštede energije i topline. Baš kao i C-stanja, ovo može uzrokovati neželjeno kašnjenje na mrežnim vezama.
Alat cpupower također se može koristiti za provjeru i izmjenu zadanih postavki i ograničenja performansi procesora:

  • Provjerite: cpupower monitor ili
  • Postavite procesore na način rada: cpupower frequency-set -g performance

BILJEŠKA
Izmjene ograničenja frekvencije CPU-a mogu utjecati na mnoga radna opterećenja i mogu onemogućiti druge značajke, kao što je CPU turbo način rada.
Da biste onemogućili skaliranje frekvencije procesora, onemogućite uslugu napajanja procesora pomoću sljedećih naredbi:
systemctl zaustavi cpupower.service
systemctl onemogući cpupower.service
5.2.4 Dodatne smjernice za upravljanje napajanjem
Dodatne pojedinosti navedene su u ovom pregledu visoke razineview mnogih značajki upravljanja napajanjem u 3. generaciji Intel® Xeon® skalabilnih procesora, kao i smjernice o tome kako se ove značajke mogu integrirati na razini platforme: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Intel® Turbo Boost čini procesor bržim kada je to potrebno, ali može trošiti dodatnu energiju. Isključivanje Turbo Boosta održava procesor na stabilnoj brzini, dajući vam dosljednu razinu performansi za određena radna opterećenja.
5.4 Vatrozidi
Vatrozidi mogu utjecati na performanse, posebno na performanse latencije.
Onemogućite iptables/firewalld ako nije potreban.
5.5 Postavke aplikacije
Često jedna nit (koja odgovara jednom mrežnom redu čekanja) nije dovoljna za postizanje maksimalne propusnosti. Neke platformske arhitekture, poput AMD-a, imaju tendenciju ispuštanja više Rx paketa s jednom niti u usporedbi s platformama s procesorima baziranim na Intelu.
Razmotrite korištenje alata kao što su taskset ili numactl za prikvačivanje aplikacija na NUMA čvor ili CPU jezgre lokalno na mrežni uređaj. Za neka radna opterećenja kao što je I/O pohrane, premještanje aplikacije na ne-lokalni čvor daje prednost.
Eksperimentirajte s povećanjem broja niti koje koristi vaša aplikacija ako je moguće.
5.6 Verzija jezgre
Većina modernih in-box kernela relativno je dobro optimizirana za performanse, ali, ovisno o vašem slučaju upotrebe, ažuriranje kernela može pružiti poboljšane performanse. Preuzimanje izvora također vam omogućuje da omogućite/onemogućite određene značajke prije izgradnje kernela.
5.7 Postavke operativnog sustava/kernela
Konzultirajte vodiče za podešavanje operativnog sustava, kao što je Red Hat Enterprise Linux Network Performance Tuning Guide, za više informacija o općem podešavanju operativnog sustava.
Neki uobičajeni parametri za podešavanje navedeni su u sljedećoj tablici. Imajte na umu da su ovo samo predložene početne točke, a njihova promjena u odnosu na zadane može povećati resurse koji se koriste u sustavu. Iako povećanje vrijednosti može pomoći u poboljšanju performansi, potrebno je eksperimentirati s različitim vrijednostima kako bi se utvrdilo što najbolje funkcionira za određeni sustav, radno opterećenje i vrstu prometa.
Parametri kernela mogu se konfigurirati pomoću uslužnog programa sysctl u Linuxu kao što je dolje navedeno.
Do view zadane vrijednosti za rmem i wmem na sustavu:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
Postavite vrijednosti na max (16 MB):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Veličine međuspremnika utičnice, također poznate kao međuspremnik primanja (rmem) i međuspremnika prijenosa (wmem), parametri su sustava koji određuju količinu memorije rezerviranu za dolazni i odlazni mrežni promet.
Pokretanje sysctl bez argumenta -w ispisuje parametar s njegovom trenutnom postavkom.

Postavka snopa Opis
net.core.rmem_default Zadana veličina prozora za primanje
net.core.wmem_default Zadana veličina prozora prijenosa
net.core.rmem_max Maksimalna veličina prozora za primanje
net.core.wmem_max Maksimalna veličina prozora prijenosa
net.core.optmem_max Maksimalna opcija međuspremnika memorije
net.core.netdev_max_backlog Nagomilavanje neobrađenih paketa prije nego što kernel počne padati
net.ipv4.tcp_rmem Rezervator memorije za međuspremnike za TCP čitanje
net.ipv4.tcp_wmem Rezervator memorije za međuspremnike TCP slanja

Kernel, mrežni skup, rukovatelj memorijom, brzina CPU-a i parametri upravljanja napajanjem mogu imati veliki utjecaj na performanse mreže. Uobičajena preporuka je primijeniti na mrežnu propusnost profile koristeći tuned naredbu. Ovo mijenja nekoliko postavki OS-a kako bi se dale prednosti mrežnim aplikacijama.
Provjeriti:
tuned-adm aktivan
set:
tuned-adm profile mrežna propusnost
5.8 Zaostatak mrežnog uređaja
Ova značajka pomaže u poboljšanju performansi mreže učinkovitim upravljanjem dolaznim prometom, smanjenjem gubitka paketa, smanjenjem kašnjenja i povećanjem propusnosti. To dovodi do boljeg korisničkog iskustva i bržeg odgovora sustava.
Prema zadanim postavkama omogućen je u većini operativnih sustava Linux. Za provjeru zadane vrijednosti:
sysctl net.core.netdev_max_backlog
Maksimalna vrijednost za netdev_max_backlog može varirati ovisno o čimbenicima kao što su verzija kernela, hardver, memorija i radno opterećenje. U mnogim slučajevima, 8192 se smatra dobrom vrijednošću. sysctl -w net.core.netdev_max_backlog=8192
5.9 Konfiguracije i podešavanje specifične za platformu
5.9.1 Intel® Xeon® skalabilni procesori 4. generacije

Upravljanje napajanjem procesora Intel® 4. generacije Intel® Xeon® Scalable iznimno je agresivno u usporedbi s procesorima 3. generacije Intel® Xeon® Scalable. Kako biste izbjegli da jezgre uđu u stanja niske potrošnje, pokušajte smanjiti broj jezgri u upotrebi kako bi ih duže održale budnima.
Preporučene postavke BIOS-a za najvišu izvedbu

  1. Omogućivanje/onemogućavanje hipernitnosti (na temelju zahtjeva za radnim opterećenjem i ciljeva izvedbe) na CPU-u.
  2. Postavite sustav profile to Performance za maksimalnu izvedbu.
    BILJEŠKA
    To rezultira većom potrošnjom energije
  3. Postavite CPU upravljanje napajanjem na Maximum Performance kako biste dali prednost maksimalnoj CPU izvedbi nad energetskom učinkovitošću.
  4. Omogući Turbo Boost. Onemogućavanje Turbo Boost-a u postavkama BIOS-a sustava obično sprječava CPU da dinamički poveća brzinu takta iznad osnovne frekvencije.
  5. BILJEŠKA
    Onemogućavanje Turbo Boosta može biti prikladno za određene slučajeve upotrebe gdje su dosljedne performanse, energetska učinkovitost ili upravljanje toplinom prioritet nad maksimalnim performansama.
  6. Isključite značajku Single Root I/O Virtualization (SR-IOV) ako sustav ne koristi tehnologije virtualizacije.
  7. Onemogućite C-state kako biste uputili CPU da ostane aktivan i spriječili ulazak u dublja stanja mirovanja.
  8. Onemogućite C1E kako biste bili sigurni da CPU ostaje aktivan i da ne ulazi u C1E stanje mirovanja.
  9. Postavite uncore frekvenciju na maksimalnu kako biste sustavu uputili da radi na najvišoj dostupnoj frekvenciji.
  10. Na Dell platformama, postavite emulaciju jezgre Multiple APIC Description Table (MADT) na Linear (ili Round-Robin ovisno o BIOS-u) kako biste osigurali jasno i predvidljivo mapiranje CPU jezgri.

Preporučena podešavanja razine OS-a za optimizirane performanse

  1. Postavite regulator skaliranja frekvencije procesora na performanse. cpupower frekvencija-set -g izvedba cpupower frekvencija-info
  2. Onemogući C-stanja. cpupower idle-set -D0
  3. Postavite osnovne Rx (rmem) i Tx (wmem) međuspremnike na maksimalnu vrijednost. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
  4. Postavite zaostatak mrežnog uređaja. sysctl -w net.core.netdev_max_backlog=8192
  5. Postavite podešenog profesionalcafile (ovisno o radnom opterećenju za protok/kašnjenje).
    tuned-adm profile mrežna propusnost

Preporučena podešavanja razine adaptera za optimizirane performanse

  1. Ograničite broj čekanja za korištenje za promet aplikacija. Upotrijebite minimalni broj čekanja potrebnih da pridružene CPU jezgre ostanu aktivne kako biste ih spriječili da uđu u dublja stanja mirovanja (prilagodite radnom opterećenju): ethtool -L kombinirano 32
  2. Postavite stope moderiranja prekida. ethtool -C adaptive-rx off adaptive-tx off rx-usecs-high 50 rx-usecs 50 tx-usecs 50
    Pokušajte podesiti tajmer spajanja prijenosa/prijema/visokog prioriteta na više (80/100/150/200) ili niže (25/20/10/5) kako biste pronašli optimalnu vrijednost za radno opterećenje.
  3. Postavite veličinu Rx/Tx prstena. ethtool -G rx 4096 tx 4096
    BILJEŠKA
    Ako vidite da Rx paket pada uz ethtool -S| grep drop, pokušajte smanjiti veličinu prstena na <4096. Pokušajte pronaći optimalnu vrijednost za radno opterećenje gdje se paketi ne ispuštaju.
  4. Postavite IRQ afinitet. Koristite jezgre lokalne za NIC ili specifično preslikavanje jezgri (gdje je # jezgri jednako broju redova postavljenih u 1 na stranici 26. systemctl stop irqbalance set_irq_affinity -X local ILI set_irq_affinity -X

5.9.2 AMD EPYC
AMD EPYC procesori su snažni CPU-i napravljeni za poslužitelje i podatkovne centre, izgrađeni na AMD-ovoj Zen arhitekturi. Donje postavke su iz AMD-ove 4. generacije EPYC serije.
Preporučene BIOS postavke za najviše performanse

  1. Omogućite prilagođeni način rada kako biste korisnicima omogućili prilagodbu performansi CPU-a, potrošnje energije i drugih postavki. To pomaže u finom podešavanju sustava za najbolju ravnotežu između performansi i energetske učinkovitosti.
  2. Omogućite povećanje performansi jezgre kako biste omogućili CPU-u da automatski poveća svoju brzinu za rješavanje intenzivnijih zadataka, poboljšavajući ukupnu izvedbu.
  3. Onemogućite globalnu kontrolu C-stanja kako biste spriječili CPU da uđe u dublja stanja uštede energije poznata kao C-stanja, koja mogu održati odziv.
    BILJEŠKA
    Onemogućavanje C-stanja može uzrokovati dodatnu potrošnju energije i povećati toplinske temperature. Pratite oboje radi opterećenja.
  4. Omogućite/onemogućite Simultaneous Multithreading (SMT) na CPU-u, na temelju zahtjeva radnog opterećenja i ciljeva izvedbe. SMT je ekvivalentan Hyper Threadingu na Intel CPU-ima.
    BILJEŠKA
    Za optimizirane performanse, pogledajte Podešavanje postavki upravljačkog programa i40e na stranici 13 i Podešavanje platforme (i40e nespecifično) na stranici 19 za preporučeno podešavanje OS-a i razine adaptera.

Lijepljenje adaptera

Linux povezivanje moćna je značajka koja može značajno poboljšati performanse mreže, redundanciju i toleranciju na greške u poslužiteljskim okruženjima. Međutim, važno je napomenuti da zahtijeva kompatibilan mrežni hardver i pravilnu konfiguraciju i na poslužitelju i na preklopniku kako bi ispravno funkcionirao.
Upravljački program povezivanja u Linuxu omogućuje vam spajanje više fizičkih mrežnih sučelja u povezano sučelje. Ovo povezano sučelje pojavljuje se kao jedinstveno virtualno mrežno sučelje za operativni sustav i aplikacije.
BILJEŠKA
Veza je logičko sučelje, tako da nije moguće postaviti CPU afinitet izravno na sučelje veze (npr.ample, veza0). To jest, nema izravnu kontrolu nad rukovanjem prekidima ili CPU afinitetom. CPU afinitet mora biti konfiguriran za temeljna sučelja koja su dio veze.
Lijepljenje nudi nekoliko načina rada, svaki sa svojim karakteristikama.

Način rada  Tip
0 Razigravanje
1 Aktivna sigurnosna kopija
2 XOR
3 Emitiranje
4 LACP
5 Balans opterećenja prijenosa
6 Prilagodljiva ravnoteža opterećenja

Postoje različite metode za stvaranje veze u Linuxu. Jedna od najčešćih metoda je korištenje mrežne konfiguracije files (nprample, /etc/network/ sučelja ili /etc/sysconfig/network-scripts/ifcfg-bondX).
Konfiguracija pomoću mrežne konfiguracije Files
Sljedeći koraci stvaraju vezu kroz konfiguraciju mreže files.

  1. Odaberite dva ili više NIC priključaka za povezivanje (nprample, ethX i ethY)
  2. Otvorite NIC konfiguraciju Files pod /etc/sysconfig/network-scripts/ za potrebno NIC sučelje (npr.ample, vi ifcfg-ethX i vi ifcfg-ethY) i dodajte sljedeći tekst:
    MASTER=bondN [Napomena: N je cijeli broj koji navodi broj veze.] SLAVE=yes
  3. Stvorite skriptu mrežne veze file koristeći vi /etc/sysconfig/networkscripts/ifcfg-bondN i unesite sljedeći tekst:
    DEVICE=bondN [Napomena: N je cijeli broj koji navodi broj veze] ONBOOT=da USERCTL=ne BOOTPROTO=dhcp (ili) ništa
    IPADDR=200.20.2.4 [potreban ako BOOTPROTO=nema] NETMASK=255.255.255.0 [potreban ako je BOOTPROTO=nema] NETWORK=200.20.2.0 [potreban ako je BOOTPROTO=nema] BROADCAST=200.20.2.255 [potreban ako BOOTPROTO=nema] BONDING_OPTS=”mode=1 miimon=100″
    BILJEŠKA
    Način može biti bilo koji cijeli broj od 0 do 6 na temelju zahtjeva.
  4. Ponovno pokrenite mrežne usluge korištenjem usluge ponovno pokretanje mreže ili ponovno pokretanje sustava Systemctl NetworkManager.service

Rješavanje problema s izvedbom

7.1 Iskorištenost procesora
Provjerite iskorištenost CPU-a po jezgri dok se radno opterećenje izvodi.
Imajte na umu da je iskorištenost po jezgri relevantnija za izvedbu nego ukupna iskorištenost procesora budući da daje ideju o korištenju procesora po mrežnom redu čekanja. Ako imate samo nekoliko niti koje izvode mrežni promet, tada se možda koristi samo nekoliko jezgri. Međutim, ako su te jezgre na 100%, tada je propusnost vaše mreže vjerojatno ograničena korištenjem CPU-a i vrijeme je da učinite sljedeće:

  1. Podesite moderiranje IRQ-a/veličinu zvona kako je opisano u Moderiranju prekida.
  2. Povećajte broj aplikacijskih niti kako biste rasporedili opterećenje CPU-a na više jezgri. Ako sve jezgre rade na 100%, tada je vaša aplikacija možda vezana za procesor, a ne za mrežu.

Često dostupni alati:

  • vrh
    — Pritisnite 1 da proširite popis CPU-a i provjerite koji se koriste.
    — Obratite pažnju na razinu iskorištenosti.
    — Primijetite koji su procesi navedeni kao najaktivniji (na vrhu popisa).
  • mpstat
    Sljedeći prampnaredbeni redak je testiran na Red Hat Enterprise Linux 7.x.
    Prikazuje iskorištenost CPU-a po jezgri (pronalaženjem ukupnog postotka mirovanja i oduzimanjem od 100) i ističe vrijednosti iznad 80% crvenom bojom. mpstat -P SVE 1 1 | grep -v Prosjek | rep -n +5 | glava -n -1 | awk '{ print (100-$13)}' | egrep -color=uvijek '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | stupac
  • perf top Potražite gdje se ciklusi troše.

7.2 i40e Brojači
Pokretački program i40e pruža dugačak popis brojača za otklanjanje pogrešaka i nadzor sučelja putem naredbe ethtool -S ethX. Može biti korisno promatrati izlaz dok se radno opterećenje izvodi i/ili usporediti vrijednosti brojača prije i nakon izvođenja radnog opterećenja.

  • Da biste dobili punu kopiju i40e brojača: ethtool -S ethX
  • Za promatranje samo ne-nultih brojača: watch -d (ethtool -S ethX) | egrep -v :\ 0 | stupac
    Neke stvari na koje treba obratiti pozornost:
  • rx_dropped znači da CPU ne servisira međuspremnike dovoljno brzo.
  • port.rx_dropped znači da nešto nije dovoljno brzo u utoru/memoriji/ sustavu.

7.3 Mrežni brojači
Provjerite netstat -s prije/poslije pokretanja radnog opterećenja.
Netstat prikuplja informacije o mreži sa svih mrežnih uređaja u sustavu. Stoga na rezultate mogu utjecati mreže koje nisu testirane. Izlaz iz netstat -s može biti dobar pokazatelj problema s performansama u Linux operativnom sustavu ili kernelu. Konzultirajte vodiče za podešavanje operativnog sustava, kao što je Red Hat Enterprise Linux Network Performance Tuning Guide, za više informacija o općem podešavanju operativnog sustava.
7.4 Dnevnici sustava
Provjerite zapisnike sustava za pogreške i upozorenja (/var/log/messages, dmesg).
7.5 Intel svr-info alat
Intel nudi svr-info alat (pogledajte https://github.com/intel/svr-info) za Linux koji hvata relevantne detalje hardvera i softvera s poslužitelja. Izlaz svr-info može biti od velike pomoći za prepoznavanje uskih grla sustava ili postavki/podešavanja koja nisu optimizirana za radno opterećenje. Kada otvarate zahtjev za podršku s Intelom za probleme s performansama povezanim s Ethernetom, obavezno uključite svr-info izlaz (tekst file) za svaki Linux poslužitelj u testnoj konfiguraciji.

  1. Preuzmite i instalirajte svr-info:
    wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
    ./svr-info
    > ime hosta.txt
  2. Prikupite izlaz:
    ./svr-info > hostname.txt
  3. Priložite jedan tekst (.txt) file za svaki poslužitelj vašem slučaju Intelove podrške na analizu.

Preporuke za uobičajene scenarije izvedbe

8.1 IP prosljeđivanje

  • Ažurirajte kernel.
    Neki nedavni kerneli u distribuciji imaju degradirane performanse usmjeravanja zbog promjena kernela u kodu za usmjeravanje počevši od uklanjanja predmemorije za usmjeravanje zbog sigurnosti. Nedavne jezgre izvan distribucije trebale bi imati zakrpe koje ublažavaju učinak ovih promjena na izvedbu i mogu pružiti poboljšanu izvedbu.
  • Onemogući hipernitnost (logičke jezgre).
  • Uredite parametre pokretanja jezgre.
    — Prisilno isključite iommu (intel_iommu=off ili iommu=off) iz retka za pokretanje kernela osim ako nije potreban za virtualizaciju
    — Isključite upravljanje napajanjem: processor.max_cstates=1 idle=poll pcie_aspm=off
  • Ograničite broj redova čekanja da bude jednak broju jezgri na lokalnoj utičnici (12 u ovom primjeruample). ethtool -L ethX kombinirani 12
  • Pin prekida samo na lokalnoj utičnici. set_irq_affinity -X lokalni ethX ILI set_irq_affinity -X lokalni ethX
    BILJEŠKA
    -X ili -x mogu se koristiti ovisno o radnom opterećenju.
  • Po potrebi promijenite veličinu prstena Tx i Rx. Veća vrijednost zahtijeva više resursa, ali može pružiti bolje stope prosljeđivanja. ethtool -G ethX rx 4096 tx 4096
  • Onemogući GRO prilikom usmjeravanja.
    Zbog poznatog problema s kernelom, GRO mora biti isključen prilikom usmjeravanja/prosljeđivanja. ethtool -K ethX gro off gdje je ethX Ethernet sučelje koje treba modificirati.
  • Onemogućite adaptivno moderiranje prekida i postavite statičku vrijednost. ethtool -C ethX adaptive-rx isključeno adaptive-tx isključeno ethtool -C ethX rx-usecs 64 tx-usecs 64

BILJEŠKA
Ovisno o vrsti procesora i radnom opterećenju, parametri spajanja za RX i TX mogu se podesiti za poboljšane performanse (ili manji gubitak okvira).

  • Onemogućite vatrozid. sudo systemctl onesposobi vatrozid sudo systemctl zaustavi vatrozid
  • Omogući IP prosljeđivanje. sysctl -w net.ipv4.ip_forward=1
  • Konfigurirajte maksimalne vrijednosti za veličinu međuspremnika utičnice za primanje i slanje. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216

BILJEŠKA
Ovisno o radnom opterećenju ili zahtjevu, ove se vrijednosti mogu promijeniti u odnosu na zadane.
8.2 Niska latencija

  • ISKLJUČITE hiper-nitnost (logičke jezgre).
  • Provjerite je li mrežni uređaj lokalan na numa core 0.
  • Pričvrstite referentnu vrijednost na jezgru 0 pomoću skupa zadataka -c 0.
  • Isključite irqbalance koristeći systemctl stop irqbalance ili systemctl disable irqbalance
  • Pokrenite skriptu afiniteta za širenje po jezgrama. Pokušajte ili lokalno ili sve.
  • Isključite moderiranje prekida. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- high 0
  • Ograničite broj redova čekanja da bude jednak broju jezgri na lokalnoj utičnici (32 u ovom primjeruample). ethtool -L ethX kombinirani 32
  • Pin prekida samo na lokalnoj utičnici (skripta zapakirana s izvorom upravljačkog programa i40e). set_irq_affinity -X lokalni ethX
  • Koristite uspostavljenu referentnu vrijednost kao što je netperf -t TCP_RR, netperf -t UDP_RR ili NetPipe. netperf -t TCP_RR ili netperf -t UDP_RR
  • Prikvačite referentnu vrijednost na jednu jezgru u lokalnom NUMA čvoru. skup zadataka -c

Intel ® Ethernet 700 serije
Vodič za podešavanje izvedbe Linuxa
prosinac 2024
O tome govori doc. br.: 334019, rev.: 1.2

Dokumenti / Resursi

Intel Ethernet 700 Series Linux Performance Tuning [pdf] Korisnički priručnik
334019, Ethernet 700 Series Linux Performance Tuning, Ethernet 700 Series, Linux Performance Tuning, Performance Tuning, Tuning

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *