Intel® Ethernet 700 Seriea
Linuxen errendimenduaren doikuntza gida
NEX Hodeiko Sare Taldea (NCNG)
1.2 erreb
2024ko abendua
Berrikuspen historia
Berrikuspena | Data | Iruzkinak |
1.2 | 2024ko abendua | · Energia Kudeatzeko Gida Gehigarriak Gehitu Dira. · Intel* Turbo Boost gehitu da. · Sareko gailuen atzerapena gehitu da. · Plataforma espezifikoen konfigurazioak eta doikuntzak gehitu dira. · 4. belaunaldiko Intel* %eon* prozesadore eskalagarriak gehitu dira. · AMD EPYC gehitu da. · Sistemaren hardware gaitasunak egiaztatzeko eguneratuak. · iPerf2 eguneratua. · iPerf3 eguneratua. · Tx/Rx ilarak eguneratuta. · Etenaldi Moderazioa eguneratua. · Eraztunaren tamaina eguneratua. · Plataformaren doikuntza eguneratua (i40e ez-espezifikoa). · BIOS ezarpenak eguneratuta. · C-egoeraren kontrola eguneratua. · CPUaren maiztasun eskalatzea eguneratua. · Aplikazioaren ezarpenak eguneratuta. · Sistema eragilearen/kernelaren ezarpenak eguneratuta. · IP birbidalketa eguneratua. · Latentzia Baxua eguneratua. |
2023ko abuztua | Dokumentu honetan egindako aldaketen artean daude: · Erlazionatutako erreferentziak gehitu dira. · Ziurtatu DDP paketea behar bezala kargatzen dela gehitu da. · iPerf2 gehitu da. · iPerf3 gehitu da. · Sareko errendimendua gehitu da. · IRQ afinitate eguneratua. · Tx/Rx ilarak gehitu dira. · Eraztunaren tamaina eguneratua. · Jumbo markoak gehitu dira. · Egokitzaileen lotura gehitu da. · Intel svr-info tresna gehitu da. |
|
1.0 | 2016ko martxoa | Hasierako argitalpena (Intel publikoa). |
Sarrera
Gida honen helburua Linux inguruneetan Intel ® Ethernet 700 serieko NICak erabiliz sareko errendimendu optimoa lortzeko inguruneak doitzeko orientazioa ematea da. Sarearen errendimendua hobetu dezaketen hardware, kontrolatzaile eta sistema eragilearen baldintzetan eta ezarpenetan jartzen du arreta. Kontuan izan behar da sarearen errendimenduan kanpoko hainbat eragin eragin daitezkeela, eta horien artean ohikoenak eta nabarmenenak bakarrik azaltzen dira gida honetan.
1.1 Erlazionatutako erreferentziak
- Erabiltzailearen gida Intel ® Ethernet egokitzaile eta gailu guztietarako, Windows eta Linux onartzen dituztenak:
Intel® Ethernet egokigailuen eta gailuen erabiltzailearen gida - Fitxa teknikoa:
Intel® Ethernet kontrolagailuaren X710/XXV710/XL710 datu-orria - Intel ® Ethernet produktu guztientzako SW pakete osoa (deskargatu kontrolatzaile, NVM, tresna eta abar guztiak):
Intel® Ethernet egokitzailearen kontrolatzaile pakete osoa - NVM (Memoria Ez-Aldakorra) Eguneratze Paketea:
Memoria ez-lurrunkorraren (NVM) eguneratze-utilitatea Intel® Ethernet sare-egokitzailearen 700 serierako - svr-info tresna Linuxerako, zerbitzari batetik hardware eta software xehetasun garrantzitsuak jasotzen dituena: https://github.com/intel/svr-info
- DDP Teknologiaren Gida:
Intel® Ethernet 700 serieko gailuen pertsonalizazio dinamikoaren (DDP) teknologiaren gida
Hasierako Kontrol-zerrenda
2.1 Gidariaren/Firmwarearen bertsioak eguneratu
Egiaztatu kontrolatzailearen/firmwarearen bertsioak ethtool -i ethx komandoa erabiliz.
Behar den moduan eguneratu honako hauek:
- Eguneratu i40e kontrolatzailea
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 - Eguneratu firmwarea
https://downloadcenter.intel.com/download/24769/NVM-Update-Utility-for-Intel-Ethernet-ConvergedNetwork-Adapter-XL710-X710-Series
2.2 Irakurri README fitxategia
Egiaztatu arazo ezagunak eta lortu konfigurazio-argibide berrienak README fitxategitik. file i40e iturburu paketean sartuta.
2.3 Egiaztatu zure PCI Express (PCIe) zirrikitua x8 dela
PCIe x8 zirrikitu batzuk x4 zirrikitu gisa konfiguratuta daude. Zirrikitu hauek ez dute nahikoa banda-zabalera lerro-abiadura osoa lortzeko portu bikoitzeko eta lau portuetako gailuekin. Gainera, PCIe v3.0 gai den egokitzaile bat PCIe v2.x zirrikitu batean jartzen baduzu, ezin izango duzu banda-zabalera osoa lortu. Software gailuaren kontrolatzaileak egoera hau detektatzen du eta mezu hau idazten du sistemaren erregistroan:
Txartel honek eskaintzen duen PCI-Express banda-zabalera ez da nahikoa errendimendu optimoa lortzeko. Errendimendu optimoa lortzeko x8 PCI-Express zirrikitua behar da.
Errore hau gertatzen bada, mugitu egokitzailea benetako PCIe v3.0 x8 zirrikitu batera arazoa konpontzeko.
2.4 Sistemaren hardwarearen gaitasunak egiaztatu
10 Gbps, 25 Gbps eta 40 Gbps Ethernet-etan, CPU eta sistemaren gutxieneko eskakizun batzuk daude. Oro har, zerbitzari klaseko prozesadore moderno bat eta zure plataformarako memoria konfigurazio optimoa nahikoa izan beharko lirateke, baina beharrak aldatu egiten dira zure lan-kargaren arabera. Memoria kanal guztiak beteta egon behar dira eta memoriaren errendimendu modua gaituta egon behar da BIOSean. Egiaztatu zure CPU eta memoria konfigurazioak zure lan-kargarentzako behar duzun sare-errendimendu maila onartzeko gai direla.
OHARRA
XL710 40 GbE kontrolatzaile bat da. Kontrolatzaile hau erabiltzen duen 2 x 40 GbE egokitzailea ez da 2 x 40 GbE izateko pentsatua, baizik eta babeskopia-portu aktibo batekin 1 x 40 GbE egokitzailea. Bi portuek inplikatzen duten linea-tasako trafikoa erabiltzen saiatzean, barneko etengailua saturatuta dago eta bi portuen arteko banda-zabalera konbinatua XNUMX Gbps-ra mugatzen da guztira.
2.4.1 Kernelaren abioko parametroak
Intel® Virtualization Technology for Directed I/O (Intel® VT-d) BIOSean gaituta badago, Intelek gomendatzen du IOMMU pass-through moduan egotea ostalariaren sarearen errendimendu optimoa lortzeko. Horrela, ostalariaren trafikoaren DMA gainkarga ezabatzen da, Makina Birtualek (VM) Intel® VT-d-ren onurak izaten jarraitzea ahalbidetuz. Horretarako, lerro hau gehitu behar da kernelaren abioko parametroetan: fommu-pt.
2.5 Ziurtatu DDP paketea behar bezala kargatzen ari dela
140ea eta 140eb oinarrizko kontrolatzaileek ez dute zuzeneko laguntzarik Dynamic Device Personalization (DDP) programarako. 700 serieko gailuekin DDP erabiltzeko, DDP pro bat behar da.file testpmd aplikazioarekin aplika daiteke.
DDP pro-ri buruzko xehetasunak lortzekofiles, eta nola aplikatu DDP pro batfile 700 serieko gailuetan testpmd-rekin, jo Intel® Ethernet 700 serieko gailuen pertsonalizazio dinamikoaren (DDP) teknologiaren gidara.
DDP profesional bat den egiaztatzekofile arrakastaz kargatu da:
testpmd> ddp lortu zerrenda 0 Profile zenbakia: 1
OHARRA
pro badafile Zenbakia 0 bada, ez da DDP paketerik kargatu. DDP paketea kargatzean errore bat gertatzen bada, gailua modu segurura aldatzen da lehenespenez eta errendimendu-funtzio asko ez daude erabilgarri. DDP paketea kargatzearekin lotutako erroreak badaude, errendimendu-arazoak sortuko dira. Arazoak konpontzeko urratsak lortzeko, jo Inte/* Ethernet 700 Serieko Gailu Dinamikoen Pertsonalizazio (DDP) Teknologiaren Gidara.
Oinarrizko Errendimenduaren Neurketak eta Doikuntza Metodologia
3.1 Sarearen errendimenduaren erreferentziak
Doikuntza ariketa bat hasi aurretik, garrantzitsua da zure sarearen errendimenduaren oinarrizko neurketa ona izatea. Normalean, zure aplikazio/lan-karga espezifikoaren errendimenduaren hasierako neurketa bat egiteaz gain, ideia ona da sarearen errendimenduaren erreferentzia estandar bat erabiltzea zure sareko gailua egoera onean dagoela egiaztatzeko.
Sistema bakarreko optimizaziorako, netperf edo iperf eta NetPIPE tresna sendo eta doakoak dira, konexio bat estresatu eta errendimendu arazoak diagnostikatzeko aukera ematen dutenak.
Netperf indartsua da bai errendimendua bai latentzia probak egiteko. NetPIPE latentziarako tresna espezifikoa da, baina edozein ingurune motatarako konpila daiteke.
OHARRA
Netperf-eko TCP_RR probak latentzia transakzio/seg balio batean itzultzen du. Joan-etorriko zenbaki bat da. Noranzko bakarreko latentzia ekuazio hau erabiliz kalkula daiteke:
Latentzia(used) = (1⁄2) / [Transakzioak/seg] * 1,000,000
3.1.1 iPerf2
Intelek iperf2 gomendatzen du iperf3 baino gehiago erreferentziazko egoera gehienetarako, erabiltzeko erraztasunagatik eta aplikazio instantzia bakarrean hari anitzentzako laguntzagatik. Intelek -P aukerarekin exekutatzea gomendatzen du, 2-4 harirekin 25G konexioetarako eta 4-6 hari ingururekin 40G konexioetarako.
- Bezerotik zerbitzarira trafiko unidirekzionala exekutatzeko: Zerbitzariaren komandoa, adibidezample: iperf2 -s
Bezeroaren komandoaren adibideaampfitxategia: iperf2 -c -P - Bezerotik zerbitzarira (eta alderantziz) trafiko bidirekzionala exekutatzeko: Zerbitzariaren komandoa, adibidezampfitxategia: iperf2 –s –p
Bezeroaren komandoaren adibideaample:
iperf2 -c -p -P -–duplex osoa EDO
iperf2 -c -p -P –d
OHARRA
Iperf2-ko –full-duplex eta -d aukerekin, erabiltzaileak bi norabideko probak egin ditzake. Hala ere, –full-duplex aukerak zehazki full duplex probetan jartzen du arreta.
OHARRA
iperf2 hainbat zerbitzari-portutan probatzean, -d bandera gehi daiteke zerbitzari-komandoari zerbitzari-saio guztiak atzeko planoan exekutatzeko terminal-leiho beretik. -d bandera ere erabil daiteke zerbitzari-komandoa script bateko for-begizta baten barruan txertatuta dagoenean.
OHARRA
Sarearen abiadura-proba korronte/hari bakarrarekin exekutatzean (adibidez,ampAdibidez: P1), AMD prozesadoreek ez dute espero den errendimendua emango, batez ere banda-zabalera handiko NIC txartelek (abiadura >= 25G banda-zabalera bada). Ondorioz, aplikazioak nukleo espezifikoetara lotzea beharrezkoa da errendimendu handiagoa lortzeko. Ikusi Aplikazioaren ezarpenak 22. orrialdean.
3.1.2 iPerf3
iperf3 erabiltzen bada, aplikazioaren hainbat instantzia behar dira aurrerapenak egiteko.tagHari anitzeko, RSS eta hardware ilarak. Intelek 2-4 aplikazio saiorekin exekutatzea gomendatzen du 25G konexioetarako eta 4-6 saio inguru 40G konexioetarako. Saio bakoitzak TCP ataka balio bakarra zehaztu beharko luke -p aukera erabiliz.
- Bezerotik zerbitzarira trafiko unidirekzionala exekutatzeko:
Zerbitzariaren komandoaren adibideaample:
iperf3 -s -p
Bezeroaren komandoaren adibideaample:
iperf3 -c -p - Bezerotik zerbitzarira (eta alderantziz) trafiko bidirekzionala exekutatzeko:
Zerbitzariaren komandoaren adibideaample:
iperf3 –s –p
Bezeroaren komandoaren adibideaampfitxategia: iperf3 -c -p -P –-bidir - iperf3-ren instantzia (hari) bat baino gehiago abiarazteko, gomendioa da for begizta bat erabiltzea hariak TCP portuetara mapatzeko eta iperf3 atzeko planoan exekutatzea & erabiliz prozesu bat baino gehiago paraleloan sortzeko.
Zerbitzariaren komandoaren adibideaample, hasi 4 hari: port=""; for i in {0..3}; do port=520$i; bash -c "iperf3 -s -p $port &"; done; Bezeroaren komandoa example, hasi 4 hari – Transmit test port="”; for i in {0..3}; do port=520$i; bash -c “iperf3 -c $serverIP -p $port &”; done; Bezeroaren komandoa example, hasi 4 hari – Jaso test port="”; for i in {0..3}; do port=520$i; bash -c “iperf3 -R -c $serverIP -p $port &”; done; 40G konexioetarako, handitu for-begizta gehienez 6 instantzia/hari sortzeko.
OHARRA
Sarearen abiadura-proba korronte/hari bakarrarekin exekutatzean (adibidez,ampadib.: P1), AMD prozesadoreek agian ez dute espero den errendimendua emango, batez ere banda-zabalera handiagoa
NICak (abiadura >= 25G banda-zabalera bada). Ondorioz, aplikazioak nukleo espezifikoetara lotu behar dira errendimendu handiagoa lortzeko. Ikusi Aplikazioen ezarpenak 22. orrialdean eta AMD EPYC 26. orrialdean.
3.1.3 netperf
netperf tresna aukera bikaina da bai errendimendua bai latentzia probak egiteko.
- Netperf-eko TCP_STREAM probak gailuaren abiadura-gaitasunak neurtzen ditu. Zerbitzariaren komandoa, adibidezample: netserver Bezeroaren komandoa adibidezampfitxategia: netperf -t TCP_STREAM -l 30 -H
- Netperf-eko TCP_RR probak latentzia itzultzen du transakzio/segundo balio batean. Joan-etorriko zenbaki bat da hau. Gomendagarria da -T x,x aukera erabiltzea, x gailuaren CPU lokala denean. Noranzko bakarreko latentzia kalkula daiteke honela: Latentzia(used)=(1⁄2)/ [Transakzioak/seg]*1,000,\ Zerbitzariaren komandoaren adibideaample: sareko zerbitzaria
Bezeroaren komandoaren adibideaampfitxategia: netperf -t TCP_RR -l 30 -H -T x,x - Netperf-en instantzia (hari) bat baino gehiago abiarazteko, gomendioa da for begizta bat erabiltzea hariak TCP portuetara mapatzeko eta netperf atzeko planoan exekutatzea & erabiliz prozesu bat baino gehiago paraleloan sortzeko.
Zerbitzariaren komandoaren adibideaample, hasi 8 hari:
portua=””; for i in {0..7}; do portua=520$i; bash -c “netserver -L $serverIP -p $portua &”; eginda;
Bezeroaren komandoaren adibideaample, hasi 8 hari: port=""; for i in {0..7}; do port=520$i; bash -c "netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &"; eginda;
3.2 Doikuntza metodologia
Zentratu doikuntza-aldaketa bakoitzean, aldaketa bakoitzak zure proban duen eragina jakiteko. Zenbat eta metodikoagoa izan doikuntza-prozesuan, orduan eta errazagoa izango da errendimendu-arazoen arrazoiak identifikatu eta konpontzea.
i40e gidariaren ezarpenak doitzen
4.1 IRQ afinitatea
IRQ afinitatea konfiguratzeak, sare-ilara desberdinetarako etenaldiak CPU nukleo desberdinetara afinizatuta egon daitezen, eragin handia izan dezake errendimenduan, batez ere hari anitzeko throughput probetan.
IRQ afinitatea konfiguratzeko, gelditu irqbalance eta erabili i40e iturburu-paketeko set_irq_affinity script-a edo ilarak eskuz finkatu. Desgaitu erabiltzaile-espazioko IRQ orekatzailea ilarak finkatzea gaitzeko:
- systemctl-k irqbalance desgaitu
- systemctl-k irqbalance gelditu
i40e iturburu-paketeko set_irq_affinity script-a erabiliz (gomendatua): - Nukleo guztiak erabiltzeko:
[i40epackage-rako-bidea]/scripts/set_irq_affinity -X all ethX - NUMA socket lokalean nukleoak bakarrik erabiltzeko: [i40epackage-rako-bidea]/scripts/set_irq_affinity -X local ethX
- Nukleo sorta bat ere hauta dezakezu. Saihestu cpu0 erabiltzea, denbora-zereginak exekutatzen baititu. [i40epackage-rako-bidea]/scripts/set_irq_affinity 1-2 ethX
OHARRA
Afinitate-skriptak Transmit Packet Steering (XPS) gaitzen du pinning prozesuaren barruan -x aukera zehazten denean. XPS gaituta dagoenean, Intelek irqbalance desgaitzea gomendatzen du, XPS duen kernel orekatzaileak errendimendu ezustekoa eragin baitezake. Afinitate-skriptak XPS desgaitzen du -X aukera zehazten denean. XPS desgaitzea eta ilara simetrikoak gaitzea onuragarria da lan-kargetarako, non errendimendu onena lortzen den Tx eta Rx trafikoa ilara-bikote berdinetan zerbitzatzen denean.
Linuxen ilara simetrikoak konfiguratzeak sareko interfazearen kontrolatzailearen parametroak doitzea dakar, onartutako sare-egokitzaileentzako harrera-ilara simetrikoak (Rx) eta transmisio-ilara simetrikoak (Tx) gaitzeko.
OHARRA
- Ilara simetrikoak sareko funtzio aurreratu bat dira, eta ez dituzte 700 serieko sare-egokitzaile edo kontrolatzaile guztiek onartzen.
- Ziurtatu beharrezko kontrolatzailea eta hardware euskarria dituzula ilara simetrikoak konfiguratzen saiatu aurretik.
Ilara simetrikoak konfiguratzeko, jarraitu urrats orokor hauek:
- Editatu sareko interfazearen konfigurazioa FileErabili testu-editore bat (adibidez,ample, vi, nano edo gedit) sareko interfazearen konfigurazioa editatzeko file. The file normalean /etc/sysconfig/network-scripts/ direktorioan kokatzen da eta ifcfg-ethX bezalako izena du, non ethX zure sareko interfazearen izena den.
- Gehitu ilara simetrikoaren parametroak. Gehitu lerro hauek sareko interfazearen konfigurazioari file: ETHTOOL_OPTS=”rx-ilarak 8 tx-ilarak 8″
- Berrabiarazi Sareko Zerbitzua.
Aldaketak egin ondoren, berrabiarazi sareko zerbitzua konfigurazio berria aplikatzeko. sudo systemctl restart network
Eskuz:
-
Bilatu nodo bakoitzari lotutako prozesadoreak komando hau erabiliz: numactl –hardware lscpu
-
Bilatu prozesadore bakoitzaren bit-maskarak:
- 0-11 nukleoak 0 nodoarentzat suposatuz: [1,2,4,8,10,20,40,80,100,200,400,800]
- Aurkitu esleitzen ari den portuari esleitutako IRQ-ak: grep ethX /proc/interrupts eta idatzi IRQ balioak Adibidezampalegia, 181-192 kargatutako 12 bektoreentzat.
- SMP afinitatearen balioa dagokion IRQ sarreran islatu. Kontuan izan hau IRQ sarrera bakoitzerako egin behar dela: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity Erakutsi IRQ afinitatea:
- Nukleo guztien IRQ afinitatea erakusteko: /scripts/set_irq_affinity -s ethX
- NUMA socket lokaleko nukleoak bakarrik erakusteko: /scripts/set_irq_affinity -s tokiko ethX
- Nukleo sorta bat ere hauta dezakezu: /scripts/set_irq_affinity -s 40-0-8,16 ethX
OHARRA
set_irq_affinity script-ak -s bandera onartzen du i40e kontrolatzailearen 2.16.11 bertsioan eta berriagoetan.
4.2 Tx/Rx ilarak
Hasierako unean gidariak Ethernet ataka bakoitzerako gaitzen dituen ilara kopuru lehenetsia plataforman eskuragarri dauden CPU kopuru osoaren berdina da. Honek plataforma eta lan-karga konfigurazio askotan funtzionatzen du. Hala ere, nukleo kopuru handia eta/edo Ethernet ataka dentsitate handia duten plataformetan, konfigurazio honek baliabideen arteko gatazka sor dezake. Beraz, kasu batzuetan beharrezkoa izan daiteke sistemako ataka bakoitzerako lehenetsitako balioa aldatzea.
Tx/Rx ilara kopuru lehenetsia alda daiteke modelo eta kontrolatzaile bertsio espezifikoaren arabera. Ilara kopurua behean zerrendatutako ethtool -L komandoa erabiliz doi daiteke.
OHARRA
Kasu hauetan, Intelek gomendatzen du portu bakoitzerako ilara-kopuru lehenetsia egokitzaile-portuaren tokiko NUMA nodoan eskuragarri dauden CPU kopurua baino gehiago ez izatera murriztea. Kasu batzuetan, portu-kopuru handiko inplementazioetan baliabideak orekatzen saiatzean, kopuru hori are gehiago murriztea beharrezkoa izan daiteke.
Ilararen konfigurazioa aldatzeko:
Hurrengo example-k portua 32 Tx/Rx ilaratara ezartzen du: ethtool -L ethX konbinatua 32
Exampfitxategiaren irteera:
ethtool -l ethX
ethX-erako kanal-parametroak: Aurrez ezarritako maximoak:
RX: 96
TX: 96
Bestelakoak: 1
Konbinatua: 96
Uneko hardware ezarpenak:
RX: 0
TX: 0
Bestelakoak: 1
Konbinatua: 32
4.3 Moderazioa eten
Etenaldien moderazio moldagarria lehenespenez aktibatuta dago, eta CPU erabilera txikiaren eta errendimendu handiaren arteko oreka eskaintzeko diseinatuta dago. Hala ere, etenaldien ezarpenak eskuz doitzen saia zaitezke zure erabilera kasura egokitzeko.
0-235 mikrosegundoko tarteak segundoko 4,310 eta 250,000 etenaldi arteko tarte eraginkorra eskaintzen du. rx-μsecs-high balioa rx-μsecs eta tx-μsecs-etatik independenteki ezar daiteke ethtool komando berean, eta etenaldien moderazio algoritmo moldagarriarekiko independentea da ere. Oinarrizko hardwareak 2 mikrosegundoko tarteetan granularitatea onartzen du, beraz, balio hurbilek etenaldi-tasa bera eman dezakete.
- Etenaldien moderazio moldagarria desaktibatzeko: ethtool -C ethX adaptive-rx off adaptive-tx off
- Etenaldien moderazio moldagarria aktibatzeko: ethtool -C ethX adaptive-rx on adaptive-tx on
Doikuntza orokorrerako abiapuntu ona 84 μs da, edo ~12000 eten/s. rx_dropped kontagailuak trafikoan zehar exekutatzen ari direla ikusten baduzu (ethtool -S ethX erabiliz), ziurrenik CPU motelegia duzu, egokitzailearen eraztun-tamainatik (ethtool -G) ez duzu buffer nahikorik paketeak 84 μs-z edukitzeko edo eten-tasa baxuegia da.
- Etenaldien arteko etenaldi-moderazioa 84 μs-ko etenaldi-tasa finko batera ezartzeko (12000 etenaldi/s): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 Probatu beharreko hurrengo balioa, CPUaren erabilera maximoa ez baduzu, 62 μs da. Honek CPU gehiago erabiltzen du, baina bufferrak azkarrago zerbitzatzen ditu eta deskriptore gutxiago behar ditu (eraztunaren tamaina, ethtool -G).
- Etenaldien arteko 62 usec-ko etenaldi-tasa finko batera ezartzeko (16000 etenaldi/s). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
rx_dropped kontagailuak trafikoan zehar handitzen badira (ethtool -S ethX erabiliz), ziurrenik CPUa motelegia da, egokitzailearen eraztun-tamainatik buffer nahikorik ez (ethtool -G), edo eten-tasa baxuegia. CPUaren erabilera maximoa ez baduzu, eten-tasa handitu dezakezu ITR balioa jaitsiz. Honek CPU gehiago erabiltzen du, baina bufferrak azkarrago zerbitzatzen ditu eta deskriptore gutxiago behar ditu (eraztun-tamaina, ethtool -G).
Zure CPUa %100ean badago, ez da komeni eten-tasa handitzea. Zenbait egoeratan, hala nola CPUari mugatutako lan-karga batean, baliteke μs balioa handitu nahi izatea beste aplikazio batzuetarako CPU denbora gehiago izan dezan.
Latentzia baxuko errendimendua behar baduzu eta/edo sareko prozesamenduari eskaintzeko CPU asko baduzu, eten-moderazioa erabat desgaitu dezakezu, eta horrek eten-aldiak ahalik eta azkarren exekutatzea ahalbidetzen du. - Etenaldien moderazioa desgaitzeko ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0
OHARRA
Etenaldien moderazioa desgaituta exekutatzen denean, ilara bakoitzeko etenaldi-tasa oso altua izan daiteke. Kontuan hartu rx-usec-high parametroa sartzea etenaldi-tasaren goiko muga ezartzeko. Hurrengo komandoak etenaldien moderazio moldagarria desgaitzen du eta gehienez 5 mikrosegundo uzten ditu harrera edo transmisioa osatu dela adierazi aurretik. Segundoko 200,000 etenaldi lortu beharrean, segundoko etenaldi guztiak 50,000ra mugatzen ditu rx-usec-high parametroaren bidez. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 20 rx-usecs 5 txusecs 5 Saiatu transmisio/jasotze/lehentasun handiko koalesztapen-tenporizadorea gorago (80/100/150/200) edo beherago (25/20/10/5) doitzen lan-kargarentzako balio optimoa aurkitzeko.
4.4 Eraztunaren tamaina
rx_dropped kontagailuak ikusten badituzu ethtool -S ethX (rx_dropped, rx_dropped.nic) komandoan, edo cache presioa susmatzen baduzu hainbat ilara aktibo daudenean, eraztunaren tamaina balio lehenetsitik doitzen saiatu zaitezke. Balio lehenetsia 512 da, gehienezkoa 4096.
- Uneko balioak egiaztatzeko: ethtool -g ethX
Buffering faltak uneko eten-tasaren jaitsierak eragiten dituela susmatzen bada, lehenik maximoa probatu dezakezu, gero minimoa, eta gero bilaketa bitarrean jarraitu errendimendu optimoa ikusi arte.
Cache-presioa susmatzen bada (ilara asko aktibo daude), bufferrak lehenetsitik murrizteak Intel ® Data Direct I/O (Intel ® DDIO) eraginkorrago funtzionatzen lagun dezake. Intelek ilara bakoitzeko 128 edo 256 probatzea gomendatzen du, kontuan hartuta ethtool -C bidez eten-tasa handitzea beharrezkoa izan daitekeela rx_dropped-en igoera saihesteko. - Eraztunaren tamaina balio finko batera ezartzeko: ethtool -G eth12 rx 256 tx 256
OHARRA
ethtool -S ethX|grep drop komandoarekin aurkitutako Rx paketeen erorketak konpontzeko, kontuan hartu eraztunaren tamaina 4096ra handitzea. Esperimentatu lan-kargarentzako ezarpen onena aurkitzeko, baina kontuz ibili balio altuagoekin memoria gehiegi erabiltzearekin.
4.5 Emaria kontrola
2. geruzako fluxu-kontrolak TCPren errendimenduan eragin handia izan dezake eta lan-karga gehienetarako desgaitzea gomendatzen da. Salbuespen posible bat leherketa-trafikoa da, non leherketak ez diren iraupen luzekoak.
Fluxu-kontrola desgaituta dago lehenespenez.
- Fluxu-kontrola gaitzeko: ethtool -A ethX rx on tx on
- Fluxu-kontrola desgaitzeko: ethtool -A ethX rx off tx off
OHARRA
Fluxu-kontrola behar bezala gaitzeko, fluxu-kontrola egiteko gai den esteka-bazkide bat izan behar duzu.
4.6 Markoak Jumbo
Trafiko-ingurunea datu-bloke handiak transferitzen direnean, baliteke onuragarria izatea jumbo frame funtzioa gaitzea. Jumbo Frames laguntza gaitzeko, Maximum Transmission Unit (MTU) 1500 balio lehenetsia baino handiagoa den balio batera aldatu behar da. Horri esker, gailuak datuak pakete handiagoetan transferi ditzake sare-ingurunean. Ezarpen honek errendimendua hobetu eta CPUaren erabilera murriztu dezake S/I lan-karga handietarako. Hala ere, pakete txikietan edo latentziarekiko sentikorrak diren lan-kargei eragin diezaieke.
OHARRA
Jumbo frameak edo MTU ezarpen handiagoek behar bezala konfiguratu behar dute zure sare-ingurunean.
Erabili ifconfig komandoa MTU tamaina handitzeko. Adibidezamphau da, idatzi honako hau, non interfazearen zenbakia da: ifconfig mtu 9000tik gora
Bestela, ip komandoa honela erabil dezakezu: ip link set mtu 9000 dev IP esteka konfiguratu garatzailea
Plataformaren doikuntza (i40e ez-espezifikoa)
5.1 BIOS ezarpenak
- Gaitu Intel® VT-d birtualizazio lan-kargetarako.
- Hiper-hariak (prozesadore logikoak) errendimenduan eragina izan dezake. Esperimentatu zure lan-kargaren arabera aktibatuta edo desaktibatuta.
- Intel® Turbo Boost-ek CPU nukleoei CPUaren oinarrizko maiztasuna baino maiztasun handiagoan funtzionatzea ahalbidetzen die. Intel® Turbo Boost gaitzeak lan-karga askoren errendimendua hobetu dezake, baina energia gehiago kontsumitzen du nukleoak maiztasun handiagoan mantentzeko. Esperimentatu Turbo Boost itzalita/aktibatuta zure lan-kargararako.
OHARRA
Turbo maiztasunak ez daude bermatuta plataformak CPU erabilera orokorra handia badu. Nukleoaren turbo maiztasun altuagoak murrizten dira CPU erabilera orokorra handitzen den heinean.
5.2 Energiaren kudeaketa
Energia kudeaketak errendimenduan eragina izan dezake, batez ere latentzia baxuko lan-kargetan. Errendimendua energia-kontsumoa murriztea baino lehentasun handiagoa bada, Intelek gomendatzen du energia kudeaketaren efektuak mugatzen esperimentatzea. Energia kudeaketa mugatzeko hainbat modu daude, sistema eragilearen tresnen, BIOS ezarpenen eta kernelaren abioko parametroen bidez. Aukeratu zure ingurunera egokitzen den metodo eta maila onena.
5.2.1 C egoeraren kontrola
C egoeraren sarrera CO edo C1-era mugatzeak errendimendua hobetzen du eta energia-erabilera handitzen du.
CPU paketearen C6 egoera sarrera desgaitzeak sarearen errendimendua hobetu dezake. Hala ere, horrek energia-kontsumoa handitzen du.
Aukera hauek daude eskuragarri:
- Kontrolatu dinamikoki C egoeraren sarrera:
Ireki
/dev/cpu_dma_latency eta idatzi bertan baimendutako latentzia maximoa.
OHARRA
cpudmalatency.c izeneko programa txiki bat dago, kode irekiko komunitatetik deskargatu, konpilatu eta komando-lerrotik exekutatu daitekeena, zehazki hori egiteko.
Hurrengo example-k bost μs-ko esna-denbora baimentzen du, eta beraz, C1 sarrera baimentzen du: cpudmalatency 5 &
- Mugatu C egoera maximoa kernelaren abioko ezarpenetan:
Intel CPUetarako: intel_idle.max_cstates=1
Intel ez diren CPUetarako: processor.max_cstates=1 - Erabili cpupower komandoa CPU C6 egoera egiaztatzeko eta desgaitzeko: Egiaztatu: cpupower monitor edo cpupower idle-info
Desgaitu C6: cpupower idle-set -d3 edo
Desgaitu C egoerak: cpupower idle-set -D0
Oharrak:
- Desgaitu C egoerak CPUan zerbitzariak Intel® 4. belaunaldiko Intel® Xeon® prozesadore eskalagarriak baditu. Hyper Threading gaituta edo desgaituta dagoenean, egoera inaktiboen desgaitzeak (-D0) nukleoak energia gutxiko egoeretan sartzea eragozten du aldi inaktiboetan eta CPUak egoera inaktibo eta aktiboen artean igarotzeko duen latentzia murrizten du.
- Intel® 4. belaunaldiko Intel® Xeon® Scalable Processor-aren energia kudeaketa oso oldarkorra da. Nukleoak energia gutxiko egoeretan sartzea saihesteko, saiatu erabiltzen diren nukleo kopurua murrizten denbora gehiagoz esna mantentzeko (ethtool -L konbinatu ). Gainera, etenaldiak nukleo espezifikoetara lotu set irq affinity erabiliz (gehienetan -x local edo CPU nukleoen zerrenda erabiliz), eta ziurtatu lan-karga nukleo horietan berberetan exekutatzen dela taskset edo numactl erabiliz. Horrek errendimendua hobetzen du nukleoak aktibo mantenduz eta etenaldien kudeaketa optimizatuz.
Gaitu C6:
cpupower inaktibo-multzoa -d3
Gaitu C egoerak:
cpupower inaktibo-multzoa -E
- Beste metodo bat errendimendu profesional bat ezartzeko tresna doitua erabiltzea da (Linux banaketa askotan sartuta).file. Hauek profileAplikazio askotan errendimendua eragin dezaketen hainbat sistema eragilearen ezarpen aldatzen dituzte. Sarearen abiadura-prozesua dela ikusi dafile lan-karga gehienei hobekuntza ematen die.
Egiaztatu:
sintonizatuta-adm aktiboa
Multzoa:
tuned-adm profile sare-errendimendua
OHARRA
Zerbitzu sintonizatua goiko komandoetarako martxan egon behar da. Egiaztatzeko/berrabiarazteko, sintonizatua: systemctl status sintonizatua systemctl restart sintonizatua
C-egoerako edozein sarrera ere debekatu dezakezu honako hau kernelaren abio-lerroan gehituz:
inaktibo=inkesta - Mugatu C egoera sistemaren BIOS energia kudeaketa ezarpenen bidez, eta horrek errendimenduaren abantaila izan dezake.file eskuragarri.
Turbostat edo x86_energy_perf_policy bezalako tresnak erabil daitezke energia kudeatzeko ezarpenak egiaztatzeko edo ezartzeko.
5.2.2 PCIe Energia Kudeaketa
Egoera Aktiboaren Energia Kudeaketak (ASPM) energia-egoera txikiagoa ahalbidetzen du PCIe estekak erabiltzen ez direnean. Horrek latentzia handiagoa eragin dezake PCIe sareko gailuetan, beraz, Intelek gomendatzen du ASPM desgaitzea latentziarekiko sentikorrak diren lan-kargetarako. Desgaitu ASPM honako hau gehituz kernelaren abio-lerroan: pcie_aspm=off
5.2.3 CPUaren maiztasunaren eskalatzea
CPU maiztasunaren eskalatzea (edo CPU abiaduraren eskalatzea) Linuxen energia kudeatzeko teknika bat da, non sistemaren erlojuaren abiadura unean bertan doitzen den energia eta beroa aurrezteko. C egoeren antzera, honek nahi gabeko latentzia sor dezake sareko konexioetan.
cpupower tresna CPUaren errendimenduaren lehenetsitako balioak eta mugak egiaztatzeko eta aldatzeko ere erabil daiteke:
- Egiaztatu: CPUaren potentzia monitore edo
- Ezarri CPUak errendimendu modura: cpupower frequency-set -g performance
OHARRA
CPU maiztasun mugen aldaketek eragina izan dezakete lan-karga askotan eta beste funtzio batzuk desgaitu ditzakete, hala nola CPU turbo modua.
CPU maiztasunaren eskalatzea desgaitzeko, desgaitu CPU energia zerbitzua komando hauek erabiliz:
systemctl-ek cpupower.service gelditu du
systemctl-ek cpupower.service desgaitu du
5.2.4 Energia Kudeaketari buruzko Gida Gehigarriak
Xehetasun gehiago ematen dira goi-mailako txosten honetanview 3. belaunaldiko Intel® Xeon® Scalable prozesadoreetako energia kudeatzeko funtzio askoren azalpena, baita funtzio horiek plataforma mailan nola integratu daitezkeen azaltzen duen orientazioa ere: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Intel® Turbo Boost-ek prozesadorea azkarrago egiten du behar denean, baina energia gehigarria kontsumitu dezake. Turbo Boost desaktibatzen baduzu, prozesadorea abiadura egonkorrean mantentzen da, lan-karga espezifikoetarako errendimendu-maila koherentea emanez.
5.4 Suebakiak
Suebakiek errendimenduan eragina izan dezakete, batez ere latentzian.
Desgaitu iptables/firewalld beharrezkoa ez bada.
5.5 Aplikazioaren ezarpenak
Askotan hari bakar bat (sare-ilara bakar bati dagokiona) ez da nahikoa banda-zabalera maximoa lortzeko. Plataforma-arkitektura batzuek, hala nola AMDk, Rx pakete gehiago botatzen dituzte hari bakar batekin, Intel-en oinarritutako prozesadoreak dituzten plataformekin alderatuta.
Kontuan hartu taskset edo numactl bezalako tresnak erabiltzea aplikazioak NUMA nodoan edo sareko gailuaren tokiko CPU nukleoetan konektatzeko. Lan-karga batzuetarako, hala nola biltegiratze S/I-rako, aplikazioa nodo ez-lokal batera eramateak abantaila bat dakar.
Ahal bada, esperimentatu zure aplikazioak erabiltzen dituen hari kopurua handitzen.
5.6 Kernel Bertsioa
Kutxako kernel moderno gehienak nahiko ondo optimizatuta daude errendimendurako, baina, zure erabilera kasuaren arabera, kernelaren eguneratzeak errendimendua hobetu dezake. Iturburua deskargatzeak kernela eraiki aurretik funtzio batzuk gaitzeko/desgaitzeko aukera ere ematen dizu.
5.7 Sistema eragilearen/kernelaren ezarpenak
Sistema eragilearen doikuntza orokorrari buruzko informazio gehiago lortzeko, kontsultatu sistema eragilearen doikuntza gidak, hala nola Red Hat Enterprise Linux Network Performance Tuning Guide.
Hurrengo taulan doitzeko ohiko parametro batzuk zerrendatzen dira. Kontuan izan hauek abiapuntu iradokizunak baino ez direla, eta lehenetsitako balioetatik aldatzeak sisteman erabiltzen diren baliabideak handitu ditzakeela. Balioak handitzeak errendimendua hobetzen lagun dezakeen arren, balio desberdinekin esperimentatu behar da sistema, lan-karga eta trafiko mota jakin baterako zer funtzionatzen duen hobekien zehazteko.
Kernelaren parametroak Linuxen sysctl utilitatea erabiliz konfigura daitezke, behean adierazten den bezala.
To view rmem eta wmem-en balio lehenetsiak sisteman:
sysctl net.core.rmem_lehenetsia
sysctl net.core.wmem_lehenetsia
Ezarri balioak gehienez (16 MB):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Socket buffer tamainak, jasotzeko bufferra (rmem) eta transmititzeko bufferra (wmem) bezala ere ezagunak, sarrerako eta irteerako sareko trafikoarentzat gordetako memoria kopurua zehazten duten sistemaren parametroak dira.
sysctl -w argumenturik gabe exekutatzeak parametroa bere uneko ezarpenarekin zerrendatzen du.
Pilaketaren ezarpena | Deskribapena |
net.core.rmem_lehenetsia | Jasotzeko leihoaren tamaina lehenetsia |
net.core.wmem_lehenetsia | Transmisio-leihoaren tamaina lehenetsia |
net.core.rmem_max | Jasotzeko leihoaren gehienezko tamaina |
net.core.wmem_max | Gehienezko transmisio-leihoaren tamaina |
net.core.optmem_max | Gehienezko Aukera Memoria Bufferrak |
net.core.netdev_max_backlog | Kernelak erortzen hasi aurretik prozesatu gabeko paketeen atzerapena |
net.ipv4.tcp_rmem | TCP irakurketa bufferrentzako memoria erreserba |
net.ipv4.tcp_wmem | TCP bidalketa bufferrentzako memoria erreserba |
Nukleoak, sare-pilaketak, memoria-kudeatzaileak, CPUaren abiadurak eta energia-kudeaketako parametroek eragin handia izan dezakete sarearen errendimenduan. Gomendio ohikoena sarearen errendimendu-prozesadoreari aplikatzea da.file tuned komandoa erabiliz. Honek sistema eragilearen ezarpen batzuk aldatzen ditu sareko aplikazioei lehentasuna emateko.
Egiaztatu:
sintonizatuta-adm aktiboa
Multzoa:
tuned-adm profile sare-errendimendua
5.8 Sareko gailuen atzerapena
Ezaugarri honek sarearen errendimendua hobetzen laguntzen du, sarrerako trafikoa eraginkortasunez kudeatuz, paketeen galera murriztuz, latentzia gutxituz eta abiadura handituz. Horrek erabiltzaile-esperientzia hobea eta sistemaren erantzun azkarragoa dakar.
Berez, Linux sistema eragile gehienetan gaituta dago. Balio lehenetsia egiaztatzeko:
sysctl net.core.netdev_max_backlog
netdev_max_backlog-en gehienezko balioa alda daiteke kernelaren bertsioa, hardwarea, memoria eta lan-karga bezalako faktoreen arabera. Kasu askotan, 8192 balio ona dela uste da. sysctl -w net.core.netdev_max_backlog=8192
5.9 Plataforma Espezifikoen Konfigurazioak eta Doikuntzak
5.9.1 4. belaunaldiko Intel® Xeon® eskalagarri prozesadoreak
Intel® 4. belaunaldiko Intel® Xeon® Scalable prozesadorearen energia kudeaketa oso oldarkorra da 3. belaunaldiko Intel® Xeon® Scalable prozesadoreekin alderatuta. Nukleoak energia gutxiko egoeretan sartzea saihesteko, saiatu erabiltzen diren nukleo kopurua murrizten denbora gehiagoz esna mantentzeko.
Gomendatutako BIOS ezarpenak errendimendu handiena lortzeko
- Hyper-threading gaitu/desgaitu (lan-kargaren eskakizunen eta errendimendu-helburuen arabera) CPUan.
- Ezarri sistema profesionalafile errendimendu maximoa lortzeko errendimendura.
OHARRA
Horrek energia-kontsumo handiagoa dakar - Ezarri CPUaren energia kudeaketa Errendimendu Maximoan, energia-eraginkortasunaren gainetik CPUaren errendimendu maximoa lehenesteko.
- Gaitu Turbo Boost. Sistemaren BIOS ezarpenetan Turbo Boost desgaitzeak normalean CPUak bere oinarrizko maiztasunaren gainetik bere erloju-abiadura dinamikoki handitzea eragozten du.
- OHARRA
Turbo Boost desgaitzea egokia izan daiteke errendimendu koherentea, energia-eraginkortasuna edo kudeaketa termikoa errendimendu maximoaren gainetik lehenesten diren kasu batzuetarako. - Desaktibatu Single Root I/O Virtualization (SR-IOV) funtzioa, sistemak birtualizazio-teknologiak erabiltzen ez baditu.
- Desgaitu C egoerak CPUari aktibo egoteko eta egoera inaktibo sakonagoetan sartzea saihesteko.
- Desgaitu C1E, CPUa aktibo mantentzen dela eta C1E egoera inaktibora ez sartzeko.
- Ezarri uncore maiztasuna maximoan sistemari eskuragarri dagoen maiztasun altuenean funtzionatzeko agindua emateko.
- Dell plataformetan, ezarri Multiple APIC Description Table (MADT) nukleo emulazioa Lineal gisa (edo Round-Robin gisa, BIOSaren arabera) CPU nukleoen mapaketa argi eta aurreikusgarria lortzeko.
Gomendatutako sistema eragilearen mailako doikuntzak errendimendu optimizaturako
- Ezarri CPU maiztasun eskalatzeko gobernadorea errendimendura. cpupower frequency-set -g performance cpupower frequency-info
- Desgaitu C-egoerak. cpupower idle-set -D0
- Ezarri nukleoaren Rx (rmem) eta Tx (wmem) bufferrak balio maximoan. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
- Sareko gailuen atzerapen-erregistroa ezarri. sysctl -w net.core.netdev_max_backlog=8192
- Ezarri profesional sintonizatuafile (lan-karga errendimenduaren/latentziaren araberakoa).
tuned-adm profile sare-errendimendua
Gomendatutako egokitzaile mailaren doikuntzak errendimendu optimizaturako
- Mugatu aplikazioen trafikoarentzat erabiliko diren ilara kopurua. Erabili beharrezko ilara kopuru minimoa lotutako CPU nukleoak aktibo mantentzeko, egoera inaktibo sakonagoetan sartzea saihesteko (lan-kargaren arabera egokitu): ethtool -L 32 konbinatu
- Ezarri etenaldien moderazio-tasak. ethtool -C egokitzaile-rx itzalita egokitzaile-tx itzalita rx-usecs-high 50 rx-usecs 50 tx-usecs 50
Saiatu transmisio/jasotze/lehentasun handiko koalesztapen tenporizadorea gora (80/100/150/200) edo behera (25/20/10/5) doitzen lan-kargaren balio optimoa aurkitzeko. - Ezarri Rx/Tx eraztunen tamainak. ethtool -G rx 4096 tx 4096
OHARRA
Rx paketeak galtzen direla ikusten baduzu ethtool -S| grep drop komandoarekin, saiatu eraztunaren tamaina <4096ra murrizten. Saiatu paketeak galtzen ez diren lan-kargaren balio optimoa aurkitzen. - Ezarri IRQ afinitatea. Erabili NIC-rako tokiko nukleoak, edo nukleoen mapaketa espezifikoa (non # nukleoak 1. orrialdeko 26ean ezarritako ilara kopuruaren berdina den). systemctl stop irqbalance set_irq_affinity -X local EDO set_irq_affinity -X
5.9.2 AMD EPYC
AMD EPYC prozesadoreak zerbitzari eta datu-zentroetarako egindako CPU indartsuak dira, AMDren Zen arkitekturan oinarrituta. Beheko ezarpenak AMDren 4. belaunaldiko EPYC seriekoak dira.
Gomendatutako BIOS ezarpenak errendimendu handiena lortzeko
- Gaitu modu pertsonalizatua erabiltzaileek CPUaren errendimendua, energia-kontsumoa eta bestelako ezarpenak doitzeko aukera izan dezaten. Horrek sistema doitzen laguntzen du errendimenduaren eta energia-eraginkortasunaren arteko oreka onena lortzeko.
- Gaitu nukleoaren errendimenduaren hobekuntza CPUak automatikoki bere abiadura handitzeko zeregin intentsiboagoak kudeatzeko, errendimendu orokorra hobetuz.
- Desgaitu C egoeraren kontrol globala, CPUak C egoera izeneko energia aurrezteko egoera sakonagoetan sartzea saihesteko, erantzun-gaitasuna mantendu ahal izateko.
OHARRA
C egoerak desgaitzeak energia-kontsumo gehigarria eragin dezake eta tenperatura termikoak handitu. Lan-karga kontrolatu biak. - Gaitu/desgaitu aldibereko hari anitzeko funtzioa (SMT) CPUan, lan-kargaren eskakizunen eta errendimendu-helburuen arabera. SMT Intel CPUetako Hyper Threading-aren baliokidea da.
OHARRA
Errendimendu optimizatua lortzeko, jo ezazu i40e kontrolatzailearen ezarpenak doitzeko 13. orrialdean eta Plataformaren doikuntza (i40e ez-espezifikoa) 19. orrialdean gomendatutako sistema eragilearen eta egokitzailearen mailaren doikuntza ikusteko.
Egokitzailearen lotura
Linux loturak funtzio indartsua da, sarearen errendimendua, erredundantzia eta zerbitzari-inguruneetako akatsen tolerantzia nabarmen hobetu ditzakeena. Hala ere, garrantzitsua da kontuan izatea sareko hardware bateragarria eta zerbitzarian zein etengailuan konfigurazio egokia behar dituela behar bezala funtzionatzeko.
Linuxeko lotura-kontrolatzaileak sare-interfaze fisiko ugari interfaze lotu batean biltzeko aukera ematen dizu. Interfaze lotu hau sare-interfaze birtual bakar gisa agertzen da sistema eragilearentzat eta aplikazioentzat.
OHARRA
Lotura interfaze logikoa da, beraz, ezinezkoa da CPU afinitatea zuzenean lotura interfazean ezartzea (adibidezample, bond0). Hau da, ez du zuzeneko kontrolik etenaldien kudeaketaren edo CPU afinitatearen gainean. CPU afinitatea loturaren parte diren azpiko interfazeetarako konfiguratu behar da.
Loturak hainbat eragiketa modu eskaintzen ditu, bakoitza bere ezaugarriekin.
Modua | Mota |
0 | Round Robin |
1 | Babeskopia aktiboa |
2 | XOR |
3 | Emisioa |
4 | LACP |
5 | Karga-balantzea transmititu |
6 | Karga-oreka moldagarria |
Linuxen lotura bat sortzeko metodo desberdinak daude. Metodo ohikoenetako bat sarearen konfigurazioa erabiltzea da. files (adibidezample, /etc/network/ interfaces edo /etc/sysconfig/network-scripts/ifcfg-bondX).
Konfigurazioa sarearen konfigurazioa erabiliz Files
Hurrengo urratsek sarearen konfigurazioaren bidez lotura sortzen dute files.
- Hautatu bi NIC ataka edo gehiago loturarako (adibidezample, ethX eta ethY)
- Ireki NIC konfigurazioa Filebeharrezko NIC interfazearentzat /etc/sysconfig/network-scripts/ azpian daudenak (adibidezample, vi ifcfg-ethX eta vi ifcfg-ethY) eta erantsi testu hau:
MASTER=bondN [Oharra: N lotura-zenbakia aipatzeko zenbaki osoa da.] SLAVE=bai - Lotura-sare baten gidoia sortu file erabiliz vi /etc/sysconfig/networkscripts/ifcfg-bondN eta idatzi testu hau:
DEVICE=bondN [Oharra: N zenbaki osoa da lotura-zenbakia aipatzeko] ONBOOT=yes USERCTL=no BOOTPROTO=dhcp (edo) none
IPADDR=200.20.2.4 [beharrezkoa BOOTPROTO=none bada] NETMASK=255.255.255.0 [beharrezkoa BOOTPROTO=none bada] NETWORK=200.20.2.0 [beharrezkoa BOOTPROTO=none bada] BROADCAST=200.20.2.255 [beharrezkoa BOOTPROTO=none bada] BONDING_OPTS=”mode=1 miimon=100″
OHARRA
Modua 0tik 6ra bitarteko edozein zenbaki oso izan daiteke, eskakizunaren arabera. - Berrabiarazi sareko zerbitzuak service network restart edo systemctl restart NetworkManager.service erabiliz.
Errendimendu-arazoak konpontzea
7.1 CPUaren erabilera
Egiaztatu nukleo bakoitzeko CPUaren erabilera lan-karga martxan dagoen bitartean.
Kontuan izan nukleo bakoitzeko erabilera CPUaren erabilera orokorra baino garrantzitsuagoa dela errendimenduarentzat, sare-ilarako CPUaren erabileraren ideia bat ematen baitu. Sareko trafikoa exekutatzen duten hari gutxi batzuk besterik ez badituzu, baliteke nukleo gutxi batzuk bakarrik erabiltzea. Hala ere, nukleo horiek % 100ean badaude, orduan zure sarearen errendimendua CPUaren erabilerak mugatuta egongo da ziurrenik eta honako hau egiteko garaia da:
- Doitu IRQ moderazioa/eraztunaren tamaina Eten Moderazioan zehaztutako moduan.
- Handitu aplikazio-hari kopurua CPUaren karga nukleo gehiagotan banatzeko. Nukleo guztiak %100ean exekutatzen ari badira, baliteke aplikazioa CPUra mugatuta egotea, sareari mugatuta baino.
Ohiko tresnak:
- goian
— Sakatu 1 CPUen zerrenda zabaltzeko eta zeintzuk erabiltzen ari diren egiaztatzeko.
— Erabilera-maila kontuan hartu.
— Kontuan izan zein prozesu dauden aktiboen zerrendan (zerrendaren goialdean). - mpstat
Hurrengo exampKomando-lerroa Red Hat Enterprise Linux 7.x-en probatu da.
Nukleo bakoitzeko CPUaren erabilera erakusten du (inolako inaktibotasun ehuneko osoa aurkitu eta 100etik kenduz) eta % 80tik gorako balioak gorriz nabarmentzen ditu. mpstat -P ALL 1 1 | grep -v Average | tail -n +5 | head -n -1 | awk '{ print (100-$13)}' | egrep -color=always '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | column - perf top Zikloak non igarotzen diren bilatu.
7.2 i40e kontagailuak
i40e kontrolatzaileak interfazearen arazketa eta monitorizaziorako kontagailu zerrenda luzea eskaintzen du ethtool -S ethX komandoaren bidez. Lagungarria izan daiteke irteera ikustea lan-karga bat exekutatzen ari den bitartean eta/edo kontagailuen balioak alderatzea lan-karga baten exekuzioaren aurretik eta ondoren.
- i40e kontagailuen datu-base osoa lortzeko: ethtool -S ethX
- Zero ez diren kontagailuak bakarrik ikusteko: watch -d (ethtool -S ethX) | egrep -v :\ 0 | column
Bilatu beharreko gauza batzuk: - rx_dropped-ek esan nahi du CPUak ez dituela bufferrak behar bezain azkar zerbitzatzen.
- port.rx_dropped-ek zerbait ez dela nahikoa azkarra zirrikituan/memorian/sisteman esan nahi du.
7.3 Sareko kontagailuak
Egiaztatu netstat -s lan-karga baten exekuzioa baino lehen/ondoren.
Netstat-ek sareko informazioa biltzen du sistemako sareko gailu guztietatik. Beraz, emaitzetan eragina izan dezakete probatzen ari den sarea ez den beste sare batzuek. netstat -s-ren irteera Linux sistema eragilearen edo kerneleko errendimendu arazoen adierazle ona izan daiteke. Kontsultatu sistema eragilearen doikuntza gidak, hala nola Red Hat Enterprise Linux Network Performance Tuning Guide, sistema eragilearen doikuntza orokorrari buruzko informazio gehiago lortzeko.
7.4 Sistemaren erregistroak
Begiratu sistemaren erregistroak erroreak eta abisuak bilatzeko (/var/log/messages, dmesg).
7.5 Intel svr-info tresna
Intelek svr-info tresna bat eskaintzen du (ikus https://github.com/intel/svr-info) Linuxerako, zerbitzari batetik hardware eta software xehetasun garrantzitsuak jasotzen dituena. svr-info irteera oso lagungarria izan daiteke sistemaren arazoak edo lan-kargarako optimizatuta ez dauden ezarpenak/doikuntzak identifikatzeko. Ethernet-ekin lotutako errendimendu arazoetarako Intel-ekin laguntza kasu bat irekitzean, ziurtatu svr-info irteera (testua) sartzen duzula file) proba konfigurazioko Linux zerbitzari bakoitzerako.
- Deskargatu eta instalatu svr-info:
wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
./svr-info
> hostname.txt - Bildu irteera:
./svr-info > hostname.txt - Erantsi testu bat (.txt) file zerbitzari bakoitzerako zure Intel laguntza-kasuan azterketa egiteko.
Ohiko errendimendu-eszenatokietarako gomendioak
8.1 IP birbidaltzea
- Eguneratu nukleoa.
Distro barruko kernel batzuek bideratze-errendimendua hondatu dute bideratze-kodean kernelaren aldaketak direla eta, segurtasun arrazoiengatik bideratze-katxea kentzen hasita. Distrotik kanpoko kernel berriek aldaketa horien errendimendu-eragina arintzen duten eta errendimendu hobea eman dezaketen adabakiak izan beharko lituzkete. - Desgaitu hiper-harigintza (nukleo logikoak).
- Editatu kernelaren abioko parametroak.
— Behartu iommu itzaltzea (intel_iommu=off edo iommu=off) kernelaren abio-lerrotik, birtualizaziorako beharrezkoa ez bada behintzat
— Itzali energia kudeaketa: processor.max_cstates=1 idle=poll pcie_aspm=off - Mugatu ilara kopurua tokiko socket-eko nukleo kopuruaren berdina izan dadin (12 adibide honetan)ample). ethtool -L ethX konbinatua 12
- Etenaldiak tokiko socket-era soilik konektatzen ditu. set_irq_affinity -X tokiko ethX EDO set_irq_affinity -X tokiko ethX
OHARRA
-X edo -x erabil daiteke lan-kargaren arabera. - Aldatu Tx eta Rx eraztunen tamainak behar den moduan. Balio handiago batek baliabide gehiago behar ditu, baina birbidaltze-tasa hobeak eman ditzake. ethtool -G ethX rx 4096 tx 4096
- Desgaitu GRO bideratzean.
Kernelaren arazo ezagun bat dela eta, GRO itzali behar da bideratzean/birbidaltzean. ethtool -K ethX gro off non ethX aldatu beharreko Ethernet interfazea den. - Desgaitu eten-moderazio moldagarria eta ezarri balio estatiko bat. ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64
OHARRA
Prozesadore motaren eta lan-kargaren arabera, RX eta TX-ren koalesztapen-parametroak doi daitezke errendimendua hobetzeko (edo fotograma-galera gutxiago lortzeko).
- Desgaitu suebakia. sudo systemctl desgaitu firewalld sudo systemctl gelditu firewalld
- Gaitu IP birbidalketa. sysctl -w net.ipv4.ip_forward=1
- Konfiguratu harrera eta bidalketa socket buffer tamainen gehienezko balioak. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
OHARRA
Lan-kargaren edo eskakizunaren arabera, balio hauek lehenetsietatik alda daitezke.
8.2 Latentzia Baxua
- ITZALI hiper-harigintza (nukleo logikoak).
- Ziurtatu sareko gailua numa core 0-ren lokala dela.
- Konektatu benchmark-a 0 nukleora taskset -c 0 erabiliz.
- Itzali irqbalance systemctl stop irqbalance edo systemctl disable irqbalance erabiliz
- Exekutatu afinitate-skripta nukleoetan zehar zabaltzeko. Saiatu lokala edo guztia.
- Desaktibatu etenaldien moderazioa. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- high 0
- Ilara kopurua mugatu tokiko socket-eko nukleo kopuruaren berdina izan dadin (32 adibide honetan)ample). ethtool -L ethX konbinatua 32
- Etenaldiak tokiko socket-era soilik konektatzen ditu (i40e kontrolatzailearen iturburuarekin batera datorren script-a). set_irq_affinity -X local ethX
- Erabili erreferentzia-puntu finkatu bat, hala nola netperf -t TCP_RR, netperf -t UDP_RR edo NetPipe. netperf -t TCP_RR edo netperf -t UDP_RR
- Konektatu erreferentzia tokiko NUMA nodoko nukleo bakar batera. taskset -c
Intel® Ethernet 700 Seriea
Linuxen errendimenduaren doikuntza gida
2024ko abendua
Dokumentu zk.: 334019, Berrikuspena: 1.2
Dokumentuak / Baliabideak
![]() |
Intel Ethernet 700 serieko Linux errendimenduaren doikuntza [pdfErabiltzailearen gida 334019, Ethernet 700 Seriea Linux Errendimenduaren Doikuntza, Ethernet 700 Seriea, Linux Errendimenduaren Doikuntza, Errendimenduaren Doikuntza, Doikuntza |