Intel® Ethernet 700. sērija
Linux veiktspējas regulēšanas rokasgrāmata
NEX Cloud Networking Group (NCNG)
Rev. 1.2
2024. gada decembris
Pārskatīšanas vēsture
Pārskatīšana | Datums | komentāri |
1.2 | 2024. gada decembris | · Pievienotas papildu jaudas pārvaldības vadlīnijas. · Pievienots Intel* Turbo Boost. · Pievienots tīkla ierīču uzkrājums. · Pievienotas platformai specifiskas konfigurācijas un regulēšana. · Pievienoti 4. paaudzes Intel* %eon* mērogojami procesori. · Pievienots AMD EPYC. · Atjaunināts pārbaudīt sistēmas aparatūras iespējas. · Atjaunināts iPerf2. · Atjaunināts iPerf3. · Atjauninātas Tx/Rx rindas. · Atjaunināta pārtraukumu regulēšana. · Atjaunināts gredzena izmērs. · Atjaunināta platformas regulēšana (i40e nav specifiska). · Atjaunināti BIOS iestatījumi. · Atjaunināta C-State Control. · Atjaunināta CPU frekvences mērogošana. · Atjaunināti lietojumprogrammu iestatījumi. · Atjaunināti operētājsistēmas/kodola iestatījumi. · Atjaunināta IP pārsūtīšana. · Atjaunināts zems latentums. |
2023. gada augusts | Izmaiņas šajā dokumentā ietver: · Pievienotas saistītās atsauces. · Pievienots Nodrošiniet DDP pakotnes pareizu ielādi. · Pievienots iPerf2. · Pievienots iPerf3. · Pievienots netperf. · Atjaunināta IRQ Affinity. · Pievienotas Tx/Rx rindas. · Atjaunināts gredzena izmērs. · Pievienoti Jumbo rāmji. · Pievienota adaptera savienošana. · Pievienots Intel svr-info rīks. |
|
1.0 | 2016. gada marts | Sākotnējā izlaišana (Intel Public). |
Ievads
Šī rokasgrāmata ir paredzēta, lai sniegtu norādījumus par vides regulēšanu optimālai tīkla veiktspējai, izmantojot Intel® Ethernet 700. sērijas NIC Linux vidēs. Tajā galvenā uzmanība pievērsta aparatūras, draiveru un operētājsistēmas apstākļiem un iestatījumiem, kas varētu uzlabot tīkla veiktspēju. Jāņem vērā, ka tīkla veiktspēju var ietekmēt jebkādas ārējas ietekmes, šajā rokasgrāmatā ir apskatītas tikai visizplatītākās un dramatiskākās no tām.
1.1. Saistītās atsauces
- Lietotāja rokasgrāmata visiem Intel ® Ethernet adapteriem un ierīcēm, kas atbalsta Windows un Linux:
Intel ® Ethernet adapteru un ierīču lietotāja rokasgrāmata - Tehnisko datu lapa:
Intel ® Ethernet kontrollera X710/XXV710/XL710 datu lapa - Pilnīgs SW komplekts visiem Intel® Ethernet produktiem (lejupielādējiet visus draiverus, NVM, rīkus utt.):
Intel ® Ethernet Adapter Complete Driver Pack - NVM (nemainīgās atmiņas) atjaunināšanas pakotne:
Negaistošās atmiņas (NVM) atjaunināšanas utilīta Intel® Ethernet tīkla adapterim 700. sērijai - svr-info rīks operētājsistēmai Linux, kas uztver atbilstošu aparatūras un programmatūras informāciju no servera: https://github.com/intel/svr-info
- DDP tehnoloģiju rokasgrāmata:
Intel ® Ethernet 700. sērijas dinamiskās ierīču personalizācijas (DDP) tehnoloģiju rokasgrāmata
Sākotnējais kontrolsaraksts
2.1. Atjaunināt draivera/programmaparatūras versijas
Pārbaudiet draivera/programmaparatūras versijas, izmantojot ethtool -i ethx.
Ja nepieciešams, atjauniniet tālāk norādīto.
- Atjauniniet i40e draiveri
http://sourceforge.net/projects/e1000/files/i40e%20stable/ or https:// downloadcenter.intel.com/ download/24411/Network-Adapter-Driver-for-PCI-E-40- Gigabit-Network-Connections-under-Linux - Atjauniniet programmaparatūru
https: //downloadcenter.intel.com/download/24769/NVM-Update-Utility-for-Intel- Ethernet-ConvergedNetwork-Adapter-XL710-X710-Series
2.2 Izlasiet README
Pārbaudiet zināmās problēmas un saņemiet jaunākos konfigurācijas norādījumus no README file iekļauts i40e avota pakotnē.
2.3 Pārbaudiet, vai jūsu PCI Express (PCIe) slots ir x8
Daži PCIe x8 sloti faktiski ir konfigurēti kā x4 sloti. Šiem slotiem ir nepietiekams joslas platums pilnam līnijas ātrumam ar divu portu un četru portu ierīcēm. Turklāt, ja ievietojat PCIe v3.0 adapteri PCIe v2.x slotā, jūs nevarat iegūt pilnu joslas platumu. Programmatūras ierīces draiveris nosaka šo situāciju un sistēmas žurnālā ieraksta šādu ziņojumu:
Šai kartei pieejamais PCI-Express joslas platums nav pietiekams optimālai veiktspējai. Optimālai veiktspējai ir nepieciešams x8 PCI-Express slots.
Ja rodas šī kļūda, pārvietojiet adapteri uz īstu PCIe v3.0 x8 slotu, lai atrisinātu problēmu.
2.4. Pārbaudiet sistēmas aparatūras iespējas
Pie 10 Gb/s, 25 Gb/s un 40 Gb/s Ethernet ir dažas minimālās CPU un sistēmas prasības. Kopumā ar modernu servera klases procesoru un optimālu atmiņas konfigurāciju jūsu platformai vajadzētu pietikt, taču vajadzības atšķiras atkarībā no jūsu darba slodzes. Visiem atmiņas kanāliem jābūt aizpildītiem un BIOS ir jāiespējo atmiņas veiktspējas režīms. Pārbaudiet, vai jūsu CPU un atmiņas konfigurācija spēj nodrošināt jūsu darba slodzei nepieciešamo tīkla veiktspējas līmeni.
PIEZĪME
XL710 ir 40 GbE kontrolieris. 2 x 40 GbE adapteris, kas izmanto šo kontrolieri, nav paredzēts kā 2 x 40 GbE, bet gan 1 x 40 GbE ar aktīvu rezerves portu. Mēģinot izmantot līnijas ātruma trafiku, kas ietver abus portus, iekšējais slēdzis ir piesātināts un kopējais joslas platums starp abiem portiem ir ierobežots līdz SO Gbps.
2.4.1. Kodola sāknēšanas parametri
Ja BIOS ir iespējota Intel® virtualizācijas tehnoloģija virzītai I/O (Intel® VT-d), Intel iesaka, lai IOMMU būtu caurlaides režīmā, lai nodrošinātu optimālu resursdatora tīkla veiktspēju. Tas novērš DMA pieskaitāmās izmaksas resursdatora trafikā, vienlaikus ļaujot virtuālajām mašīnām (VM) joprojām izmantot Intel® VT-d priekšrocības. To panāk, kodola sāknēšanas parametriem pievienojot šādu rindiņu: fommu-pt.
2.5. Nodrošiniet, lai DDP pakotne tiktu ielādēta pareizi
140ea un 140eb bāzes draiveriem nav tieša atbalsta dinamiskajai ierīču personalizēšanai (DDP). Lai izmantotu DDP ar 700. sērijas ierīcēm, DDP profile var lietot ar testpmd lietojumprogrammu.
Sīkāka informācija par DDP profiles un kā lietot DDP profile ar testpmd 700. sērijas ierīcēs, skatiet Intel® Ethernet 700. sērijas dinamiskās ierīču personalizācijas (DDP) tehnoloģiju rokasgrāmatu.
Lai pārbaudītu, vai DDP profile tika veiksmīgi ielādēts:
testpmd> ddp iegūt sarakstu 0 Profile numurs ir: 1
PIEZĪME
Ja profile numurs ir 0, nav ielādēta neviena DDP pakotne. DDP pakotnes ielādes kļūdas gadījumā ierīce pēc noklusējuma pāriet uz drošo režīmu un daudzas veiktspējas funkcijas nav pieejamas. Ja rodas kļūdas saistībā ar DDP pakotnes ielādi, tas radīs veiktspējas problēmas. Problēmu novēršanas darbības skatiet Inte/* Ethernet 700 Series Dynamic Device Personalization (DDP) tehnoloģiju rokasgrāmatā.
Sākotnējie veiktspējas mērījumi un regulēšanas metodika
3.1. Tīkla veiktspējas kritēriji
Pirms regulēšanas vingrinājuma sākšanas ir svarīgi veikt labu tīkla veiktspējas sākotnējo mērījumu. Parasti papildus sākotnējās konkrētās lietojumprogrammas/darba slodzes veiktspējas noteikšanai ir ieteicams izmantot arī standarta tīkla veiktspējas etalonu, lai pārbaudītu, vai tīkla ierīce ir labā stāvoklī.
Atsevišķas sistēmas optimizācijai netperf vai iperf un NetPIPE ir stabili atvērtā koda bezmaksas rīki, kas ļauj palielināt savienojumu un diagnosticēt veiktspējas problēmas.
Netperf ir spēcīgs gan caurlaidspējas, gan latentuma testēšanai. NetPIPE ir latentuma specifisks rīks, taču to var apkopot jebkurai videi.
PIEZĪME
TCP_RR tests netperf atgriež latentumu darījumu vērtībā sekundē. Šis ir maršruta numurs. Vienvirziena latentumu var aprēķināt, izmantojot šādu vienādojumu:
Latentums (usec) = (1⁄2) / [Darījumi/s] * 1,000,000 XNUMX XNUMX
3.1.1 iPerf2
Intel iesaka iperf2, nevis iperf3 vairumam etalonuzdevumu situāciju, jo ir vienkārša lietošana un atbalsts vairākiem pavedieniem vienā lietojumprogrammas instancē. Intel iesaka darboties ar opciju -P ar 2–4 pavedieniem 25G savienojumiem un aptuveni 4–6 pavedieniem 40G savienojumiem.
- Lai palaistu vienvirziena trafiku no klienta uz serveri: Servera komanda piemample: iperf2 -s
Klienta komanda, piemample: iperf2 -c -P - Lai palaistu divvirzienu trafiku no klienta uz serveri (un otrādi): Servera komanda piemample: iperf2 –s –p
Klienta komanda, piemample:
iperf2 -c -lpp -P --pilna dupleksa VAI
iperf2 -c -lpp -P –d
PIEZĪME
Gan iperf2 opcijas -full-duplex un -d ļauj lietotājam veikt divvirzienu testēšanu. Tomēr opcija –full-duplex ir īpaši vērsta uz pilnu duplekso testēšanu.
PIEZĪME
Pārbaudot iperf2 vairākos servera portos, servera komandai var pievienot karogu -d, lai fonā palaistu visas servera sesijas no tā paša termināļa loga. Karodziņu -d var izmantot arī tad, ja servera komanda ir iegulta skripta for-cilpā.
PIEZĪME
Palaižot tīkla caurlaidspējas pārbaudi ar vienu straumi/pavedienu (piem.,ample: P1), AMD procesori var nenodrošināt paredzēto caurlaidspēju, jo īpaši lielāka joslas platuma NIC (ja ātrums ir >= 25G joslas platums). Tā rezultātā, lai sasniegtu lielāku caurlaidspēju, ir nepieciešama lietojumprogrammu piespraušana konkrētiem kodoliem. Skatiet Lietojumprogrammu iestatījumi 22. lpp.
3.1.2 iPerf3
Ja tiek izmantots iperf3, ir nepieciešami vairāki lietojumprogrammas gadījumi, lai izmantotu Advantage no vairāku pavedienu, RSS un aparatūras rindām. Intel iesaka darboties ar 2-4 lietojumprogrammu sesijām 25G savienojumiem un aptuveni 4-6 sesijām 40G savienojumiem. Katrai sesijai ir jānorāda unikāla TCP porta vērtība, izmantojot opciju -p.
- Lai palaistu vienvirziena trafiku no klienta uz serveri:
Servera komanda, piemample:
iperf3 -s -p
Klienta komanda, piemample:
iperf3 -c -lpp - Lai palaistu divvirzienu trafiku no klienta uz serveri (un otrādi):
Servera komanda, piemample:
iperf3 –s –lpp
Klienta komanda, piemample: iperf3 -c -lpp -P –-bidir - Lai palaistu vairākus iperf3 gadījumus (pavedienus), ieteicams izmantot for-cilpu, lai kartētu pavedienus uz TCP portiem un palaistu iperf3 fonā, izmantojot &, lai paralēli izveidotu vairākus procesus.
Servera komanda, piemample, sāciet 4 pavedienus: port=””; priekš i {0..3}; do ports=520$i; bash -c "iperf3 -s -p $port &"; darīts; Klienta komanda, piemample, start 4 threads – Transmit test port=””; priekš i {0..3}; do ports=520$i; bash -c "iperf3 -c $serverIP -p $port &"; darīts; Klienta komanda, piemample, start 4 threads – Receive test port=””; priekš i {0..3}; do ports=520$i; bash -c "iperf3 -R -c $serverIP -p $port &"; darīts; 40 G savienojumiem palieliniet for-cilpu, lai izveidotu līdz 6 gadījumiem/pavedieniem.
PIEZĪME
Palaižot tīkla caurlaidspējas pārbaudi ar vienu straumi/pavedienu (piem.,ample: P1), AMD procesori var nenodrošināt paredzēto caurlaidspēju, īpaši lielāku joslas platumu
NIC (ja ātrums ir >= 25G joslas platums). Tā rezultātā, lai sasniegtu lielāku caurlaidspēju, ir nepieciešama lietojumprogrammu piespraušana konkrētiem kodoliem. Skatiet Lietojumprogrammu iestatījumi 22. lpp un AMD EPYC 26. lpp.
3.1.3 netperf
Netperf rīks ir lieliska izvēle gan caurlaidspējas, gan latentuma pārbaudei.
- TCP_STREAM tests netperf mēra ierīces caurlaides spējas. Servera komanda, piemample: netserver Klienta komanda example: netperf -t TCP_STREAM -l 30 -H
- TCP_RR tests netperf atgriež latentumu darījumu vērtībā sekundē. Šis ir maršruta numurs. Ieteicams izmantot opciju -T x,x, ja x ir ierīces lokālais centrālais procesors. Vienvirziena latentumu var aprēķināt, izmantojot: Latency(usec)=(1⁄2)/ [Darījumi/sek.]*1,000,\ Servera komanda piem.ample: tīkla serveris
Klienta komanda, piemample: netperf -t TCP_RR -l 30 -H -T x,x - Lai sāktu vairākas netperf instances (pavedienus), ieteicams izmantot for-cilpu, lai kartētu pavedienus uz TCP portiem un palaistu netperf fonā, izmantojot &, lai paralēli izveidotu vairākus procesus.
Servera komanda, piemample, sāciet 8 pavedienus:
ports=””; priekš i {0..7}; do ports=520$i; bash -c “netserver -L $serverIP -p $port &”; darīts;
Klienta komanda, piemample, sāciet 8 pavedienus: port=””; priekš i {0..7}; do ports=520$i; bash -c "netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &"; darīts;
3.2. Noskaņošanas metodika
Koncentrējieties uz vienu regulēšanas izmaiņu vienlaikus, lai zinātu, kā katras izmaiņas ietekmē jūsu pārbaudi. Jo metodiskāks būsiet regulēšanas procesā, jo vieglāk būs noteikt un novērst veiktspējas vājo vietu cēloņus.
i40e draivera iestatījumu regulēšana
4.1 IRQ radniecība
IRQ afinitātes konfigurēšana tā, lai dažādu tīkla rindu pārtraukumi tiktu saistīti ar dažādiem CPU kodoliem, var būtiski ietekmēt veiktspēju, jo īpaši daudzpavedienu caurlaidspējas testus.
Lai konfigurētu IRQ radniecību, apturiet irqbalance un pēc tam izmantojiet skriptu set_irq_affinity no i40e avota pakotnes vai piespraudes rindas manuāli. Atspējojiet lietotāja vietas IRQ balansētāju, lai iespējotu rindas piespraušanu:
- systemctl atspējot irqbalance
- systemctl stop irqbalance
Izmantojot set_irq_affinity skriptu no i40e avota pakotnes (ieteicams): - Lai izmantotu visus kodolus:
[ceļš uz i40epackage]/scripts/set_irq_affinity -X all ethX - Lai izmantotu tikai kodolus vietējā NUMA ligzdā: [path-to-i40epackage]/scripts/set_irq_affinity -X local ethX
- Varat arī izvēlēties serdeņu klāstu. Neizmantojiet cpu0, jo tas izpilda taimera uzdevumus. [ceļš uz i40epackage]/scripts/set_irq_affinity 1-2 ethX
PIEZĪME
Afinitātes skripts iespējo Transmit Packet Steering (XPS) kā daļu no piespraušanas procesa, kad ir norādīta opcija -x. Kad XPS ir iespējots, Intel iesaka atspējot irqbalance, jo kodola balansētājs ar XPS var izraisīt neparedzamu veiktspēju. Kad ir norādīta opcija -X, radniecības skripts atspējo XPS. XPS atspējošana un simetrisko rindu iespējošana ir noderīga darba slodzēm, kurās vislabākā veiktspēja tiek sasniegta, kad Tx un Rx trafiku apkalpo vienā(-os) rindu pārī(-os).
Simetrisko rindu konfigurēšana operētājsistēmā Linux ietver tīkla interfeisa draivera parametru noregulēšanu, lai atbalstītiem tīkla adapteriem iespējotu simetriskas saņemšanas rindas (Rx) un simetriskas pārsūtīšanas rindas (Tx).
PIEZĪME
- Simetriskās rindas ir uzlabota tīkla funkcija, un ne visi 700. sērijas tīkla adapteri vai draiveri tos atbalsta.
- Pirms mēģināt konfigurēt simetriskas rindas, pārliecinieties, vai jums ir nepieciešamais draivera un aparatūras atbalsts.
Lai konfigurētu simetriskas rindas, veiciet šīs vispārīgās darbības:
- Rediģēt tīkla interfeisa konfigurāciju File: izmantojiet teksta redaktoru (piemēram,ample, vi, nano vai gedit), lai rediģētu tīkla interfeisa konfigurāciju file. The file parasti atrodas direktorijā /etc/sysconfig/network-scripts/, un tam ir tāds nosaukums kā ifcfg-ethX, kur ethX ir jūsu tīkla interfeisa nosaukums.
- Pievienojiet simetriskas rindas parametrus. Pievienojiet šādas rindas tīkla interfeisa konfigurācijai file: ETHTOOL_OPTS=”rx-rindas 8 tx-rindas 8”
- Restartējiet tīkla pakalpojumu.
Pēc izmaiņu veikšanas restartējiet tīkla pakalpojumu, lai lietotu jauno konfigurāciju. sudo systemctl restartējiet tīklu
Manuāli:
-
Atrodiet katram mezglam pievienotos procesorus, izmantojot: numactl –hardware lscpu
-
Atrodiet bitu maskas katram procesoram:
- Pieņemot, ka 0. mezgla kodoli ir 11–0: [1,2,4,8,10,20,40,80,100,200,400,800]
- Atrodiet piešķirtajam portam piešķirtos IRQ: grep ethX /proc/interrupts un atzīmējiet IRQ vērtības. Piemēramample, 181-192 ielādētajiem 12 vektoriem.
- Atskaņojiet SMP afinitātes vērtību attiecīgajā IRQ ierakstā. Ņemiet vērā, ka tas ir jādara katram IRQ ierakstam: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity Rādīt IRQ afinitāti:
- Lai parādītu IRQ afinitāti visiem kodoliem: /scripts/set_irq_affinity -s ethX
- Lai rādītu tikai vietējās NUMA ligzdas kodolus: /scripts/set_irq_affinity -s lokālais ethX
- Varat arī atlasīt virkni serdeņu: /scripts/set_irq_affinity -s 40-0-8,16 ethX
PIEZĪME
Skripts set_irq_affinity atbalsta karogu -s i40e draivera versijā 2.16.11 un jaunākās versijās.
4.2 Tx/Rx rindas
Noklusētais rindu skaits, ko draiveris inicializācijas laikā iespējojis katram Ethernet portam, ir vienāds ar kopējo platformā pieejamo centrālo procesoru skaitu. Tas labi darbojas daudzām platformām un darba slodzes konfigurācijām. Tomēr platformās ar lielu kodolu skaitu un/vai lielu Ethernet porta blīvumu šī konfigurācija var izraisīt resursu strīdu. Tāpēc dažos gadījumos var būt nepieciešams mainīt katra sistēmas porta noklusējuma iestatījumu.
Noklusētais Tx/Rx rindu skaits var atšķirties atkarībā no konkrētā modeļa un draivera versijas. Rindu skaitu var pielāgot, izmantojot tālāk norādīto komandu ethtool -L.
PIEZĪME
Šādos gadījumos Intel iesaka samazināt noklusējuma rindu skaitu katram portam līdz ne vairāk kā CPU skaitam, kas ir pieejams NUMA mezglā, kas atrodas adaptera porta lokālajā. Dažos gadījumos, mēģinot līdzsvarot resursus ar lielu portu skaitu, var būt nepieciešams vēl vairāk samazināt šo skaitu.
Lai mainītu rindas konfigurāciju:
Nākamais example iestata portu uz 32 Tx/Rx rindām: ethtool -L ethX apvienots 32
Exampizvade:
ethtool -l ethX
EthX kanāla parametri: iepriekš iestatītie maksimumi:
RX: 96
TX: 96
Cits: 1 XNUMX
Kopā: 96
Pašreizējie aparatūras iestatījumi:
RX: 0
TX: 0
Cits: 1 XNUMX
Kopā: 32
4.3. Pārtraukšanas regulēšana
Adaptīvā pārtraukumu regulēšana ir ieslēgta pēc noklusējuma, un tā ir izstrādāta, lai nodrošinātu līdzsvarotu pieeju starp zemu CPU noslogojumu un augstu veiktspēju. Tomēr varat mēģināt manuāli pielāgot pārtraukumu iestatījumus, lai tie atbilstu jūsu lietošanas gadījumam.
Diapazons no 0 līdz 235 mikrosekundēm nodrošina efektīvu diapazonu no 4,310 250,000 līdz 2 XNUMX pārtraukumiem sekundē. Vērtību rx-μsec-high var iestatīt neatkarīgi no rx-μsec un tx-μsec vienā un tajā pašā ethtool komandā, un tā ir arī neatkarīga no adaptīvā pārtraukuma regulēšanas algoritma. Pamatā esošā aparatūra atbalsta precizitāti XNUMX mikrosekunžu intervālos, tāpēc blakus esošās vērtības var radīt tādu pašu pārtraukumu ātrumu.
- Lai izslēgtu adaptīvo pārtraukumu regulēšanu: ethtool -C ethX adaptive-rx off adaptive-tx off
- Lai ieslēgtu adaptīvo pārtraukumu regulēšanu: ethtool -C ethX adaptive-rx on adaptive-tx ieslēgts
Laba vieta vispārējai noregulēšanai ir 84 μs jeb ~12000 pārtraukumi/s. Ja redzat, ka trafika laikā darbojas rx_dropped skaitītāji (izmantojot ethtool -S ethX), iespējams, jums ir pārāk lēns CPU, nav pietiekami daudz buferu no adaptera gredzena lieluma (ethtool -G), lai saglabātu paketes 84 μs vai zemu pārtraukumu ātrumu.
- Lai iestatītu pārtraukumu regulēšanu uz fiksētu pārtraukumu ātrumu 84 μs starp pārtraukumiem (12000 pārtraukumi/s): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usec 84 tx-usecs 84 Nākamā izmēģināmā vērtība, ja neesat maksimāli izmantojis CPU, ir 62 μs. Tas izmanto vairāk CPU, taču tas apkalpo buferi ātrāk un prasa mazāk deskriptoru (zvana lielums, ethtool -G).
- Lai iestatītu pārtraukumu moderāciju uz fiksētu pārtraukumu ātrumu 62 lietojumi starp pārtraukumiem (16000 pārtraukumi/s). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
Ja rx_dropped skaitītāji palielinās trafika laikā (izmantojot ethtool -S ethX), iespējams, jums ir pārāk lēns CPU, nav pietiekami daudz buferu no adaptera gredzena izmēra (ethtool -G) vai pārāk zems pārtraukumu līmenis. Ja neesat pilnībā izmantojis CPU, varat palielināt pārtraukumu ātrumu, samazinot ITR vērtību. Tas izmanto vairāk CPU, bet pakalpojumi buferē ātrāk un prasa mazāk deskriptoru (zvana lielums, ethtool -G).
Ja jūsu CPU ir 100%, tad nav ieteicams palielināt pārtraukumu biežumu. Noteiktos apstākļos, piemēram, ar CPU saistīta darba slodze, iespējams, vēlēsities palielināt μs vērtību, lai nodrošinātu vairāk CPU laika citām lietojumprogrammām.
Ja jums ir nepieciešama zema latentuma veiktspēja un/vai ir daudz CPU, ko veltīt tīkla apstrādei, varat pilnībā atspējot pārtraukumu regulēšanu, kas ļauj pārtraukumiem aktivizēties pēc iespējas ātrāk. - Lai atspējotu pārtraukšanas regulēšanu ethtool -C ethX adaptive-rx off adaptive-tx off rx-usec 0 tx-usecs 0
PIEZĪME
Darbojoties ar atspējotu pārtraukumu regulēšanu, pārtraukumu līmenis katrā rindā var būt ļoti augsts. Apsveriet iespēju iekļaut parametru rx-usec-high, lai iestatītu pārtraukšanas ātruma augšējo robežu. Tālāk norādītā komanda atspējo adaptīvo pārtraukumu regulēšanu un pieļauj ne vairāk kā 5 mikrosekundes, pirms tiek norādīts, ka saņemšana vai pārsūtīšana ir pabeigta. Tā vietā, lai radītu 200,000 50,000 pārtraukumu sekundē, tas ierobežo kopējo pārtraukumu skaitu sekundē līdz 20 5, izmantojot parametru rx-usec-high. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 5 rx-usecs 80 txusecs 100 Mēģiniet pielāgot pārraides/saņemšanas/augstas prioritātes apvienošanas taimeri augstāku (150/200/25/20) vai zemāku (10/5) darba vērtību, lai atrastu optimālo darba vērtību.
4.4 Gredzena izmērs
Ja programmā ethtool -S ethX (rx_dropped, rx_dropped.nic) redzat rx_dropped skaitītājus vai jums ir aizdomas par kešatmiņas spiedienu ar vairākām aktīvām rindām, varat mēģināt pielāgot gredzena izmēru no noklusējuma vērtības. Noklusējuma vērtība ir 512, maksimālā ir 4096.
- Lai pārbaudītu pašreizējās vērtības: ethtool -g ethX
Ja ir aizdomas, ka buferizācijas trūkums izraisa pašreizējā pārtraukuma ātruma samazināšanos, vispirms varat izmēģināt maksimālo, pēc tam minimālo un pēc tam turpināt bināro meklēšanu, līdz redzat optimālo veiktspēju.
Ja ir aizdomas par kešatmiņas spiedienu (daudzas rindas ir aktīvas), buferu samazināšana pēc noklusējuma var palīdzēt Intel® Data Direct I/O (Intel® DDIO) darboties efektīvāk. Intel iesaka izmēģināt 128 vai 256 katrā rindā, apzinoties, ka var būt nepieciešams palielināt pārtraukumu ātrumu, izmantojot ethtool -C, lai izvairītos no rx_dropped pieauguma. - Lai iestatītu gredzena izmēru uz fiksētu vērtību: ethtool -G eth12 rx 256 tx 256
PIEZĪME
Lai labotu Rx pakešu zudumus, kas atrasti, izmantojot ethtool -S ethX|grep drop, apsveriet iespēju palielināt gredzena izmēru līdz 4096. Eksperimentējiet, lai atrastu darba slodzei vislabāko iestatījumu, taču uzmanieties no pārmērīga atmiņas lietojuma ar lielākām vērtībām.
4.5. Plūsmas kontrole
2. slāņa plūsmas vadība var ievērojami ietekmēt TCP veiktspēju, un to ieteicams atspējot lielākajai daļai darba slodžu. Potenciāls izņēmums ir intensīva satiksme, kurā sēriju ilgums nav ilgs.
Plūsmas vadība pēc noklusējuma ir atspējota.
- Lai iespējotu plūsmas kontroli: ethtool -A ethX rx on tx on ieslēgts
- Lai atspējotu plūsmas kontroli: ethtool -A ethX rx off tx off
PIEZĪME
Lai veiksmīgi iespējotu plūsmas kontroli, jums ir jābūt saišu partnerim, kas spēj kontrolēt plūsmas kontroli.
4.6. Jumbo Frames
Ja paredzamā satiksmes vide sastāv no lieliem datu blokiem, kas tiek pārsūtīti, varētu būt lietderīgi iespējot jumbo frame funkciju. Jumbo Frames atbalsts ir iespējots, mainot maksimālo pārraides vienību (MTU) uz vērtību, kas ir lielāka par noklusējuma vērtību 1500. Tas ļauj ierīcei pārsūtīt datus lielākās paketēs tīkla vidē. Šis iestatījums var uzlabot caurlaidspēju un samazināt CPU izmantošanu lielām I/O darba slodzēm. Tomēr tas var ietekmēt mazu pakešu vai latentuma jutīgu darba slodzi.
PIEZĪME
Jumbo kadriem vai lielākiem MTU iestatījumiem ir jābūt pareizi konfigurētiem visā tīkla vidē.
Izmantojiet komandu ifconfig, lai palielinātu MTU lielumu. Piemēram,ample, ievadiet tālāk norādīto, kur ir interfeisa numurs: ifconfig mtu 9000 uz augšu
Varat arī izmantot ip komandu šādi: ip link set mtu 9000 dev ip saites iestatīšana dev
Platformas regulēšana (i40e nav specifiska)
5.1 BIOS iestatījumi
- Iespējot Intel® VT-d virtualizācijas darba slodzēm.
- Hipervītņošana (loģiskie procesori) var ietekmēt veiktspēju. Eksperimentējiet ar to ieslēgtu vai izslēgtu atbilstoši savai darba slodzei.
- Intel® Turbo Boost ļauj CPU kodoliem darboties ar augstāku frekvenci nekā CPU bāzes frekvence. Intel® Turbo Boost iespējošana var uzlabot veiktspēju daudzām darba slodzēm, taču patērē vairāk enerģijas, lai kodoliem būtu augstāka frekvence. Eksperimentējiet ar Turbo Boost izslēgšanu/ieslēgšanu atbilstoši savai darba slodzei.
PIEZĪME
Turbo frekvences netiek garantētas, ja platforma piedzīvo augstu kopējo CPU noslogojumu. Augstākas kodola turbo frekvences tiek samazinātas, palielinoties CPU noslodzei.
5.2. Enerģijas pārvaldība
Enerģijas pārvaldība var ietekmēt veiktspēju, jo īpaši ar zemu latentuma darba slodzi. Ja veiktspējai ir augstāka prioritāte nekā enerģijas patēriņa samazināšanai, Intel iesaka eksperimentēt ar enerģijas pārvaldības ietekmes ierobežošanu. Ir daudz dažādu veidu, kā ierobežot enerģijas pārvaldību, izmantojot operētājsistēmas rīkus, BIOS iestatījumus un kodola sāknēšanas parametrus. Izvēlieties savai videi piemērotāko metodi un līmeni.
5.2.1. C stāvokļa kontrole
C-stāvokļa ievades ierobežošana līdz CO vai C1 uzlabo veiktspēju un palielina enerģijas patēriņu.
CPU pakotnes C6 stāvokļa ievades atspējošana var uzlabot tīkla veiktspēju. Tomēr tas palielina enerģijas patēriņu.
Ir pieejamas šādas opcijas:
- Dinamiski kontrolējiet C stāvokļa ierakstu:
Atvērt
/dev/cpu_dma_latency un ierakstiet tajā maksimālo pieļaujamo latentumu.
PIEZĪME
Ir neliela programma ar nosaukumu cpudmalatency.c, kuru var lejupielādēt no atvērtā pirmkoda kopienas, apkopot un palaist no komandrindas, lai to izdarītu.
Nākamais example pieļauj piecus μs nomoda laiku un tādējādi ļauj ievadīt C1: cpudmalatency 5 &
- Ierobežojiet maksimālo C statusu kodola sāknēšanas iestatījumos:
Intel centrālajiem procesoriem: intel_idle.max_cstates=1
Ne-Intel CPU: processor.max_cstates=1 - Izmantojiet komandu cpupower, lai pārbaudītu un atspējotu CPU C6 stāvokli: Pārbaudiet: cpupower monitors vai cpupower idle-info
Atspējot C6: cpupower idle-set -d3 vai
Atspējot C-status: cpupower idle-set -D0
Piezīmes:
- Ja serverim ir Intel® 4th Gen Intel® Xeon® mērogojams(-i) procesors(-i), atspējojiet C stāvokļus CPU. Ja ir iespējota vai atspējota funkcija Hyper Threading, dīkstāves stāvokļu (-D0) atspējošana novērš kodolu pāriešanu mazjaudas stāvokļos dīkstāves periodos un samazina CPU latentumu, lai pārietu no dīkstāves uz aktīvo stāvokli.
- Intel® 4th Gen Intel® Xeon® mērogojamā procesora jaudas pārvaldība ir ārkārtīgi agresīva. Lai izvairītos no kodolu nonākšanas mazjaudas stāvokļos, mēģiniet samazināt izmantoto kodolu skaitu, lai tie ilgāk paliktu nomodā (ethtool -L apvienots ). Saistiet arī pārtraukumus ar noteiktiem kodoliem, izmantojot iestatīto irq afinitāti (visbiežāk ar -x local vai CPU kodolu sarakstu), un nodrošiniet, lai darba slodze darbotos tajos pašos kodolos, izmantojot uzdevumu kopu vai numactl. Tas uzlabo veiktspēju, saglabājot kodolus aktīvus un optimizējot pārtraukumu apstrādi.
Iespējot C6:
cpupower idle-set -d3
Iespējot C-status:
cpupower dīkstāves komplekts -E
- Vēl viena metode ir izmantot pielāgoto rīku (iekļauts daudzos Linux izplatījumos), lai iestatītu veiktspējas profesionālifile. Šie profiles mainīt vairākus OS iestatījumus, kas var ietekmēt veiktspēju daudzās lietojumprogrammās. Ir konstatēts, ka tīkla caurlaidspējas profile nodrošina uzlabojumus lielākajai daļai darba slodžu.
Pārbaudiet:
tuned-adm aktīvs
Iestatījums:
tuned-adm profile tīkla caurlaidspēja
PIEZĪME
Noregulētajam pakalpojumam ir jādarbojas iepriekš minētajām komandām. Lai pārbaudītu/restartētu, noregulēts: systemctl status noregulēts systemctl restart noregulēts
Varat arī aizliegt jebkuru C-state ierakstu, pievienojot kodola sāknēšanas rindai:
tukšgaita = aptauja - Ierobežojiet C statusu, izmantojot sistēmas BIOS jaudas pārvaldības iestatījumus, kuriem var būt veiktspējas profesionāļifile pieejams.
Lai pārbaudītu vai iestatītu enerģijas pārvaldības iestatījumus, var izmantot tādus rīkus kā turbostat vai x86_energy_perf_policy.
5.2.2. PCIe jaudas pārvaldība
Aktīvā stāvokļa jaudas pārvaldība (ASPM) nodrošina zemākas jaudas stāvokli PCIe saitēm, kad tās netiek aktīvi izmantotas. Tas var izraisīt lielāku latentumu PCIe tīkla ierīcēs, tāpēc Intel iesaka atspējot ASPM ar latentumu jutīgām darba slodzēm. Atspējojiet ASPM, pievienojot kodola sāknēšanas rindai: pcie_aspm=off
5.2.3. CPU frekvences mērogošana
CPU frekvences mērogošana (vai CPU ātruma mērogošana) ir Linux enerģijas pārvaldības paņēmiens, kurā sistēmas pulksteņa ātrums tiek pielāgots lidojumā, lai taupītu enerģiju un siltumu. Tāpat kā C-stāvokļi, tas var izraisīt nevēlamu latentumu tīkla savienojumiem.
Cpupower rīku var izmantot arī, lai pārbaudītu un mainītu CPU veiktspējas noklusējuma iestatījumus un ierobežojumus:
- Pārbaudiet: cpupower monitoru vai
- Iestatīt CPU veiktspējas režīmā: cpupower frekvence-set -g performance
PIEZĪME
CPU frekvences ierobežojumu izmaiņas var ietekmēt daudzas darba slodzes un var atspējot citas funkcijas, piemēram, CPU turbo režīmu.
Lai atspējotu CPU frekvences mērogošanu, atspējojiet CPU jaudas pakalpojumu, izmantojot šādas komandas:
systemctl stop cpupower.service
systemctl atspējot cpupower.service
5.2.4. Papildu jaudas pārvaldības norādījumi
Papildu informācija ir sniegta šajā augsta līmeņa pārskatāview daudzām enerģijas pārvaldības funkcijām trešās paaudzes Intel® Xeon® mērogojamajos procesoros, kā arī norādījumus par to, kā šīs funkcijas var integrēt platformas līmenī: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Intel® Turbo Boost vajadzības gadījumā padara procesoru ātrāku, taču var patērēt papildu jaudu. Izslēdzot Turbo Boost, procesors tiek uzturēts vienmērīgā ātrumā, nodrošinot konsekventu veiktspējas līmeni noteiktām darba slodzēm.
5.4 Ugunsmūri
Ugunsmūri var ietekmēt veiktspēju, jo īpaši latentuma veiktspēju.
Atspējojiet iptables/firewall, ja tas nav nepieciešams.
5.5 Lietojumprogrammas iestatījumi
Bieži vien ar vienu pavedienu (kas atbilst vienai tīkla rindai) nepietiek, lai sasniegtu maksimālo joslas platumu. Dažām platformu arhitektūrām, piemēram, AMD, ir tendence izmest vairāk Rx pakešu ar vienu pavedienu, salīdzinot ar platformām ar Intel procesoriem.
Apsveriet iespēju izmantot tādus rīkus kā tasket vai numactl, lai piespraustu lietojumprogrammas NUMA mezglam vai CPU kodoliem, kas ir lokāli tīkla ierīcē. Dažām darba slodzēm, piemēram, krātuves I/O, lietojumprogrammas pārvietošana uz nelokālu mezglu sniedz priekšrocības.
Ja iespējams, eksperimentējiet, palielinot lietojumprogrammā izmantoto pavedienu skaitu.
5.6 Kodola versija
Lielākā daļa mūsdienu iebūvēto kodolu ir pietiekami labi optimizēti veiktspējai, taču atkarībā no lietošanas gadījuma kodola atjaunināšana var nodrošināt uzlabotu veiktspēju. Avota lejupielāde ļauj arī iespējot/atspējot noteiktas funkcijas pirms kodola izveides.
5.7. Operētājsistēmas/kodola iestatījumi
Lai iegūtu plašāku ieskatu par vispārējo operētājsistēmas regulēšanu, skatiet operētājsistēmas regulēšanas rokasgrāmatas, piemēram, Red Hat Enterprise Linux tīkla veiktspējas regulēšanas rokasgrāmatu.
Daži parasti regulējamie parametri ir norādīti nākamajā tabulā. Ņemiet vērā, ka tie ir tikai ieteiktie sākumpunkti, un to maiņa no noklusējuma var palielināt sistēmā izmantotos resursus. Lai gan vērtību palielināšana var palīdzēt uzlabot veiktspēju, ir nepieciešams eksperimentēt ar dažādām vērtībām, lai noteiktu, kas vislabāk darbojas konkrētai sistēmai, darba slodzei un trafika veidam.
Kodola parametrus var konfigurēt, izmantojot utilītu sysctl operētājsistēmā Linux, kā norādīts tālāk.
Uz view sistēmas rmem un wmem noklusējuma vērtības:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
Iestatiet vērtības uz max (16 MB):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Socket bufera izmēri, kas pazīstami arī kā saņemšanas buferis (rmem) un pārraides buferis (wmem), ir sistēmas parametri, kas norāda ienākošajai un izejošajai tīkla trafikam rezervētās atmiņas apjomu.
Palaižot sysctl bez argumenta -w, tiek uzskaitīts parametrs ar tā pašreizējo iestatījumu.
Stack Setting | Apraksts |
net.core.rmem_default | Noklusējuma saņemšanas loga izmērs |
net.core.wmem_default | Noklusējuma pārraides loga izmērs |
net.core.rmem_max | Maksimālais saņemšanas loga izmērs |
net.core.wmem_max | Maksimālais pārraides loga izmērs |
net.core.optmem_max | Maksimālā opcija Atmiņas buferi |
net.core.netdev_max_backlog | Neapstrādāto pakešu uzkrājums, pirms kodols sāk izkrist |
net.ipv4.tcp_rmem | Atmiņas rezervētājs TCP lasīšanas buferiem |
net.ipv4.tcp_wmem | Atmiņas rezervētājs TCP sūtīšanas buferiem |
Kodols, tīkla steka, atmiņas apstrādātājs, CPU ātrums un jaudas pārvaldības parametri var būtiski ietekmēt tīkla veiktspēju. Izplatīts ieteikums ir piemērot tīkla caurlaides spēju profile izmantojot noregulēto komandu. Tas maina dažus OS iestatījumus, lai sniegtu priekšroku tīkla lietojumprogrammām.
Pārbaudiet:
tuned-adm aktīvs
Iestatījums:
tuned-adm profile tīkla caurlaidspēja
5.8. Tīkla ierīču uzkrājums
Šī funkcija palīdz uzlabot tīkla veiktspēju, efektīvi pārvaldot ienākošo trafiku, samazinot pakešu zudumus, samazinot latentumu un palielinot caurlaidspēju. Tas nodrošina labāku lietotāja pieredzi un ātrāku sistēmas reakciju.
Pēc noklusējuma tas ir iespējots lielākajā daļā Linux operētājsistēmu. Lai pārbaudītu noklusējuma vērtību:
sysctl net.core.netdev_max_backlog
Netdev_max_backlog maksimālā vērtība var atšķirties atkarībā no tādiem faktoriem kā kodola versija, aparatūra, atmiņa un darba slodze. Daudzos gadījumos 8192 tiek uzskatīta par labu vērtību. sysctl -w net.core.netdev_max_backlog=8192
5.9. Platformai specifiskas konfigurācijas un regulēšana
5.9.1 4. paaudzes Intel® Xeon® mērogojamie procesori
Intel® 4. paaudzes Intel® Xeon® Scalable procesora jaudas pārvaldība ir ārkārtīgi agresīva salīdzinājumā ar 3. paaudzes Intel® Xeon® Scalable procesoriem. Lai kodoli nenonāktu mazjaudas stāvoklī, mēģiniet samazināt izmantoto kodolu skaitu, lai tie ilgāk paliktu nomodā.
Ieteicamie BIOS iestatījumi visaugstākajai veiktspējai
- Hiperpavedienu iespējošana/atspējošana (pamatojoties uz darba slodzes prasībām un veiktspējas mērķiem) CPU.
- Iestatiet sistēmas profile uz Performance, lai nodrošinātu maksimālu veiktspēju.
PIEZĪME
Tas rada lielāku enerģijas patēriņu - Iestatiet CPU jaudas pārvaldību uz Maximum Performance, lai piešķirtu prioritāti maksimālajai CPU veiktspējai, nevis enerģijas efektivitātei.
- Iespējot Turbo Boost. Turbo Boost atspējošana sistēmas BIOS iestatījumos parasti neļauj centrālajam procesoram dinamiski palielināt takts ātrumu virs bāzes frekvences.
- PIEZĪME
Turbo Boost atspējošana var būt piemērota noteiktiem lietošanas gadījumiem, kad konsekventa veiktspēja, jaudas efektivitāte vai siltuma pārvaldība ir prioritāra, nevis maksimālā veiktspēja. - Izslēdziet vienas saknes I/O virtualizācijas (SR-IOV) funkciju, ja sistēma neizmanto virtualizācijas tehnoloģijas.
- Atspējojiet C stāvokļus, lai norādītu CPU palikt aktīvam un novērstu pāriešanu dziļākos dīkstāves stāvokļos.
- Atspējojiet C1E, lai nodrošinātu, ka centrālais procesors paliek aktīvs un nepāriet C1E dīkstāves stāvoklī.
- Iestatiet zemāko frekvenci uz maksimālo, lai norādītu sistēmai darboties ar augstāko pieejamo frekvenci.
- Dell platformās iestatiet Multiple APIC Description Table (MADT) kodolu emulāciju uz Lineāru (vai Round-Robin atkarībā no BIOS), lai nodrošinātu skaidru un paredzamu CPU kodolu kartēšanu.
Optimizētai veiktspējai ieteicamie OS līmeņa pielāgojumi
- Iestatiet CPU frekvences mērogošanas regulatora veiktspēju. cpupower frekvences komplekts -g veiktspēja cpupower frekvences informācija
- Atspējot C-status. cpupower dīkstāves komplekts -D0
- Iestatiet galveno Rx (rmem) un Tx (wmem) buferu maksimālo vērtību. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
- Iestatīt tīkla ierīču aizkavēšanos. sysctl -w net.core.netdev_max_backlog=8192
- Iestatīt tuned profile (darba slodze ir atkarīga no caurlaidspējas/latences).
tuned-adm profile tīkla caurlaidspēja
Ieteicamie adaptera līmeņa regulējumi optimizētai veiktspējai
- Ierobežojiet rindu skaitu, ko izmantot lietojumprogrammu trafikam. Izmantojiet minimālo rindu skaitu, kas nepieciešams, lai saistītie CPU kodoli būtu aktīvi, lai novērstu to pāriešanu dziļākos dīkstāves stāvokļos (pielāgojiet darba slodzei): ethtool -L apvienots 32
- Iestatiet pārtraukumu regulēšanas ātrumu. ethtool -C adaptive-rx off adaptive-tx off rx-usecs-high 50 rx-usecs 50 tx-usecs 50
Mēģiniet noregulēt pārraides/saņemšanas/augstas prioritātes apvienošanas taimeri augstāk (80/100/150/200) vai zemāku (25/20/10/5), lai atrastu optimālo darba slodzes vērtību. - Iestatiet Rx/Tx gredzena izmērus. ethtool -G rx 4096 x 4096
PIEZĪME
Ja redzat Rx paketes nokrīt ar ethtool -S| grep drop, mēģiniet samazināt gredzena izmēru līdz <4096. Mēģiniet atrast optimālo vērtību darba slodzei, kurā paketes netiek izmestas. - Iestatiet IRQ radniecību. Izmantojiet NIC lokālos kodolus vai īpašu kodolu kartēšanu (kur # kodolu ir vienāds ar rindu skaitu, kas iestatītas 1. lpp. 26. systemctl stop irqbalance set_irq_affinity -X local VAI set_irq_affinity -X
5.9.2 AMD EPYC
AMD EPYC procesori ir jaudīgi CPU, kas izstrādāti serveriem un datu centriem un ir veidoti uz AMD Zen arhitektūra. Tālāk norādītie iestatījumi ir no AMD 4. paaudzes EPYC sērijas.
Ieteicamie BIOS iestatījumi visaugstākajai veiktspējai
- Iespējojiet pielāgoto režīmu, lai lietotāji varētu pielāgot CPU veiktspēju, enerģijas patēriņu un citus iestatījumus. Tas palīdz precīzi noregulēt sistēmu, lai nodrošinātu vislabāko līdzsvaru starp veiktspēju un energoefektivitāti.
- Iespējojiet pamata veiktspējas palielināšanu, lai ļautu centrālajam procesoram automātiski palielināt ātrumu, lai veiktu intensīvākus uzdevumus, tādējādi uzlabojot vispārējo veiktspēju.
- Atspējojiet globālo C stāvokļa vadību, lai neļautu centrālajam procesoram pāriet dziļākajos enerģijas taupīšanas stāvokļos, kas pazīstami kā C stāvokļi, kas var uzturēt reaģētspēju.
PIEZĪME
C-stāvokļu atspējošana var izraisīt papildu enerģijas patēriņu un paaugstināt termisko temperatūru. Pārraugiet abus par darba slodzi. - Iespējot/atspējot vienlaicīgu daudzpavedienu (SMT) CPU, pamatojoties uz darba slodzes prasībām un veiktspējas mērķiem. SMT ir līdzvērtīgs Hyper Threading Intel CPU.
PIEZĪME
Optimizētai veiktspējai skatiet sadaļu i40e draivera iestatījumu regulēšana 13. lpp un Platformas regulēšana (i40e nespecifiska) 19. lpp., lai uzzinātu par ieteicamo OS un adaptera līmeņa regulēšanu.
Adaptera līmēšana
Linux savienošana ir spēcīgs līdzeklis, kas var ievērojami uzlabot tīkla veiktspēju, dublēšanu un kļūdu toleranci servera vidēs. Tomēr ir svarīgi atzīmēt, ka, lai tas pareizi darbotos, ir nepieciešama saderīga tīkla aparatūra un pareiza konfigurācija gan serverī, gan slēdžā.
Saistīšanas draiveris operētājsistēmā Linux ļauj apvienot vairākas fiziskās tīkla saskarnes saistītā saskarnē. Šis savienotais interfeiss operētājsistēmai un lietojumprogrammām parādās kā viens virtuāls tīkla interfeiss.
PIEZĪME
Saite ir loģisks interfeiss, tāpēc nav iespējams iestatīt CPU afinitāti tieši saites saskarnē (piemēram,ample, obligācija0). Tas nozīmē, ka tam nav tiešas kontroles pār pārtraukumu apstrādi vai CPU afinitāti. CPU afinitāte ir jākonfigurē pamatā esošajām saskarnēm, kas ir daļa no saites.
Līmēšana nodrošina vairākus darbības režīmus, katram no kuriem ir savas īpašības.
Režīms | Tips |
0 | Round Robin |
1 | Aktīvā dublēšana |
2 | XOR |
3 | Raidījums |
4 | LACP |
5 | Pārsūtīt slodzes līdzsvaru |
6 | Adaptīvā slodzes līdzsvars |
Ir dažādas metodes, kā izveidot saiti operētājsistēmā Linux. Viena no visizplatītākajām metodēm ir tīkla konfigurācijas izmantošana files (piemēram,ample, /etc/network/ interfaces vai /etc/sysconfig/network-scripts/ifcfg-bondX).
Konfigurācija, izmantojot tīkla konfigurāciju Files
Tālāk norādītās darbības izveido savienojumu, izmantojot tīkla konfigurāciju files.
- Savienošanai atlasiet divus vai vairākus NIC portus (piemēram,ample, ethX un ethY)
- Atveriet NIC konfigurāciju Files sadaļā /etc/sysconfig/network-scripts/ nepieciešamajam NIC interfeisam (piem.ample, vi ifcfg-ethX un vi ifcfg-ethY) un pievienojiet šādu tekstu:
MASTER=bondN [Piezīme: N ir vesels skaitlis, lai pieminētu saites numuru.] SLAVE=jā - Izveidojiet obligāciju tīkla skriptu file izmantojot vi /etc/sysconfig/networkscripts/ifcfg-bondN un ievadiet šādu tekstu:
DEVICE=bondN [Piezīme: N ir vesels skaitlis, lai norādītu saites numuru] ONBOOT=jā USERCTL=nē BOOTPROTO=dhcp (vai) nav
IPADDR=200.20.2.4 [obligāts, ja BOOTPROTO=none] NETMASK=255.255.255.0 [obligāts, ja BOOTPROTO=none] NETWORK=200.20.2.0 [nepieciešams, ja BOOTPROTO=none] [obligāts, ja BOOTPROTO=nav] [Nepieciešams200.20.2.255, ja 1. BOOTPROTO=none] BONDING_OPTS=”mode=100 miimon=XNUMX″
PIEZĪME
Režīms var būt jebkurš vesels skaitlis no 0 līdz 6, pamatojoties uz prasību. - Restartējiet tīkla pakalpojumus, izmantojot pakalpojumu tīkla restartēšanu vai systemctl restartējiet NetworkManager.service
Veiktspējas problēmu novēršana
7.1 CPU izmantošana
Pārbaudiet CPU izmantošanu vienam kodolam, kamēr darbojas darba slodze.
Ņemiet vērā, ka noslodze uz vienu kodolu vairāk attiecas uz veiktspēju nekā kopējais CPU lietojums, jo tas sniedz priekšstatu par CPU izmantošanu vienā tīkla rindā. Ja tīkla trafiku vada tikai daži pavedieni, iespējams, tiek izmantoti tikai daži kodoli. Tomēr, ja šie kodoli ir 100%, jūsu tīkla caurlaidspēju, visticamāk, ierobežo CPU noslodze, un ir pienācis laiks veikt šādas darbības:
- Noregulējiet IRQ regulēšanu/zvana lielumu, kā aprakstīts sadaļā Pārtraukšanas moderēšana.
- Palieliniet lietojumprogrammu pavedienu skaitu, lai sadalītu CPU slodzi vairākos kodolos. Ja visi kodoli darbojas ar 100%, jūsu lietojumprogramma var būt saistīta ar CPU, nevis ar tīklu.
Parasti pieejamie rīki:
- augšpusē
— Nospiediet 1, lai izvērstu CPU sarakstu un pārbaudītu, kuri no tiem tiek izmantoti.
— ievērojiet izmantošanas līmeni.
— Ņemiet vērā, kuri procesi ir uzskaitīti kā visaktīvākie (saraksta augšdaļa). - mpstat
Nākamais example komandrinda tika pārbaudīta operētājsistēmā Red Hat Enterprise Linux 7.x.
Tas parāda CPU izmantošanu vienam kodolam (atrodot kopējo dīkstāves procentu un atņemot no 100), un sarkanā krāsā izceļ vērtības, kas pārsniedz 80%. mpstat -P VISI 1 1 | grep -v Vidējais | aste -n +5 | galva -n -1 | awk '{ print (100-$13)}' | egrep -color=always '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | kolonnu - perf top Meklējiet, kur tiek pavadīti cikli.
7.2 i40e skaitītāji
I40e draiveris nodrošina garu skaitītāju sarakstu saskarnes atkļūdošanai un uzraudzībai, izmantojot komandu ethtool -S ethX. Var būt noderīgi skatīties izvadi, kamēr darbojas darba slodze, un/vai salīdzināt skaitītāja vērtības pirms un pēc darba slodzes izpildes.
- Lai iegūtu pilnu i40e skaitītāju izgāztuvi: ethtool -S ethX
- Lai skatītos tikai skaitītājus, kas nav nulles: skatīties -d (ethtool -S ethX) | egrep -v :\ 0 | kolonnu
Dažas lietas, ko meklēt: - rx_dropped nozīmē, ka centrālais procesors neapkalpo buferus pietiekami ātri.
- port.rx_dropped nozīmē, ka slotā/atmiņā/sistēmā kaut kas nav pietiekami ātrs.
7.3. Tīkla skaitītāji
Pārbaudiet netstat -s pirms/pēc darba slodzes izpildes.
Netstat apkopo tīkla informāciju no visām sistēmas tīkla ierīcēm. Tāpēc rezultātus var ietekmēt citi tīkli, nevis pārbaudāmais tīkls. Netstat -s izvade var būt labs rādītājs veiktspējas problēmām Linux operētājsistēmā vai kodolā. Lai iegūtu plašāku ieskatu par vispārējo operētājsistēmas regulēšanu, skatiet operētājsistēmas regulēšanas rokasgrāmatas, piemēram, Red Hat Enterprise Linux tīkla veiktspējas regulēšanas rokasgrāmatu.
7.4 Sistēmas žurnāli
Pārbaudiet, vai sistēmas žurnālos nav kļūdu un brīdinājumu (/var/log/messages, dmesg).
7.5 Intel svr-info rīks
Intel nodrošina svr-info rīku (sk https://github.com/intel/svr-info) operētājsistēmai Linux, kas tver attiecīgo aparatūras un programmatūras informāciju no servera. svr-info izvade var būt ļoti noderīga, lai identificētu sistēmas vājās vietas vai iestatījumus/regulējumus, kas nav optimizēti darba slodzei. Atverot Intel atbalsta korpusu ar Ethernet saistītām veiktspējas problēmām, noteikti iekļaujiet svr-info izvadi (teksts file) katram Linux serverim testa konfigurācijā.
- Lejupielādējiet un instalējiet svr-info:
wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
./svr-info
> resursdatora nosaukums.txt - Savāc izvadi:
./svr-info > resursdatora nosaukums.txt - Pievienojiet vienu tekstu (.txt) file katram serverim jūsu Intel atbalsta gadījumam analīzei.
Ieteikumi parastajiem darbības scenārijiem
8.1 IP pārsūtīšana
- Atjauniniet kodolu.
Daži jaunākie in-distro kodoli ir pasliktinājuši maršrutēšanas veiktspēju, ko izraisa kodola izmaiņas maršrutēšanas kodā, sākot ar maršrutēšanas kešatmiņas noņemšanu drošības dēļ. Nesenajiem ārpus izplatīšanas kodoliem jābūt ielāpiem, kas mazina šo izmaiņu ietekmi uz veiktspēju un varētu nodrošināt uzlabotu veiktspēju. - Atspējot hiperpavedienu (loģiskos kodolus).
- Rediģējiet kodola sāknēšanas parametrus.
— piespiedu kārtā izslēdziet iommu (intel_iommu=off vai iommu=off) no kodola sāknēšanas līnijas, ja vien tas nav nepieciešams virtualizācijai
— Izslēdziet enerģijas pārvaldību: processor.max_cstates=1 idle=poll pcie_aspm=off - Ierobežojiet rindu skaitu, lai tas būtu vienāds ar vietējās ligzdas kodolu skaitu (12 šajā piem.ample). ethtool -L ethX kombinēts 12
- Pin pārtraukumi tikai vietējā kontaktligzdā. set_irq_affinity -X local ethX VAI set_irq_affinity -X local ethX
PIEZĪME
Atkarībā no darba slodzes var izmantot -X vai -x. - Ja nepieciešams, mainiet Tx un Rx gredzena izmērus. Lielāka vērtība aizņem vairāk resursu, taču var nodrošināt labākus pārsūtīšanas tarifus. ethtool -G ethX rx 4096 tx 4096
- Maršrutēšanas laikā atspējot GRO.
Zināmas kodola problēmas dēļ maršrutēšanas/pārsūtīšanas laikā GRO ir jāizslēdz. ethtool -K ethX gro off kur ethX ir modificējamais Ethernet interfeiss. - Atspējojiet adaptīvo pārtraukumu regulēšanu un iestatiet statisku vērtību. ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64
PIEZĪME
Atkarībā no procesora veida un darba slodzes RX un TX apvienošanas parametrus var pielāgot, lai uzlabotu veiktspēju (vai mazāku kadru zudumu).
- Atspējojiet ugunsmūri. sudo systemctl atspējot ugunsmūri sudo systemctl apturēt ugunsmūri
- Iespējot IP pārsūtīšanu. sysctl -w net.ipv4.ip_forward=1
- Konfigurējiet saņemšanas un sūtīšanas ligzdas bufera izmēru maksimālās vērtības. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
PIEZĪME
Atkarībā no darba slodzes vai prasības šīs vērtības var mainīt no noklusējuma.
8.2. Zems latentums
- IZSLĒDZIET hiperpavedienu (loģiskos kodolus).
- Pārliecinieties, vai tīkla ierīce ir lokāla numa core 0.
- Piespraudiet etalonu kodolam 0, izmantojot uzdevumu kopu -c 0.
- Izslēdziet irqbalance, izmantojot systemctl stop irqbalance vai systemctl disable irqbalance
- Palaidiet radniecības skriptu, lai izplatītos pa kodoliem. Izmēģiniet vietējo vai visu.
- Izslēdziet pārtraukuma regulēšanu. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- high 0
- Ierobežojiet rindu skaitu, lai tas būtu vienāds ar vietējās ligzdas kodolu skaitu (32 šajā piem.ample). ethtool -L ethX kombinēts 32
- Piespraudiet pārtraukumus tikai vietējai ligzdai (skripts ir komplektēts ar i40e draivera avotu). set_irq_affinity -X lokālais ethX
- Izmantojiet noteiktu etalonu, piemēram, netperf -t TCP_RR, netperf -t UDP_RR vai NetPipe. netperf -t TCP_RR vai netperf -t UDP_RR
- Piespraudiet etalonu vienam kodolam vietējā NUMA mezglā. uzdevumu kopa -c
Intel® Ethernet 700. sērija
Linux veiktspējas regulēšanas rokasgrāmata
2024. gada decembris
Doc. Nr.: 334019, Rev.: 1.2
Dokumenti / Resursi
![]() |
Intel Ethernet 700. sērijas Linux veiktspējas regulēšana [pdfLietotāja rokasgrāmata 334019, Ethernet 700. sērija Linux veiktspējas skaņošana, Ethernet 700. sērija, Linux veiktspējas regulēšana, veiktspējas regulēšana, skaņošana |