Intel ® Ethernet 700 -sarja
Linux Performance Tuning Guide
NEX Cloud Networking Group (NCNG)
Rev. 1.2
joulukuuta 2024
Versiohistoria
Tarkistus | Päivämäärä | Kommentit |
1.2 | joulukuuta 2024 | · Lisätty virranhallintaohjeet. · Lisätty Intel* Turbo Boost. · Lisätty verkkolaitteiden ruuhka. · Lisätty alustakohtaiset määritykset ja viritys. · Lisätty 4. sukupolven Intel* %eon* skaalautuvat prosessorit. · Lisätty AMD EPYC. · Päivitetty Tarkista järjestelmän laitteistoominaisuudet. · Päivitetty iPerf2. · Päivitetty iPerf3. · Päivitetyt Tx/Rx-jonot. · Päivitetty keskeytysvalvonta. · Päivitetty renkaan koko. · Päivitetty alustan viritys (i40e ei-spesifinen). · Päivitetyt BIOS-asetukset. · Päivitetty C-State Control. · Päivitetty CPU Frequency Scaling. · Päivitetyt sovellusasetukset. · Päivitetty käyttöjärjestelmän/ytimen asetukset. · Päivitetty IP-lähetys. · Päivitetty matala latenssi. |
Elokuu 2023 | Muutokset tähän asiakirjaan sisältävät: · Lisätty aiheeseen liittyviä viitteitä. · Lisätty Varmista, että DDP-paketti latautuu oikein. · Lisätty iPerf2. · Lisätty iPerf3. · Lisätty netperf. · Päivitetty IRQ Affinity. · Lisätty Tx/Rx-jonot. · Päivitetty renkaan koko. · Lisätty Jumbo-kehykset. · Lisätty sovittimen liimaus. · Lisätty Intel svr-info -työkalu. |
|
1.0 | Maaliskuu 2016 | Ensimmäinen julkaisu (Intel Public). |
Johdanto
Tämän oppaan tarkoituksena on antaa ohjeita ympäristöjen virittämiseen optimaalisen verkkosuorituskyvyn saavuttamiseksi käyttämällä Intel ® Ethernet 700 -sarjan verkkokorttia Linux-ympäristöissä. Se keskittyy laitteiston, ohjaimen ja käyttöjärjestelmän olosuhteisiin ja asetuksiin, jotka voivat parantaa verkon suorituskykyä. On huomattava, että verkottumisen suorituskykyyn voivat vaikuttaa monet ulkopuoliset tekijät, vain yleisimmät ja dramaattisimmat niistä käsitellään tässä oppaassa.
1.1 Aiheeseen liittyvät viitteet
- Käyttöopas kaikille Intel ® Ethernet -sovittimille ja laitteille, jotka tukevat Windowsia ja Linuxia:
Intel ® Ethernet -sovittimien ja -laitteiden käyttöopas - Tekninen tiedote:
Intel ® Ethernet Controller X710/XXV710/XL710 Datasheet - Täydellinen ohjelmistopaketti kaikille Intel ® Ethernet -tuotteille (lataa kaikki ohjaimet, NVM:t, työkalut jne.):
Intel ® Ethernet Adapter Complete Driver Pack - NVM (haihtumaton muisti) -päivityspaketti:
Haihtumattoman muistin (NVM) päivitysapuohjelma Intel ® Ethernet -verkkosovittimelle 700 Series - svr-info -työkalu Linuxille, joka tallentaa olennaiset laitteisto- ja ohjelmistotiedot palvelimelta: https://github.com/intel/svr-info
- DDP-tekniikkaopas:
Intel ® Ethernet 700 Series Dynamic Device Personalization (DDP) -tekniikkaopas
Alkuperäinen tarkistuslista
2.1 Päivitä ohjain-/laiteohjelmistoversiot
Tarkista ohjain-/laiteohjelmistoversiot komennolla ethtool -i ethx.
Päivitä seuraavat tiedot tarpeen mukaan:
- Päivitä i40e-ohjain
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 - Päivitä laiteohjelmisto
https: //downloadcenter.intel.com/download/24769/NVM-Update-Utility-for-Intel- Ethernet-ConvergedNetwork-Adapter-XL710-X710-Series
2.2 Lue README
Tarkista tunnetut ongelmat ja hanki uusimmat määritysohjeet README:stä file sisältyy i40e-lähdepakettiin.
2.3 Tarkista, että PCI Express (PCIe) -paikkasi on x8
Jotkut PCIe x8 -paikat on itse asiassa määritetty x4-paikoiksi. Näissä paikoissa ei ole tarpeeksi kaistanleveyttä täydelle linjanopeudelle kaksi- ja neliporttisilla laitteilla. Lisäksi, jos laitat PCIe v3.0 -yhteensopivan sovittimen PCIe v2.x -paikkaan, et voi saada täyttä kaistanleveyttä. Ohjelmiston laiteohjain havaitsee tämän tilanteen ja kirjoittaa seuraavan viestin järjestelmälokiin:
Tämän kortin käytettävissä oleva PCI-Express-kaistanleveys ei riitä optimaaliseen suorituskykyyn. Optimaalista suorituskykyä varten tarvitaan x8 PCI-Express -paikka.
Jos tämä virhe ilmenee, siirrä sovitin oikeaan PCIe v3.0 x8 -paikkaan ongelman ratkaisemiseksi.
2.4 Tarkista järjestelmän laitteiston ominaisuudet
Nopeuksilla 10 Gbps, 25 Gbps ja 40 Gbps Ethernetillä on joitain suorittimen ja järjestelmän vähimmäisvaatimuksia. Yleisesti ottaen nykyaikainen palvelinluokan prosessori ja optimaalinen muistikokoonpano alustallesi pitäisi riittää, mutta tarpeet vaihtelevat työmääräsi mukaan. Kaikki muistikanavat on täytettävä ja muistin suorituskykytila on otettava käyttöön BIOSissa. Varmista, että suoritin- ja muistikokoonpanosi pystyvät tukemaan työkuormasi vaatimaa verkon suorituskykyä.
HUOM
XL710 on 40 GbE:n ohjain. Tätä ohjainta käyttävän 2 x 40 GbE:n sovittimen ei ole tarkoitus olla 2 x 40 GbE, vaan 1 x 40 GbE, jossa on aktiivinen varaportti. Kun yritetään käyttää molempien porttien linjaliikennettä, sisäinen kytkin on kyllästetty ja yhdistetty kaistanleveys näiden kahden portin välillä on rajoitettu yhteensä SO Gbps:iin.
2.4.1 Ytimen käynnistysparametrit
Jos Intel® Virtualization Technology for Directed I/O (Intel® VT-d) on otettu käyttöön BIOSissa, Intel suosittelee, että IOMMU on pass-through-tilassa optimaalisen isäntäverkon suorituskyvyn saavuttamiseksi. Tämä eliminoi isäntäliikenteen DMA-ylimääräiset kustannukset ja mahdollistaa virtuaalikoneiden (VM) edelleen hyödyntävän Intel® VT-d:n edut. Tämä saadaan aikaan lisäämällä seuraava rivi ytimen käynnistysparametreihin: fommu-pt.
2.5 Varmista, että DDP-paketti latautuu oikein
140ea- ja 140eb-perusajureilla ei ole suoraa tukea Dynamic Device Personalization (DDP) -toiminnolle. Jos haluat käyttää DDP:tä 700-sarjan laitteiden kanssa, DDP profile voidaan käyttää testpmd-sovelluksella.
Lisätietoja DDP prostafiles ja kuinka DDP pro:ta käytetäänfile Testpmd:n kanssa 700-sarjan laitteissa, katso Intel® Ethernet 700 Series Dynamic Device Personalization (DDP) -tekniikkaopas.
Tarkistaaksesi, onko DDP profile ladattiin onnistuneesti:
testpmd> ddp hae lista 0 Profile numero on: 1
HUOM
Jos ammattilainenfile numero on 0, DDP-pakettia ei ole ladattu. DDP-paketin latausvirheen sattuessa laite siirtyy oletuksena vikasietotilaan ja monet suorituskykyominaisuudet eivät ole käytettävissä. Jos DDP-paketin lataamiseen liittyy virheitä, se aiheuttaa suorituskykyongelmia. Katso vianetsintävaiheet Inte/* Ethernet 700 Series Dynamic Device Personalization (DDP) -tekniikkaoppaasta.
Perustason suorituskykymittaukset ja viritysmenetelmät
3.1 Verkon suorituskyvyn vertailuarvot
Ennen viritysharjoituksen aloittamista on tärkeää saada hyvä perusmittaus verkon suorituskyvystä. Yleensä sen lisäksi, että saat alustavan mittauksen tietyn sovelluksesi/työkuormasi suorituskyvystä, on hyvä idea käyttää myös tavallista verkon suorituskyvyn vertailuarvoa sen varmistamiseksi, että verkkolaitteesi on hyvässä kunnossa.
Yhden järjestelmän optimointiin netperf tai iperf ja NetPIPE ovat kaikki kiinteitä avoimen lähdekoodin ilmaisia työkaluja, joiden avulla voit korostaa yhteyttä ja diagnosoida suorituskykyongelmia.
Netperf on vahva sekä suorituskyvyn että latenssin testaamiseen. NetPIPE on latenssikohtainen työkalu, mutta se voidaan kääntää mihin tahansa ympäristöön.
HUOM
Netperfin TCP_RR-testi palauttaa viiveen tapahtumien arvona sekunnissa. Tämä on meno-paluunumero. Yksisuuntainen latenssi voidaan laskea käyttämällä seuraavaa yhtälöä:
Latenssi(usek) = (1⁄2) / [Tapahtumia/s] * 1,000,000 XNUMX XNUMX
3.1.1 iPerf2
Intel suosittelee iperf2:ta iperf3:n sijaan useimpiin vertailutilanteisiin, koska se on helppokäyttöinen ja tukee useita säikeitä yhdessä sovellusesiintymässä. Intel suosittelee käyttöä -P-vaihtoehdolla, jossa on 2-4 säiettä 25G-yhteyksille ja noin 4-6 säiettä 40G-yhteyksille.
- Yksisuuntaisen liikenteen ajaminen asiakkaalta palvelimelle: Palvelinkomento esimample: iperf2 -s
Asiakaskomento esimample: iperf2 -c -P - Kaksisuuntaisen liikenteen ajaminen asiakkaalta palvelimelle (ja päinvastoin): Palvelinkomento esimample: iperf2 –s –p
Asiakaskomento esimampseuraavat:
iperf2 -c -s -P --täydellinen kaksipuolinen TAI
iperf2 -c -s -P –d
HUOM
Sekä -full-duplex- että -d-vaihtoehdot iperf2:ssa antavat käyttäjälle mahdollisuuden suorittaa kaksisuuntaisia testejä. Kuitenkin –full-duplex-vaihtoehto keskittyy erityisesti full-duplex-testaukseen.
HUOM
Kun testataan iperf2:ta useissa palvelinporteissa, palvelinkomentoon voidaan lisätä lippu -d, jotta kaikki palvelinistunnot suoritetaan taustalla samasta pääteikkunasta. Lippua -d voidaan käyttää myös, kun palvelinkomento on upotettu skriptin for-silmukan sisään.
HUOM
Kun suoritat verkon suorituskyvyn testiä yhdellä virralla/säikeellä (esimample: P1), AMD-prosessorit eivät välttämättä tarjoa odotettua suorituskykyä, etenkään suuremman kaistanleveyden NIC-kortteja (jos nopeus on >= 25G kaistanleveys). Tämän seurauksena sovellus on kiinnitettävä tiettyihin ytimiin suuremman suorituskyvyn saavuttamiseksi. Katso Sovellusasetukset sivulla 22.
3.1.2 iPerf3
Jos iperf3:a käytetään, sovelluksen useat esiintymät vaaditaan etenemääntage monisäikeistä, RSS- ja laitteistojonoista. Intel suosittelee 2-4 sovellusistunnon käyttöä 25G-yhteyksille ja noin 4-6 istuntoa 40G-yhteyksille. Jokaisen istunnon tulee määrittää yksilöllinen TCP-portin arvo käyttämällä -p-vaihtoehtoa.
- Yksisuuntaisen liikenteen ajaminen asiakkaalta palvelimelle:
Palvelimen komento esimampseuraavat:
iperf3 -s -p
Asiakaskomento esimampseuraavat:
iperf3 -c -s - Kaksisuuntaisen liikenteen ajaminen asiakkaalta palvelimelle (ja päinvastoin):
Palvelimen komento esimampseuraavat:
iperf3 –s –p
Asiakaskomento esimample: iperf3 -c -s -P –-bidir - Useiden iperf3-esiintymien (säikeiden) käynnistämiseksi on suositeltavaa käyttää for-silmukkaa yhdistämään säikeet TCP-portteihin ja ajamaan iperf3:a taustalla käyttämällä &-toimintoa useiden prosessien luomiseksi rinnakkain.
Palvelimen komento esimample, aloita 4 säiettä: portti=””; i:lle {0..3}; do portti = 520$i; bash -c "iperf3 -s -p $portti &"; tehty; Asiakaskomento esimample, aloita 4 säiettä – Lähetä testiportti=””; i:lle {0..3}; do portti = 520$i; bash -c “iperf3 -c $palvelinIP -p $portti &”; tehty; Asiakaskomento esimample, aloita 4 säiettä – Vastaanota testiportti=””; i:lle {0..3}; do portti = 520$i; bash -c "iperf3 -R -c $palvelinIP -p $portti &"; tehty; 40G-yhteyksissä lisää for-silmukkaa luodaksesi jopa 6 esiintymää/säiettä.
HUOM
Kun suoritat verkon suorituskyvyn testiä yhdellä virralla/säikeellä (esimample: P1), AMD-prosessorit eivät välttämättä tarjoa odotettua suorituskykyä, etenkään suurempaa kaistanleveyttä
NIC:t (jos nopeus on >= 25G kaistanleveys). Tämän seurauksena sovellus on kiinnitettävä tiettyihin ytimiin suuremman suorituskyvyn saavuttamiseksi. Katso Sovellusasetukset sivulla 22 ja AMD EPYC sivulla 26.
3.1.3 netperf
Netperf-työkalu on vahva valinta sekä suorituskyvyn että latenssin testaukseen.
- Netperfin TCP_STREAM-testi mittaa laitteen suorituskyvyn. Palvelimen komento esimample: netserver Client komento esimample: netperf -t TCP_STREAM -l 30 -H
- Netperfin TCP_RR-testi palauttaa viiveen tapahtumien arvona sekunnissa. Tämä on meno-paluunumero. On suositeltavaa käyttää vaihtoehtoa -T x,x, jos x on laitteen paikallinen CPU. Yksisuuntainen latenssi voidaan laskea käyttämällä: Latency(usec)=(1⁄2)/ [Tapahtumia/s]*1,000 XNUMX,\ Palvelinkomento esim.ample: verkkopalvelin
Asiakaskomento esimample: netperf -t TCP_RR -l 30 -H -T x,x - Useiden netperf-instanssien (säikeiden) käynnistämiseksi on suositeltavaa käyttää for-silmukkaa yhdistämään säikeet TCP-portteihin ja ajamaan netperfiä taustalla käyttämällä &-toimintoa useiden prosessien luomiseksi rinnakkain.
Palvelimen komento esimample, aloita 8 säiettä:
portti=””; i:lle {0..7}; do portti = 520$i; bash -c “verkkopalvelin -L $palvelimen IP -p $portti &”; tehty;
Asiakaskomento esimample, aloita 8 säiettä: portti=””; i:lle {0..7}; do portti = 520$i; bash -c "netperf -H $palvelimen IP -p $portti -t TCP_STREAM -l 30 &"; tehty;
3.2 Viritysmenetelmät
Keskity yhteen viritysmuutokseen kerrallaan, jotta tiedät, miten jokainen muutos vaikuttaa testiisi. Mitä systemaattisemmin olet viritysprosessissa, sitä helpompi on tunnistaa suorituskyvyn pullonkaulojen syyt ja puuttua niihin.
i40e-ohjainasetusten virittäminen
4.1 IRQ-affiniteetti
IRQ-affiniteetin määrittäminen siten, että eri verkkojonojen keskeytykset liitetään eri prosessorin ytimiin, voi olla valtava vaikutus suorituskykyyn, erityisesti monisäikeisiin suoritustehotesteihin.
Jos haluat määrittää IRQ-affiniteettia, pysäytä irqbalance ja käytä sitten joko set_irq_affinity-komentosarjaa i40e-lähdepaketista tai kiinnitä jonot manuaalisesti. Poista käyttäjätilan IRQ-tasapainotin käytöstä ottaaksesi jonon kiinnityksen käyttöön:
- systemctl poista irqbalance käytöstä
- systemctl stop irqbalance
i40e-lähdepaketin set_irq_affinity-komentosarjan käyttäminen (suositus): - Kaikkien ytimien käyttäminen:
[polku i40epackageen]/scripts/set_irq_affinity -X all ethX - Vain ytimien käyttäminen paikallisessa NUMA-pistokkeessa: [polku i40epackageen]/scripts/set_irq_affinity -X local ethX
- Voit myös valita joukon ytimiä. Vältä cpu0:n käyttöä, koska se suorittaa ajastintehtäviä. [polku i40epackageen]/scripts/set_irq_affinity 1-2 ethX
HUOM
Affiniteettiskripti mahdollistaa XPS:n (Transmit Packet Steering) osana kiinnitysprosessia, kun -x-vaihtoehto on määritetty. Kun XPS on käytössä, Intel suosittelee, että poistat irqbalancen käytöstä, koska XPS:llä varustettu ytimen tasapainotin voi aiheuttaa arvaamatonta suorituskykyä. Affiniteettikomentosarja poistaa XPS:n käytöstä, kun -X-vaihtoehto on määritetty. XPS:n poistaminen käytöstä ja symmetristen jonojen käyttöönotto on hyödyllistä työkuormissa, joissa paras suorituskyky saavutetaan, kun Tx- ja Rx-liikennettä huolletaan samoissa jonopareissa.
Symmetristen jonojen määrittäminen Linuxissa sisältää verkkoliitännän ohjainparametrien säätämisen mahdollistamaan symmetriset vastaanottojonot (Rx) ja symmetriset lähetysjonot (Tx) tuetuille verkkosovittimille.
HUOM
- Symmetriset jonot ovat kehittynyt verkkoominaisuus, eivätkä kaikki 700-sarjan verkkosovittimet tai ohjaimet tue niitä.
- Varmista, että sinulla on tarvittava ohjain- ja laitteistotuki, ennen kuin yrität määrittää symmetrisiä jonoja.
Voit määrittää symmetriset jonot seuraavasti:
- Muokkaa verkkoliittymän asetuksia File: Käytä tekstieditoria (esimample, vi, nano tai gedit) muokataksesi verkkoliitännän asetuksia file. The file sijaitsee yleensä hakemistossa /etc/sysconfig/network-scripts/ ja sen nimi on esimerkiksi ifcfg-ethX, jossa ethX on verkkoliittymäsi nimi.
- Lisää symmetriset jonoparametrit. Lisää seuraavat rivit verkkoliitännän kokoonpanoon file: ETHTOOL_OPTS=”rx-jonot 8 tx-jonot 8”
- Käynnistä verkkopalvelu uudelleen.
Kun olet tehnyt muutokset, käynnistä verkkopalvelu uudelleen ottaaksesi uuden kokoonpanon käyttöön. sudo systemctl käynnistä verkko uudelleen
Käsin:
-
Etsi kuhunkin solmuun liitetyt prosessorit käyttämällä: numactl –hardware lscpu
-
Etsi kunkin prosessorin bitimaskit:
- Olettaen solmun 0 ytimet 11-0: [1,2,4,8,10,20,40,80,100,200,400,800]
- Etsi määritettävälle portille määritetyt IRQ:t: grep ethX /proc/interrupts ja merkitse muistiin IRQ-arvot esim.ample, 181-192 12 ladatulle vektorille.
- Toista SMP-affiniteettiarvo vastaavaan IRQ-merkintään. Huomaa, että tämä on tehtävä jokaiselle IRQ-merkinnälle: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity Näytä IRQ-affiniteetti:
- IRQ-affiniteetin näyttäminen kaikille ytimille: /scripts/set_irq_affinity -s ethX
- Vain paikallisen NUMA-pistorasian ytimien näyttäminen: /scripts/set_irq_affinity -s paikallinen ethX
- Voit myös valita joukon ytimiä: /scripts/set_irq_affinity -s 40-0-8,16 ethX
HUOM
Set_irq_affinity-skripti tukee -s-lippua i40e-ohjainversiossa 2.16.11 ja uudemmissa.
4.2 Tx/Rx-jonot
Kullekin Ethernet-portille ohjaimen alustuksen yhteydessä sallimien jonojen oletusmäärä on yhtä suuri kuin alustassa käytettävissä olevien suorittimien kokonaismäärä. Tämä toimii hyvin monilla alustoilla ja työkuormituskokoonpanoilla. Kuitenkin alustoissa, joissa on paljon ydintä ja/tai korkea Ethernet-porttitiheys, tämä kokoonpano voi aiheuttaa resurssikiistaa. Tästä syystä saattaa joissain tapauksissa olla tarpeen muuttaa järjestelmän jokaisen portin oletusasetuksia.
Tx/Rx-jonojen oletusmäärä voi vaihdella mallin ja ohjainversion mukaan. Jonojen määrää voidaan säätää alla olevan ethtool -L -komennolla.
HUOM
Näissä tapauksissa Intel suosittelee, että vähennät kunkin portin oletusjonomäärää korkeintaan sovitinportin paikallisessa NUMA-solmussa käytettävissä olevien suorittimien lukumäärään. Joissakin tapauksissa, kun yritetään tasapainottaa resursseja suuren porttimäärän toteutuksissa, saattaa olla tarpeen vähentää tätä määrää entisestään.
Jonon määritysten muokkaaminen:
Seuraava example asettaa portin 32 Tx/Rx-jonoon: ethtool -L ethX yhdistetty 32
Example lähtö:
ethtool -l ethX
Kanavaparametrit ethX:lle: Esiasetetut maksimiarvot:
RX: 96
TX: 96
Muut: 1
Yhdistetty: 96
Nykyiset laitteistoasetukset:
RX: 0
TX: 0
Muut: 1
Yhdistetty: 32
4.3 Keskeytä moderointi
Mukautuva keskeytysvalvonta on oletuksena käytössä, ja se on suunniteltu tarjoamaan tasapainoinen lähestymistapa alhaisen suorittimen käyttöasteen ja korkean suorituskyvyn välillä. Voit kuitenkin yrittää virittää keskeytysasetukset manuaalisesti käyttötapasi mukaan.
Alue 0-235 mikrosekuntia tarjoaa tehokkaan alueen 4,310 250,000 - 2 XNUMX keskeytystä sekunnissa. Arvo rx-μsec-high voidaan asettaa riippumatta rx-μsec ja tx-μsec samassa ethtool-komennossa, ja se on myös riippumaton adaptiivisesta keskeytyksen moderointialgoritmista. Taustalla oleva laitteisto tukee granulaarisuutta XNUMX mikrosekunnin välein, joten vierekkäiset arvot voivat johtaa samaan keskeytystaajuuteen.
- Mukautuvan keskeytyksen moderoinnin poistaminen käytöstä: ethtool -C ethX adaptive-rx off adaptive-tx off
- Mukautuvan keskeytyksen moderoinnin ottaminen käyttöön: ethtool -C ethX adaptive-rx on adaptive-tx päällä
Hyvä aloituspaikka yleisviritykselle on 84 μs eli ~12000 keskeytystä/s. Jos näet rx_dropped laskurit käynnissä liikenteen aikana (käyttäen ethtool -S ethX), sinulla on luultavasti liian hidas prosessori, ei tarpeeksi puskureita sovittimen rengaskoosta (ethtool -G) pakettien säilyttämiseen 84 μs tai alhainen keskeytysnopeus.
- Keskeytyksen moderoinnin asettaminen kiinteäksi 84 μs:n keskeytysnopeudeksi keskeytysten välillä (12000 keskeytystä/s): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 Seuraava arvo on 62 μs, jos et ole maksimissaan suorittimen käyttöasteella. Tämä käyttää enemmän prosessoria, mutta palvelee puskurointia nopeammin ja vaatii vähemmän kuvaajia (renkaan koko, ethtool -G).
- Keskeytyksen moderoinnin asettaminen kiinteään 62 käyttökertaan keskeytysten välillä (16000 keskeytystä/s). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
Jos rx_dropped laskurit kasvavat liikenteen aikana (käyttäen ethtool -S ethX), sinulla on todennäköisesti liian hidas prosessori, liian vähän puskureita sovittimen rengaskoosta (ethtool -G) tai liian alhainen keskeytystaajuus. Jos et ole täysillä suorittimen käyttöasteessa, voit lisätä keskeytysnopeutta alentamalla ITR-arvoa. Tämä käyttää enemmän prosessoria, mutta palvelut puskuroivat nopeammin ja vaatii vähemmän kuvaajia (renkaan koko, ethtool -G).
Jos prosessori on 100%, keskeytystaajuuden lisääminen ei ole suositeltavaa. Tietyissä olosuhteissa, kuten prosessoriin sidottu työkuormitus, saatat haluta suurentaa μs-arvoa salliaksesi enemmän suoritinaikaa muille sovelluksille.
Jos tarvitset alhaisen latenssin suorituskyvyn ja/tai sinulla on runsaasti prosessoria käytettäväksi verkon prosessoinnissa, voit poistaa keskeytyksen moderoinnin kokonaan käytöstä, jolloin keskeytykset käynnistyvät mahdollisimman nopeasti. - Keskeytyksen moderoinnin poistaminen käytöstä ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0
HUOM
Kun keskeytyksen moderointi on poistettu käytöstä, kunkin jonon keskeytysnopeus voi olla erittäin korkea. Harkitse rx-usec-high-parametrin sisällyttämistä asettaaksesi keskeytysnopeuden ylärajan. Seuraava komento poistaa mukautuvan keskeytyksen moderoinnin käytöstä ja sallii enintään 5 mikrosekuntia, ennen kuin vastaanotto tai lähetys on valmis. Sen sijaan, että se tuottaisi jopa 200,000 50,000 keskeytystä sekunnissa, se rajoittaa keskeytyksiä sekunnissa 20 5:een rx-usec-high-parametrin avulla. # ethtool -C ethX adaptiivinen-rx pois adaptiivinen-tx pois rx-usecs-high 5 rx-usecs 80 txusecs 100 Yritä säätää lähetys-/vastaanotto-/korkean prioriteetin yhdistämisajastinta suuremmaksi (150/200/25/20) tai pienemmäksi (10/5/XNUMX) työn kuormituksen optimaaliseksi arvoksi löytääksesi XNUMX.
4.4 Sormuksen koko
Jos näet rx_dropped-laskurit ethtool -S ethX:ssä (rx_dropped, rx_dropped.nic) tai epäilet välimuistin paineen useiden aktiivisten jonojen ollessa aktiivisia, voit yrittää muuttaa renkaan kokoa oletusarvosta. Oletusarvo on 512, enimmäisarvo on 4096.
- Voit tarkistaa nykyiset arvot: ethtool -g ethX
Jos epäillään, että puskuroinnin puute aiheuttaa pudotuksia nykyisellä keskeytysnopeudella, voit kokeilla ensin maksimiarvoa, sitten minimiä ja jatkaa sitten binäärihakua, kunnes näet optimaalisen suorituskyvyn.
Jos välimuistin painetta epäillään (monet jonot aktiivisia), puskureiden vähentäminen oletusarvosta voi auttaa Intel ® Data Direct I/O:ta (Intel ® DDIO) toimimaan tehokkaammin. Intel suosittelee kokeilemaan 128 tai 256 per jono, koska on tietoinen siitä, että keskeytysnopeuden lisääminen ethtool -C:n avulla saattaa olla tarpeen rx_dropped-arvon kasvun välttämiseksi. - Renkaan koon asettaminen kiinteään arvoon: ethtool -G eth12 rx 256 tx 256
HUOM
Korjataksesi ethtool -S ethX|grep drop -sovelluksella löydetyt Rx-pakettien pudotukset, harkitse renkaan koon kasvattamista 4096:een. Kokeile löytääksesi paras asetus työmäärälle, mutta varo liiallista muistin käyttöä suuremmilla arvoilla.
4.5 Virtauksen ohjaus
Tason 2 vuonhallinta voi vaikuttaa huomattavasti TCP:n suorituskykyyn, ja se on suositeltavaa poistaa käytöstä useimmissa työkuormissa. Mahdollinen poikkeus on purskeinen liikenne, jossa purskeet eivät ole pitkiä.
Virtauksen ohjaus on oletusarvoisesti poissa käytöstä.
- Voit ottaa virtauksen ohjauksen käyttöön seuraavasti: ethtool -A ethX rx on tx on
- Virranhallinnan poistaminen käytöstä: ethtool -A ethX rx off tx off
HUOM
Sinulla on oltava vuonhallintaan kykenevä linkkikumppani, jotta voit ottaa vuonhallinnan käyttöön onnistuneesti.
4.6 Jumbo-kehykset
Kun odotettu liikenneympäristö koostuu suurista siirrettävistä datalohkoista, saattaa olla hyödyllistä ottaa käyttöön jumbokehysominaisuus. Jumbo Frames -tuki otetaan käyttöön muuttamalla Maximum Transmission Unit (MTU) -arvoksi, joka on suurempi kuin oletusarvo 1500. Näin laite voi siirtää dataa suuremmissa paketeissa verkkoympäristössä. Tämä asetus saattaa parantaa suorituskykyä ja vähentää suorittimen käyttöä suurissa I/O-työkuormissa. Se voi kuitenkin vaikuttaa pienten pakettien tai latenssiherkkiin työkuormiin.
HUOM
Jumbo-kehykset tai suurempi MTU-asetus on määritettävä oikein verkkoympäristössäsi.
Käytä ifconfig-komentoa suurentaaksesi MTU:n kokoa. esimample, kirjoita seuraava, missä on käyttöliittymän numero: ifconfig mtu 9000 ylöspäin
Vaihtoehtoisesti voit käyttää ip-komentoa seuraavasti: ip link set mtu 9000 dev ip-linkin asennus dev
Alustan viritys (ei-spesifinen i40e)
5.1 BIOS-asetukset
- Ota Intel® VT-d käyttöön virtualisoinnin työkuormia varten.
- Hyper-säie (loogiset prosessorit) voi vaikuttaa suorituskykyyn. Kokeile sitä päälle tai pois päältä työkuormasi mukaan.
- Intel® Turbo Boost mahdollistaa suorittimen ytimien toiminnan korkeammalla taajuudella kuin suorittimen perustaajuus. Intel® Turbo Boostin ottaminen käyttöön voi parantaa suorituskykyä monissa työkuormissa, mutta kuluttaa enemmän virtaa pitääkseen ytimet korkeammalla taajuudella. Kokeile Turbo Boost -toimintoa pois päältä/päälle työtaakkaasi varten.
HUOM
Turbotaajuuksia ei taata, jos alustalla on korkea yleinen prosessorin käyttöaste. Korkeammat ydinturbotaajuudet vähenevät, kun prosessorin kokonaiskäyttö lisääntyy.
5.2 Virranhallinta
Virranhallinta voi vaikuttaa suorituskykyyn, erityisesti alhaisen viiveen työkuormituksella. Jos suorituskyky on tärkeämpi kuin virrankulutuksen vähentäminen, Intel suosittelee, että kokeilet virranhallinnan vaikutusten rajoittamista. Virranhallintaa voidaan rajoittaa monella eri tavalla käyttöjärjestelmän työkalujen, BIOS-asetusten ja ytimen käynnistysparametrien avulla. Valitse ympäristöösi parhaiten sopiva menetelmä ja taso.
5.2.1 C-State Control
C-tilan pääsyn rajoittaminen CO:een tai C1:een parantaa suorituskykyä ja lisää tehonkäyttöä.
CPU Package C6 -tilamerkinnän poistaminen käytöstä voi parantaa verkon suorituskykyä. Tämä kuitenkin lisää virrankulutusta.
Seuraavat vaihtoehdot ovat käytettävissä:
- Ohjaa dynaamisesti C-tilamerkintää:
Avata
/dev/cpu_dma_latency ja kirjoita siihen suurin sallittu latenssi.
HUOM
On olemassa pieni cpudmalatency.c-niminen ohjelma, joka voidaan ladata avoimen lähdekoodin yhteisöstä, kääntää ja suorittaa komentoriviltä juuri tämän tekemiseksi.
Seuraava example sallii viisi μs herätysaikaa ja mahdollistaa siten C1-syötön: cpudmalatency 5 &
- Rajoita suurinta C-tilaa ytimen käynnistysasetuksissa:
Intel-suorittimet: intel_idle.max_cstates=1
Muille kuin Intel-suorittimille: processor.max_cstates=1 - Käytä cpupower-komentoa CPU C6 -tilan tarkistamiseen ja poistamiseen käytöstä: Tarkista: cpupower monitor tai cpupower idle-info
Poista C6 käytöstä: cpupower idle-set -d3 tai
Poista C-States käytöstä: cpupower idle-set -D0
Huomautuksia:
- Poista C-tilat käytöstä CPU:ssa, jos palvelimessa on Intel® 4th Gen Intel® Xeon® skaalautuva prosessori(t). Kun Hyper Threading on käytössä tai pois käytöstä, valmiustilojen (-D0) poistaminen käytöstä estää ytimiä siirtymästä vähän virtaa kuluttaviin tiloihin lepotilan aikana ja vähentää CPU:n viivettä siirtyä vapaan ja aktiivisen tilan välillä.
- Intel® 4th Gen Intel® Xeon® Scalable Processorin virranhallinta on erittäin aggressiivista. Välttääksesi ytimiä joutumasta vähän virtaa kuluttaviin tiloihin, yritä vähentää käytössä olevien ytimien määrää pitääksesi ne hereillä pidempään (ethtool -L yhdistetty ). Sido myös keskeytykset tiettyihin ytimiin käyttämällä set irq -affiniteettia (useimmiten -x local tai prosessoriytimien luettelo) ja varmista, että työkuorma toimii samoissa ytimissä taskset- tai numactl-affiniteetilla. Tämä parantaa suorituskykyä pitämällä ytimet aktiivisina ja optimoimalla keskeytyksen käsittelyn.
Ota C6 käyttöön:
cpupower idle-set -d3
Ota C-States käyttöön:
cpupower idle-set -E
- Toinen tapa on käyttää viritettyä työkalua (sisältyy moniin Linux-jakeluihin) suorituskyvyn ammattilaisen asettamiseenfile. Nämä ammattilaisetfiles muokata useita käyttöjärjestelmän asetuksia, jotka voivat vaikuttaa useiden sovellusten suorituskykyyn. On havaittu, että verkon läpimeno profile tarjoaa parannusta useimpiin työkuormiin.
Tarkista:
viritetty-adm aktiivinen
Sarja:
tuned-adm profile verkon läpimenokyky
HUOM
Viritetyn palvelun on oltava käynnissä yllä oleville komentoille. Tarkista/käynnistetään uudelleen, viritetty: systemctl status viritetty systemctl restart viritetty
Voit myös estää minkä tahansa C-state-merkinnän lisäämällä seuraavan ytimen käynnistysriville:
tyhjäkäynti = kysely - Rajoita C-tilaa järjestelmän BIOS-virranhallinta-asetuksista, joissa voi olla suorituskykyä edistäväfile saatavilla.
Virranhallinta-asetusten tarkistamiseen tai asettamiseen voidaan käyttää työkaluja, kuten turbostat tai x86_energy_perf_policy.
5.2.2 PCIe-virranhallinta
Active-State Power Management (ASPM) mahdollistaa pienemmän tehotilan PCIe-linkeille, kun ne eivät ole aktiivisessa käytössä. Tämä voi aiheuttaa korkeamman viiveen PCIe-verkkolaitteissa, joten Intel suosittelee ASPM:n poistamista käytöstä latenssiherkissä työkuormissa. Poista ASPM käytöstä lisäämällä seuraava ytimen käynnistysriville: pcie_aspm=off
5.2.3 Suorittimen taajuuden skaalaus
CPU-taajuuden skaalaus (tai CPU-nopeuden skaalaus) on Linuxin virranhallintatekniikka, jossa järjestelmän kellonopeutta säädetään lennossa virran ja lämmön säästämiseksi. Aivan kuten C-tilat, tämä voi aiheuttaa ei-toivottua latenssia verkkoyhteyksissä.
Cpupower-työkalua voidaan käyttää myös suorittimen suorituskyvyn oletusarvojen ja rajoitusten tarkistamiseen ja muokkaamiseen:
- Tarkista: cpupower-näyttö tai
- Aseta CPU:t suorituskykytilaan: cpupower-taajuus-set -g suorituskyky
HUOM
Suorittimen taajuusrajojen muutoksilla voi olla vaikutusta moniin työkuormiin ja ne voivat poistaa käytöstä muita ominaisuuksia, kuten suorittimen turbotilan.
Voit poistaa suorittimen taajuuden skaalauksen käytöstä poistamalla prosessorin tehopalvelun käytöstä seuraavilla komennoilla:
systemctl stop cpupower.service
systemctl poista cpupower.service käytöstä
5.2.4 Virranhallinnan lisäohjeet
Lisätietoja on tässä korkean tason julkaisussaview monista 3. sukupolven Intel® Xeon® Scalable -prosessorien virranhallintaominaisuuksista sekä ohjeet näiden ominaisuuksien integroimiseen alustatasolla: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Intel® Turbo Boost tekee prosessorista nopeamman tarvittaessa, mutta voi kuluttaa enemmän virtaa. Turbo Boostin sammuttaminen pitää prosessorin tasaisena, mikä antaa tasaisen suoritustason tietyille työkuormille.
5.4 Palomuurit
Palomuurit voivat vaikuttaa suorituskykyyn, erityisesti viiveen.
Poista iptables/palomuuri käytöstä, jos sitä ei vaadita.
5.5 Sovellusasetukset
Usein yksi säie (joka vastaa yhtä verkkojonoa) ei riitä maksimikaistanleveyden saavuttamiseen. Jotkut alustaarkkitehtuurit, kuten AMD, yleensä pudottavat enemmän Rx-paketteja yhdellä säikeellä verrattuna alustoihin, joissa on Intel-pohjaiset prosessorit.
Harkitse työkalujen, kuten taskset tai numactl, käyttöä kiinnittääksesi sovelluksia NUMA-solmuun tai CPU-ytimiin paikallisesti verkkolaitteeseen. Joissakin työkuormissa, kuten tallennus-I/O:ssa, sovelluksen siirtäminen muuhun kuin paikalliseen solmuun on hyödyllinen.
Kokeile lisätäksesi sovelluksesi käyttämien säikeiden määrää, jos mahdollista.
5.6 Ytimen versio
Useimmat nykyaikaiset paketissa olevat ytimet ovat kohtuullisen hyvin optimoituja suorituskykyä varten, mutta käyttötapauksestasi riippuen ytimen päivittäminen saattaa parantaa suorituskykyä. Lähteen lataaminen mahdollistaa myös tiettyjen ominaisuuksien käyttöönoton/poistamisen ennen ytimen rakentamista.
5.7 Käyttöjärjestelmän/ytimen asetukset
Tutustu käyttöjärjestelmän viritysoppaisiin, kuten Red Hat Enterprise Linux Network Performance Tuning Guide -oppaaseen, saadaksesi lisätietoja yleisestä käyttöjärjestelmän virityksestä.
Seuraavassa taulukossa on lueteltu joitakin yleisiä viritettävät parametrit. Huomaa, että nämä ovat vain ehdotettuja lähtökohtia, ja niiden muuttaminen oletusasetuksista saattaa lisätä järjestelmän käyttämiä resursseja. Vaikka arvojen kasvattaminen voi parantaa suorituskykyä, on välttämätöntä kokeilla erilaisia arvoja määrittääkseen, mikä toimii parhaiten tietylle järjestelmälle, työmäärälle ja liikennetyypille.
Ytimen parametrit voidaan määrittää käyttämällä sysctl-apuohjelmaa Linuxissa alla kuvatulla tavalla.
Vastaanottaja view rmem- ja wmem-oletusarvot järjestelmässä:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
Aseta arvoiksi max (16 Mt):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Socket-puskurin koot, jotka tunnetaan myös nimellä vastaanottopuskuri (rmem) ja lähetyspuskuri (wmem), ovat järjestelmäparametreja, jotka määrittävät saapuvalle ja lähtevälle verkkoliikenteelle varatun muistin määrän.
Sysctl:n suorittaminen ilman -w-argumenttia listaa parametrin nykyisellä asetuksellaan.
Pinoasetus | Kuvaus |
net.core.rmem_default | Vastaanottoikkunan oletuskoko |
net.core.wmem_default | Oletuslähetysikkunan koko |
net.core.rmem_max | Vastaanottoikkunan enimmäiskoko |
net.core.wmem_max | Suurin lähetysikkunan koko |
net.core.optmem_max | Vaihtoehtomuistipuskurien enimmäismäärä |
net.core.netdev_max_backlog | Käsittelemättömien pakettien ruuhka ennen kuin ydin alkaa pudota |
net.ipv4.tcp_rmem | Muistinvaraaja TCP-lukupuskureille |
net.ipv4.tcp_wmem | Muistinvaraaja TCP-lähetyspuskureille |
Ydin, verkkopino, muistikäsittelijä, suorittimen nopeus ja virranhallintaparametrit voivat vaikuttaa suuresti verkon suorituskykyyn. Yleinen suositus on soveltaa verkon läpimenokykyä profile käyttämällä viritettyä komentoa. Tämä muuttaa joitakin käyttöjärjestelmän asetuksia antaakseen etusijalle verkkosovellukset.
Tarkista:
viritetty-adm aktiivinen
Sarja:
tuned-adm profile verkon läpimenokyky
5.8 Verkkolaitteiden ruuhka
Tämä ominaisuus auttaa parantamaan verkon suorituskykyä hallitsemalla saapuvaa liikennettä tehokkaasti, vähentämällä pakettihäviöitä, alentamalla latenssia ja lisäämällä suorituskykyä. Tämä johtaa parempaan käyttökokemukseen ja nopeampaan järjestelmän reagointiin.
Oletuksena se on käytössä useimmissa Linux-käyttöjärjestelmissä. Voit tarkistaa oletusarvon seuraavasti:
sysctl net.core.netdev_max_backlog
Netdev_max_backlogin enimmäisarvo voi vaihdella tekijöiden, kuten ytimen version, laitteiston, muistin ja työmäärän mukaan. Monissa tapauksissa 8192:ta pidetään hyvänä arvona. sysctl -w net.core.netdev_max_backlog=8192
5.9 Alustakohtaiset määritykset ja viritys
5.9.1 Neljännen sukupolven Intel® Xeon® skaalautuvat prosessorit
Intel® 4th Generation Intel® Xeon® Scalable -prosessorin virranhallinta on erittäin aggressiivista verrattuna 3rd Generation Intel® Xeon® Scalable -prosessoreihin. Jotta ytimet eivät joutuisi vähätehoisiin tiloihin, yritä vähentää käytössä olevien ytimien määrää, jotta ne pysyvät hereillä pidempään.
Suositellut Bios-asetukset parhaan suorituskyvyn saavuttamiseksi
- Hyper-säikeen käyttöönotto/poistaminen käytöstä (työkuormitusvaatimuksen ja suorituskykytavoitteiden perusteella) prosessorissa.
- Aseta järjestelmä profile suorituskykyyn maksimaalisen suorituskyvyn saavuttamiseksi.
HUOM
Tämä johtaa korkeampaan virrankulutukseen - Aseta suorittimen virranhallinnan asetukseksi Maximum Performance priorisoidaksesi maksimaalisen suorittimen suorituskyvyn virrantehokkuuden sijaan.
- Ota Turbo Boost käyttöön. Turbo Boostin poistaminen käytöstä järjestelmän BIOS-asetuksista estää yleensä prosessoria lisäämästä kellonopeuttaan dynaamisesti perustaajuuden yli.
- HUOM
Turbo Boostin poistaminen käytöstä voi sopia tiettyihin käyttötapauksiin, joissa tasainen suorituskyky, virrantehokkuus tai lämmönhallinta ovat etusijalla maksimaalisen suorituskyvyn edelle. - Poista yhden juuren I/O-virtualisointi (SR-IOV) -ominaisuus käytöstä, jos järjestelmä ei käytä virtualisointitekniikoita.
- Poista C-tilat käytöstä ohjeistaaksesi CPU:ta pysymään aktiivisena ja estämään siirtymisen syvemmälle lepotilaan.
- Poista C1E käytöstä varmistaaksesi, että CPU pysyy aktiivisena eikä siirry C1E:n lepotilaan.
- Aseta epäydintaajuus maksimiarvoon ohjataksesi järjestelmää toimimaan korkeimmalla käytettävissä olevalla taajuudella.
- Aseta Dell-alustoissa Multiple APIC Description Table (MADT) -ydinemulaatioksi Linear (tai Round-Robin BIOS:ista riippuen), jotta suoritinytimien kartoitus on selkeä ja ennustettava.
Suositellut käyttöjärjestelmän tason viritykset optimoitua suorituskykyä varten
- Aseta suorittimen taajuuden skaalaussäädin suorituskykyyn. cpupower-taajuus-set -g-suorituskyky cpupower-taajuus-info
- Poista C-States käytöstä. cpupower idle-set -D0
- Aseta ydin Rx (rmem) ja Tx (wmem) puskurit maksimiarvoon. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
- Aseta verkkolaitteiden ruuhka. sysctl -w net.core.netdev_max_backlog=8192
- Aseta viritetty profile (työkuorma riippuu suorituskyvystä/viiveestä).
tuned-adm profile verkon läpimenokyky
Suositellut sovittimen tason viritykset optimoitua suorituskykyä varten
- Rajoita sovellusliikenteeseen käytettävien jonojen määrää. Käytä jonojen vähimmäismäärää, joka tarvitaan pitämään liittyvät CPU-ytimet aktiivisina, jotta ne eivät pääse syvemmälle lepotilaan (säädä työkuormituksen mukaan): ethtool -L yhdistetty 32
- Aseta keskeytysvalvontasuhteet. ethool -C adaptive-rx off adaptive-tx off rx-usecs-high 50 rx-usecs 50 tx-usecs 50
Yritä säätää lähetys/vastaanotto/korkean prioriteetin yhdistämisajastinta suuremmaksi (80/100/150/200) tai pienemmäksi (25/20/10/5) löytääksesi optimaalisen arvon työkuormitukselle. - Aseta Rx/Tx rengaskoot. ethool -G rx 4096 tx 4096
HUOM
Jos näet Rx-paketin putoaa ethtoolilla -S| grep drop, yritä pienentää renkaan kokoa <4096:een. Yritä löytää optimaalinen arvo työmäärälle, jossa paketteja ei pudoteta. - Aseta IRQ Affinity. Käytä paikallisia ytimiä verkkokortille tai tiettyä ydinkartoitusta (jossa # ydintä on yhtä suuri kuin jonojen määrä, joka on asetettu kohdassa 1 sivulla 26. systemctl stop irqbalance set_irq_affinity -X local TAI set_irq_affinity -X
5.9.2 AMD EPYC
AMD EPYC-prosessorit ovat tehokkaita suorittimia, jotka on tehty palvelimille ja datakeskuksille ja jotka on rakennettu AMD:n Zen-arkkitehtuuriin. Alla olevat asetukset ovat AMD:n 4. sukupolven EPYC-sarjasta.
Suositellut BIOS-asetukset parhaan suorituskyvyn saavuttamiseksi
- Ota mukautettu tila käyttöön, jotta käyttäjät voivat säätää suorittimen suorituskykyä, virrankulutusta ja muita asetuksia. Tämä auttaa hienosäätämään järjestelmää parhaan tasapainon saavuttamiseksi suorituskyvyn ja energiatehokkuuden välillä.
- Ota ydinsuorituskyvyn tehostus käyttöön, jotta prosessori voi automaattisesti lisätä nopeuttaan hoitaakseen intensiivisempiä tehtäviä, mikä parantaa yleistä suorituskykyä.
- Poista globaali C-tilan ohjaus käytöstä estääksesi prosessoria siirtymästä syvempään virransäästötilaan, joka tunnetaan nimellä C-tila, joka voi ylläpitää reagointikykyä.
HUOM
C-tilojen poistaminen käytöstä voi aiheuttaa lisävirrankulutusta ja nostaa lämpölämpötiloja. Tarkkaile molempia työmäärän suhteen. - Ota käyttöön/poista käytöstä samanaikainen monisäikeistys (SMT) suorittimessa työkuormitusvaatimuksen ja suorituskykytavoitteiden perusteella. SMT vastaa Hyper Threadingiä Intel-suorittimissa.
HUOM
Katso kohdasta i40e-ohjainasetusten viritys (sivu 13) ja alustan viritys (ei-spesifinen i40e) sivulla 19 suositeltua käyttöjärjestelmän ja sovittimen tason viritystä varten.
Adapterin liimaus
Linux-sidos on tehokas ominaisuus, joka voi parantaa merkittävästi verkon suorituskykyä, redundanssia ja vikasietoisuutta palvelinympäristöissä. On kuitenkin tärkeää huomata, että se vaatii yhteensopivan verkkolaitteiston ja oikean konfiguroinnin sekä palvelimessa että kytkimessä toimiakseen kunnolla.
Linuxin sidosohjain mahdollistaa useiden fyysisten verkkoliitäntöjen yhdistämisen yhdistetyksi rajapinnaksi. Tämä sidottu liitäntä näkyy yhtenä virtuaalisena verkkoliittymänä käyttöjärjestelmälle ja sovelluksille.
HUOM
Bond on looginen rajapinta, joten prosessorin affiniteettia ei ole mahdollista asettaa suoraan bond-rajapinnalle (esim.ample, bond0). Toisin sanoen sillä ei ole suoraa hallintaa keskeytyksen käsittelyyn tai suorittimen affiniteettiin. Suorittimen affiniteetti on määritettävä taustalla oleville liitännäille, jotka ovat osa sidosta.
Liimaus tarjoaa useita toimintatapoja, joista jokaisella on omat ominaisuutensa.
tila | Tyyppi |
0 | Round Robin |
1 | Aktiivinen varmuuskopiointi |
2 | XOR |
3 | Lähettää |
4 | LACP |
5 | Lähetä kuormitustaso |
6 | Mukautuva kuormitustaso |
On olemassa erilaisia tapoja luoda sidos Linuxissa. Yksi yleisimmistä menetelmistä on käyttää verkkoasetuksia files (esimample, /etc/network/ interfaces tai /etc/sysconfig/network-scripts/ifcfg-bondX).
Määritys verkkomäärityksen avulla Files
Seuraavat vaiheet luovat sidoksen verkkokokoonpanon läpi files.
- Valitse kaksi tai useampi NIC-portti liittämistä varten (esimample, ethX ja ethY)
- Avaa NIC-asetukset Files hakemistossa /etc/sysconfig/network-scripts/ vaadittua NIC-liitäntää varten (esim.ample, vi ifcfg-ethX ja vi ifcfg-ethY) ja liitä seuraava teksti:
MASTER=bondN [Huomautus: N on kokonaisluku sidosnumeron mainitsemiseksi.] SLAVE=kyllä - Luo bond-verkkoskripti file komennolla vi /etc/sysconfig/networkscripts/ifcfg-bondN ja kirjoita seuraava teksti:
DEVICE=bondN [Huomautus: N on kokonaisluku sidosnumeron mainitsemiseksi] ONBOOT=yes USERCTL=ei BOOTPROTO=dhcp (tai) ei mitään
IPADDR=200.20.2.4 [pakollinen, jos BOOTPROTO=ei mitään] NETMASK=255.255.255.0 [pakollinen, jos BOOTPROTO=ei mitään] NETWORK=200.20.2.0 [pakollinen, jos BOOTPROTO=ei mitään] [Vaaditaan, jos BOOTPROTO=ei mitään] BROADCAST200.20.2.255quired1AST=100quiredXNUMX. BOOTPROTO=ei mitään] BONDING_OPTS=”mode=XNUMX miimon=XNUMX″
HUOM
Tila voi olla mikä tahansa kokonaisluku väliltä 0 - 6 vaatimuksen mukaan. - Käynnistä verkkopalvelut uudelleen käyttämällä palvelua Network Restar tai systemctl restart NetworkManager.service
Suorituskyvyn vianmääritys
7.1 Suorittimen käyttö
Tarkista suorittimen käyttö ydintä kohti, kun työkuorma on käynnissä.
Huomaa, että käyttö ydintä kohden on suorituskyvyn kannalta merkityksellisempi kuin suorittimen kokonaiskäyttö, koska se antaa käsityksen suorittimen käytöstä verkkojonoa kohti. Jos verkkoliikennettä ohjaa vain muutama säike, käytössäsi saattaa olla vain muutama ydin. Jos nämä ytimet ovat kuitenkin 100 %:ssa, verkkosi suorituskykyä todennäköisesti rajoittaa suorittimen käyttö, ja on aika suorittaa seuraavat toimet:
- Säädä IRQ:n moderointia/renkaan kokoa Keskeytysvalvonta-osiossa kuvatulla tavalla.
- Lisää sovellussäikeiden määrää jakaaksesi suorittimen kuormituksen useammalle ytimelle. Jos kaikki ytimet toimivat 100 %:lla, sovelluksesi saattaa olla CPU-sidottu verkkoon sidottun sijaan.
Yleisesti saatavilla olevat työkalut:
- alkuun
— Paina 1 laajentaaksesi prosessorien luetteloa ja tarkista, mitkä niistä ovat käytössä.
— Huomaa käyttöaste.
— Huomaa, mitkä prosessit on lueteltu aktiivisimmiksi (luettelon yläosassa). - mpstat
Seuraava example-komentorivi testattiin Red Hat Enterprise Linux 7.x:ssä.
Se näyttää suorittimen käyttöasteen ydintä kohden (etsimällä tyhjäkäynnin kokonaisprosentin ja vähentämällä 100:sta) ja korostaa yli 80 %:n arvot punaisella. mpstat -P KAIKKI 1 1 | grep -v Keskimääräinen | häntä -n +5 | pää -n -1 | awk '{ print (100-$13)}' | egrep -color=aina '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | sarakkeessa - perf top Etsi, missä syklit vietät.
7.2 i40e laskurit
i40e-ohjain tarjoaa pitkän luettelon laskureista käyttöliittymän virheenkorjausta ja valvontaa varten komennon ethtool -S ethX kautta. Voi olla hyödyllistä katsoa tulostetta työkuorman ollessa käynnissä ja/tai vertailla laskurin arvoja ennen ja jälkeen työkuorman ajon.
- Saadaksesi täyden kaatopaikan i40e-laskurit: ethtool -S ethX
- Katsoaksesi vain nollasta poikkeavia laskureita: watch -d (ethtool -S ethX) | egrep -v :\ 0 | sarakkeessa
Joitakin asioita, joita kannattaa etsiä: - rx_dropped tarkoittaa, että CPU ei huolta puskureita tarpeeksi nopeasti.
- port.rx_dropped tarkoittaa, että jokin ei ole tarpeeksi nopea paikkassa/muistissa/järjestelmässä.
7.3 Verkkolaskurit
Tarkista netstat -s ennen/jälkeen työkuormituksen.
Netstat kerää verkkotiedot kaikista järjestelmän verkkolaitteista. Tästä syystä muut verkot kuin testattava verkko voivat vaikuttaa tuloksiin. Netstat -s:n tulos voi olla hyvä indikaattori Linux-käyttöjärjestelmän tai ytimen suorituskykyongelmista. Tutustu käyttöjärjestelmän viritysoppaisiin, kuten Red Hat Enterprise Linux Network Performance Tuning Guide -oppaaseen, saadaksesi lisätietoja yleisestä käyttöjärjestelmän virityksestä.
7.4 Järjestelmälokit
Tarkista järjestelmän lokeista virheitä ja varoituksia (/var/log/messages, dmesg).
7.5 Intel svr-info -työkalu
Intel tarjoaa svr-info-työkalun (katso https://github.com/intel/svr-info) Linuxille, joka tallentaa asiaankuuluvat laitteisto- ja ohjelmistotiedot palvelimelta. svr-info-tulostus voi olla erittäin hyödyllinen tunnistamaan järjestelmän pullonkaulat tai asetukset/viritykset, joita ei ole optimoitu työmäärää varten. Kun avaat Intelin tukikotelon Ethernetiin liittyvien suorituskykyongelmien varalta, muista sisällyttää svr-info-lähtö (teksti file) jokaiselle testikokoonpanon Linux-palvelimelle.
- Lataa ja asenna svr-info:
wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
./svr-info
> isäntänimi.txt - Kerää tulos:
./svr-info > isäntänimi.txt - Liitä yksi teksti (.txt) file jokaisesta palvelimesta Intel-tukitapaukseen analysoitavaksi.
Yleisiä suorituskykyskenaarioita koskevia suosituksia
8.1 IP-välitys
- Päivitä ydin.
Jotkut viimeaikaiset distro-ytimet ovat heikentäneet reitityssuorituskykyä reitityskoodin ytimen muutosten vuoksi, alkaen reititysvälimuistin poistamisesta turvallisuuden vuoksi. Viimeaikaisissa jakelun ulkopuolisissa ytimissä pitäisi olla korjaustiedostoja, jotka vähentävät näiden muutosten suorituskykyä ja voivat parantaa suorituskykyä. - Poista hypersäikeistys (loogiset ytimet) käytöstä.
- Muokkaa ytimen käynnistysparametreja.
— Pakota iommu pois päältä (intel_iommu=off tai iommu=off) ytimen käynnistysriviltä, ellei virtualisointi vaadi sitä
— Kytke virranhallinta pois päältä: processor.max_cstates=1 idle=poll pcie_aspm=off - Rajoita jonojen lukumäärä vastaamaan paikallisen pistorasian ytimien määrää (12 tässä esim.ample). ethtool -L ethX yhdistetty 12
- Pin-keskeytykset vain paikalliseen pistorasiaan. set_irq_affinity -X paikallinen ethX TAI set_irq_affinity -X paikallinen ethX
HUOM
-X tai -x voidaan käyttää työmäärästä riippuen. - Muuta Tx- ja Rx-renkaiden kokoa tarpeen mukaan. Suurempi arvo vie enemmän resursseja, mutta voi tarjota paremmat välitysnopeudet. ethtool -G ethX rx 4096 tx 4096
- Poista GRO käytöstä reitittäessäsi.
Tunnetun ytimen ongelman vuoksi GRO on poistettava käytöstä reititettäessä/edelleenlähetettäessä. ethtool -K ethX gro off jossa ethX on muokattava Ethernet-liitäntä. - Poista mukautuva keskeytyksen moderointi käytöstä ja aseta staattinen arvo. ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64
HUOM
Prosessorin tyypistä ja työkuormasta riippuen RX:n ja TX:n yhdistämisparametreja voidaan säätää suorituskyvyn parantamiseksi (tai kehyshäviön vähentämiseksi).
- Poista palomuuri käytöstä. sudo systemctl poista palomuuri käytöstä sudo systemctl stop firewalld
- Ota IP-lähetys käyttöön. sysctl -w net.ipv4.ip_forward=1
- Määritä maksimiarvot vastaanotto- ja lähetyskantapuskurin kokoille. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
HUOM
Työmäärästä tai vaatimuksesta riippuen näitä arvoja voidaan muuttaa oletusarvoista.
8.2 Matala latenssi
- Kytke hypersäikeistys (loogiset ytimet) pois päältä.
- Varmista, että verkkolaite on paikallinen numa core 0:lle.
- Kiinnitä vertailuarvo ytimeen 0 käyttämällä tehtäväsarjaa -c 0.
- Poista irqbalance käytöstä painamalla systemctl stop irqbalance tai systemctl disable irqbalance
- Suorita affiniteettiskripti levittääksesi ytimiä. Kokeile joko paikallista tai kaikkia.
- Poista keskeytysvalvonta käytöstä. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- high 0
- Rajoita jonojen lukumääräksi yhtä suuri kuin paikallisen pistorasian ytimien lukumäärä (32 tässä esim.ample). ethtool -L ethX yhdistetty 32
- Pin-keskeytykset vain paikalliseen liitäntään (skripti on pakattu i40e-ohjainlähteeseen). set_irq_affinity -X paikallinen ethX
- Käytä vakiintunutta vertailuarvoa, kuten netperf -t TCP_RR, netperf -t UDP_RR tai NetPipe. netperf -t TCP_RR tai netperf -t UDP_RR
- Kiinnitä vertailuarvo yhteen ytimeen paikallisessa NUMA-solmussa. tehtäväsarja -c
Intel ® Ethernet 700 -sarja
Linux Performance Tuning Guide
joulukuuta 2024
Doc. Nro: 334019, Rev.: 1.2
Asiakirjat / Resurssit
![]() |
Intel Ethernet 700 Series Linux Performance Tuning [pdfKäyttöopas 334019, Ethernet 700 Series Linux Performance Tuning, Ethernet 700 Series, Linux Performance Tuning, Performance Tuning, Tuning |