Intel® Ethernet 700 Series
Sprievodca ladením výkonu systému Linux
NEX Cloud Networking Group (NCNG)
Rev. 1.2
decembra 2024
História revízií
Revízia | Dátum | Komentáre |
1.2 | decembra 2024 | · Pridané ďalšie usmernenia pre správu napájania. · Pridaný Intel* Turbo Boost. · Pridaný Backlog sieťového zariadenia. · Pridané konfigurácie a ladenie špecifické pre platformu. · Pridané 4. generácie škálovateľných procesorov Intel* %eon*. · Pridané AMD EPYC. · Aktualizované možnosti kontroly hardvéru systému. · Aktualizované iPerf2. · Aktualizované iPerf3. · Aktualizované fronty Tx/Rx. · Aktualizované moderovanie prerušení. · Aktualizovaná veľkosť prsteňa. · Aktualizované ladenie platformy (i40e nešpecifické). · Aktualizované nastavenia systému BIOS. · Aktualizovaná kontrola stavu C. · Aktualizované škálovanie frekvencie CPU. · Aktualizované nastavenia aplikácie. · Aktualizované nastavenia operačného systému/jadra. · Aktualizované presmerovanie IP. · Aktualizovaná nízka latencia. |
august 2023 | Zmeny v tomto dokumente zahŕňajú: · Pridané súvisiace referencie. · Pridané Uistite sa, že sa balík DDP načítava správne. · Pridané iPerf2. · Pridané iPerf3. · Pridaný netperf. · Aktualizovaná afinita IRQ. · Pridané Tx/Rx fronty. · Aktualizovaná veľkosť prsteňa. · Pridané Jumbo rámy. · Pridané lepenie adaptéra. · Pridaný nástroj Intel svr-info. |
|
1.0 | marec 2016 | Prvé vydanie (Intel Public). |
Úvod
Cieľom tejto príručky je poskytnúť návod na ladenie prostredí pre optimálny výkon siete pomocou sieťových kariet Intel® Ethernet 700 Series v prostrediach Linux. Zameriava sa na stav a nastavenia hardvéru, ovládačov a operačného systému, ktoré môžu zlepšiť výkon siete. Je potrebné poznamenať, že výkon siete môže byť ovplyvnený ľubovoľným počtom vonkajších vplyvov, pričom v tejto príručke sú uvedené len tie najbežnejšie a najdramatickejšie z nich.
1.1 Súvisiace odkazy
- Používateľská príručka pre všetky ethernetové adaptéry a zariadenia Intel® s podporou systémov Windows a Linux:
Používateľská príručka k adaptérom a zariadeniam Intel® Ethernet - Technický list:
Technický list Intel ® Ethernet Controller X710/XXV710/XL710 - Kompletný balík SW pre všetky produkty Intel ® Ethernet (stiahnite si všetky ovládače, NVM, nástroje atď.):
Kompletný balík ovládačov Intel ® Ethernet Adapter - Aktualizačný balík NVM (Non-Volatile Memory):
Pomôcka na aktualizáciu non-volatile Memory (NVM) pre sieťový adaptér Intel ® Ethernet Network Adapter 700 Series - svr-info nástroj pre Linux, ktorý zachytáva relevantné hardvérové a softvérové detaily zo servera: https://github.com/intel/svr-info
- Sprievodca technológiou DDP:
Príručka technológie Intel ® Ethernet 700 Series Dynamic Device Personalization (DDP).
Počiatočný kontrolný zoznam
2.1 Aktualizujte verzie ovládača/firmvéru
Skontrolujte verzie ovládača/firmvéru pomocou ethtool -i ethx.
Podľa potreby aktualizujte nasledovné:
- Aktualizujte ovládač i40e
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 - Aktualizujte firmvér
https: //downloadcenter.intel.com/download/24769/NVM-Update-Utility-for-Intel- Ethernet-ConvergedNetwork-Adapter-XL710-X710-Series
2.2 Prečítajte si README
Skontrolujte známe problémy a získajte najnovšie konfiguračné pokyny zo súboru README file zahrnuté v zdrojovom balíku i40e.
2.3 Skontrolujte, či je váš slot PCI Express (PCIe) x8
Niektoré sloty PCIe x8 sú v skutočnosti nakonfigurované ako sloty x4. Tieto sloty majú nedostatočnú šírku pásma pre plnú rýchlosť linky so zariadeniami s duálnym a štvorportovým portom. Okrem toho, ak vložíte adaptér s podporou PCIe v3.0 do slotu PCIe v2.x, nemôžete získať plnú šírku pásma. Softvérový ovládač zariadenia zistí túto situáciu a zapíše nasledujúcu správu do systémového denníka:
Šírka pásma PCI-Express dostupná pre túto kartu nie je dostatočná na optimálny výkon. Pre optimálny výkon je potrebný x8 PCI-Express slot.
Ak sa vyskytne táto chyba, presuňte adaptér do skutočného slotu PCIe v3.0 x8, aby ste problém vyriešili.
2.4 Skontrolujte možnosti hardvéru systému
Pri 10 Gbps, 25 Gbps a 40 Gbps Ethernet existujú určité minimálne požiadavky na CPU a systém. Vo všeobecnosti by mal postačovať moderný procesor triedy servera a optimálna konfigurácia pamäte pre vašu platformu, ale potreby sa líšia v závislosti od vášho pracovného zaťaženia. Všetky pamäťové kanály by mali byť vyplnené a v systéme BIOS by mal byť povolený režim výkonu pamäte. Overte si, či vaša konfigurácia CPU a pamäte dokáže podporovať úroveň výkonu siete, ktorú požadujete pre svoje pracovné zaťaženie.
POZNÁMKA
XL710 je 40 GbE radič. Adaptér 2 x 40 GbE využívajúci tento radič nie je určený ako 2 x 40 GbE, ale 1 x 40 GbE s aktívnym záložným portom. Keď sa pokúšate použiť linkovú prevádzku zahŕňajúcu oba porty, interný prepínač je nasýtený a kombinovaná šírka pásma medzi týmito dvoma portami je obmedzená na celkovo SO Gbps.
2.4.1 Parametre zavádzania jadra
Ak je v systéme BIOS povolená technológia Intel® Virtualization Technology for Directed I/O (Intel® VT-d), spoločnosť Intel odporúča, aby bola IOMMU v režime pass-through pre optimálny výkon hostiteľskej siete. To eliminuje réžiu DMA pri prevádzke hostiteľa a zároveň umožňuje virtuálnym počítačom (VM) využívať výhody Intel® VT-d. To sa dosiahne pridaním nasledujúceho riadku k parametrom zavádzania jadra: fommu-pt.
2.5 Uistite sa, že sa balík DDP načítava správne
Základné ovládače 140ea a 140eb nemajú priamu podporu pre dynamickú personalizáciu zariadení (DDP). Na používanie DDP so zariadeniami radu 700 je potrebný profesionálny ovládač DDP.file možno použiť pomocou aplikácie testpmd.
Podrobnosti o DDP profiles a ako uplatniť DDP profile s testpmd na zariadeniach radu 700 nájdete v technologickej príručke Intel® Ethernet 700 Series Dynamic Device Personalization (DDP).
Ak chcete overiť, či je profesionál DDPfile bolo úspešne načítané:
testpmd> ddp získať zoznam 0 Profile číslo je: 1
POZNÁMKA
Ak profíkfile číslo je 0, nenačíta sa žiadny balík DDP. V prípade chyby načítania balíka DDP sa zariadenie predvolene prepne do núdzového režimu a mnohé funkcie výkonu sú nedostupné. Ak sa vyskytnú chyby súvisiace s načítaním balíka DDP, spôsobí to problémy s výkonom. Kroky na riešenie problémov nájdete v Inte/* Ethernet 700 Series Dynamic Device Personalization (DDP) Technology Guide.
Základné merania výkonu a metodika ladenia
3.1 Referenčné hodnoty výkonu siete
Pred začatím ladenia je dôležité mať dobré základné meranie výkonu vašej siete. Zvyčajne je dobré okrem počiatočného merania výkonu vašej konkrétnej aplikácie/pracovného zaťaženia použiť aj štandardný benchmark výkonu siete na overenie, či je vaše sieťové zariadenie v dobrom stave.
Na optimalizáciu jedného systému sú netperf alebo iperf a NetPIPE solídne opensource bezplatné nástroje, ktoré vám umožňujú zdôrazniť pripojenie a diagnostikovať problémy s výkonom.
Netperf je silný na testovanie priepustnosti aj latencie. NetPIPE je nástroj špecifický pre latenciu, ale dá sa skompilovať pre akýkoľvek druh prostredia.
POZNÁMKA
Test TCP_RR v netperf vracia latenciu v hodnote transakcií/s. Toto je číslo pre spiatočnú cestu. Jednosmernú latenciu možno vypočítať pomocou nasledujúcej rovnice:
Latencia (použitie) = (1⁄2) / [Transakcie/s] * 1,000,000 XNUMX XNUMX
3.1.1 iPerf2
Intel odporúča iperf2 oproti iperf3 pre väčšinu benchmarkovacích situácií kvôli jednoduchému použitiu a podpore viacerých vlákien v jednej inštancii aplikácie. Spoločnosť Intel odporúča bežať s možnosťou -P s 2-4 vláknami pre pripojenia 25G a približne 4-6 vláknami pre pripojenia 40G.
- Ak chcete spustiť jednosmernú komunikáciu z klienta na server: Príkaz servera naprample: iperf2 -s
Klientsky príkaz naprample: iperf2 -c -P - Ak chcete spustiť obojsmernú komunikáciu z klienta na server (a naopak): Príkaz servera naprample: iperf2 –s –p
Klientsky príkaz naprample:
iperf2 -c -p -P --full-duplex ALEBO
iperf2 -c -p -P –d
POZNÁMKA
Obe možnosti –full-duplex a -d v iperf2 umožňujú užívateľovi vykonávať obojsmerné testovanie. Možnosť –full-duplex sa však špecificky zameriava na testovanie plného duplexu.
POZNÁMKA
Pri testovaní iperf2 na viacerých serverových portoch je možné k príkazu server pridať príznak -d, aby sa všetky serverové relácie spúšťali na pozadí z toho istého okna terminálu. Príznak -d je možné použiť aj vtedy, keď je príkaz server vložený do cyklu for v skripte.
POZNÁMKA
Pri spustení testu priepustnosti siete s jedným streamom/vláknom (naprample: P1), procesory AMD nemusia poskytovať očakávanú priepustnosť, najmä sieťové karty s vyššou šírkou pásma (ak je rýchlosť >= šírka pásma 25G). Výsledkom je, že na dosiahnutie vyššej priepustnosti je potrebné pripájanie aplikácií na konkrétne jadrá. Pozrite si časť Nastavenia aplikácie na strane 22.
3.1.2 iPerf3
Ak sa použije iperf3, vyžaduje sa viac inštancií aplikácie na vykonanie postuputage z viacvláknových, RSS a hardvérových frontov. Intel odporúča spustiť s 2-4 reláciami aplikácie pre 25G pripojenia a približne 4-6 reláciami pre 40G pripojenia. Každá relácia by mala špecifikovať jedinečnú hodnotu TCP portu pomocou voľby -p.
- Ak chcete spustiť jednosmernú prevádzku z klienta na server:
Príkaz servera naprample:
iperf3 -s -p
Klientsky príkaz naprample:
iperf3 -c -p - Ak chcete spustiť obojsmernú prevádzku z klienta na server (a naopak):
Príkaz servera naprample:
iperf3 –s –p
Klientsky príkaz naprample: iperf3 -c -p -P –-bidir - Na spustenie viacerých inštancií (vlákien) iperf3 sa odporúča použiť for-loop na mapovanie vlákien na porty TCP a spustiť iperf3 na pozadí pomocou & na vytvorenie viacerých procesov paralelne.
Príkaz servera naprample, začnite 4 vlákna: port=””; pre i v {0..3}; do port=520$i; bash -c “iperf3 -s -p $port &”; hotovo; Klientsky príkaz naprample, spustiť 4 vlákna – Preniesť testovací port=””; pre i v {0..3}; do port=520$i; bash -c “iperf3 -c $serverIP -p $port &”; hotovo; Klientsky príkaz naprample, spustiť 4 vlákna – Prijať testovací port=””; pre i v {0..3}; do port=520$i; bash -c “iperf3 -R -c $serverIP -p $port &”; hotovo; Pre 40G pripojenia zväčšite for-loop a vytvorte až 6 inštancií/vlákien.
POZNÁMKA
Pri spustení testu priepustnosti siete s jedným streamom/vláknom (naprample: P1), procesory AMD nemusia poskytovať očakávanú priepustnosť, najmä vyššiu šírku pásma
NIC (ak je rýchlosť >= šírka pásma 25G). Výsledkom je, že na dosiahnutie vyššej priepustnosti je potrebné pripájanie aplikácií na konkrétne jadrá. Pozrite si časť Nastavenia aplikácie na strane 22 a AMD EPYC na strane 26.
3.1.3 netperf
Nástroj netperf je silnou voľbou pre testovanie priepustnosti aj latencie.
- Test TCP_STREAM v netperf meria priepustnosť zariadenia. Príkaz servera naprample: netserver Klientsky príkaz naprample: netperf -t TCP_STREAM -l 30 -H
- Test TCP_RR v netperf vracia latenciu v hodnote transakcií za sekundu. Toto je číslo pre spiatočnú cestu. Odporúča sa použiť voľbu -T x,x, kde x je CPU lokálne pre zariadenie. Jednosmernú latenciu možno vypočítať pomocou: Latencia(použitie)=(1⁄2)/ [Transakcie/s]*1,000 XNUMX,\ Príkaz servera napr.ample: sieťový server
Klientsky príkaz naprample: netperf -t TCP_RR -l 30 -H -T x, x - Na spustenie viacerých inštancií (vlákien) netperf sa odporúča použiť for-loop na mapovanie vlákien na porty TCP a spustiť netperf na pozadí pomocou & na vytvorenie viacerých procesov paralelne.
Príkaz servera naprample, začnite 8 vlákna:
port=””; pre i v {0..7}; do port=520$i; bash -c “netserver -L $serverIP -p $port &”; hotovo;
Klientsky príkaz naprample, začne 8 vlákien: port=””; pre i v {0..7}; do port=520$i; bash -c “netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &”; hotovo;
3.2 Metodika ladenia
Zamerajte sa na jednu zmenu ladenia naraz, aby ste vedeli, aký vplyv má každá zmena na váš test. Čím metodickejší budete v procese ladenia, tým ľahšie bude identifikovať a riešiť príčiny úzkych miest výkonu.
Ladenie nastavení ovládača i40e
4.1 Afinita IRQ
Konfigurácia afinity IRQ tak, aby prerušenia pre rôzne sieťové fronty boli spojené s rôznymi jadrami CPU, môže mať obrovský vplyv na výkon, najmä na testy priepustnosti viacerých vlákien.
Ak chcete nakonfigurovať afinitu IRQ, zastavte irqbalance a potom buď použite skript set_irq_affinity zo zdrojového balíka i40e, alebo manuálne pripnite fronty. Zakázať vyrovnávač IRQ používateľského priestoru, aby ste povolili pripnutie do frontu:
- systemctl vypnúť irqbalance
- systemctl stop irqbalance
Použitie skriptu set_irq_affinity zo zdrojového balíka i40e (odporúča sa): - Ak chcete použiť všetky jadrá:
[path-to-i40epackage]/scripts/set_irq_affinity -X all ethX - Ak chcete použiť iba jadrá na lokálnom sokete NUMA: [cesta k balíku i40epackage]/scripts/set_irq_affinity -X local ethX
- Môžete si tiež vybrať rad jadier. Vyhnite sa používaniu cpu0, pretože spúšťa úlohy časovača. [path-to-i40epackage]/scripts/set_irq_affinity 1-2 ethX
POZNÁMKA
Skript afinity umožňuje riadenie prenosu paketov (XPS) ako súčasť procesu pripínania, keď je zadaná voľba -x. Keď je zapnuté XPS, Intel odporúča, aby ste zakázali irqbalance, pretože kernel balancer s XPS môže spôsobiť nepredvídateľný výkon. Skript afinity zakáže XPS, keď je zadaná možnosť -X. Zakázanie XPS a povolenie symetrických frontov je výhodné pre pracovné zaťaženia, kde sa najlepší výkon dosiahne, keď sa prevádzka Tx a Rx obsluhuje na rovnakých pároch frontov.
Konfigurácia symetrických frontov v Linuxe zahŕňa ladenie parametrov ovládača sieťového rozhrania, aby sa umožnili symetrické prijímacie fronty (Rx) a symetrické vysielacie fronty (Tx) pre podporované sieťové adaptéry.
POZNÁMKA
- Symetrické fronty sú pokročilou sieťovou funkciou a nie všetky sieťové adaptéry alebo ovládače série 700 ich podporujú.
- Pred pokusom o konfiguráciu symetrických frontov sa uistite, že máte potrebný ovládač a hardvérovú podporu.
Ak chcete nakonfigurovať symetrické fronty, postupujte podľa týchto všeobecných krokov:
- Upravte konfiguráciu sieťového rozhrania File: Použite textový editor (naprample, vi, nano alebo gedit) na úpravu konfigurácie sieťového rozhrania file. The file sa zvyčajne nachádza v adresári /etc/sysconfig/network-scripts/ a má názov ako ifcfg-ethX, kde ethX je názov vášho sieťového rozhrania.
- Pridajte parametre symetrického frontu. Pridajte nasledujúce riadky do konfigurácie sieťového rozhrania file: ETHTOOL_OPTS=”rx-fronty 8 TX-fronty 8″
- Reštartujte sieťovú službu.
Po vykonaní zmien reštartujte sieťovú službu, aby ste použili novú konfiguráciu. sudo systemctl reštart siete
Manuálne:
-
Nájdite procesory pripojené ku každému uzlu pomocou: numactl –hardware lscpu
-
Nájdite bitové masky pre každý z procesorov:
- Za predpokladu jadier 0-11 pre uzol 0: [1,2,4,8,10,20,40,80,100,200,400,800]
- Nájdite IRQ priradené k priraďovanému portu: grep ethX /proc/interrupts a poznačte si hodnoty IRQ napr.ample, 181-192 pre 12 zavedených vektorov.
- Opakujte hodnotu afinity SMP do zodpovedajúcej položky IRQ. Všimnite si, že to je potrebné urobiť pre každú položku IRQ: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity Zobraziť afinitu IRQ:
- Ak chcete zobraziť afinitu IRQ pre všetky jadrá: /scripts/set_irq_affinity -s ethX
- Ak chcete zobraziť iba jadrá na lokálnom soketu NUMA: /scripts/set_irq_affinity -s local ethX
- Môžete si tiež vybrať rad jadier: /scripts/set_irq_affinity -s 40-0-8,16 ethX
POZNÁMKA
Skript set_irq_affinity podporuje príznak -s vo verzii ovládača i40e 2.16.11 a novšej.
4.2 Fronty Tx/Rx
Predvolený počet frontov povolených pre každý ethernetový port ovládačom pri inicializácii sa rovná celkovému počtu CPU dostupných na platforme. Funguje to dobre pre mnohé platformy a konfigurácie pracovného zaťaženia. Avšak na platformách s vysokým počtom jadier a/alebo vysokou hustotou ethernetových portov môže táto konfigurácia spôsobiť spor o zdroje. Preto môže byť v niektorých prípadoch potrebné upraviť predvolené nastavenie pre každý port v systéme.
Predvolený počet frontov Tx/Rx sa môže líšiť v závislosti od konkrétneho modelu a verzie ovládača. Počet front je možné upraviť pomocou príkazu ethtool -L uvedeného nižšie.
POZNÁMKA
V týchto prípadoch spoločnosť Intel odporúča znížiť predvolený počet frontov pre každý port na maximálne počet CPU dostupných v uzle NUMA lokálneho pre port adaptéra. V niektorých prípadoch, keď sa pokúšate vyvážiť prostriedky na implementáciách s vysokým počtom portov, môže byť potrebné tento počet ešte viac znížiť.
Ak chcete upraviť konfiguráciu frontu:
Nasledujúce example nastaví port na 32 Tx/Rx front: ethtool -L ethX kombinované 32
Exampvýstup:
ethtool -l ethX
Parametre kanála pre ethX: Prednastavené maximá:
RX: 96
TX: 96
Iné: 1 XNUMX
Spolu: 96
Aktuálne nastavenia hardvéru:
RX: 0
TX: 0
Iné: 1 XNUMX
Spolu: 32
4.3 Moderovanie prerušení
Adaptívne moderovanie prerušení je predvolene zapnuté a je navrhnuté tak, aby poskytovalo vyvážený prístup medzi nízkym využitím CPU a vysokým výkonom. Môžete však skúsiť vyladiť nastavenia prerušení manuálne, aby vyhovovali vášmu prípadu použitia.
Rozsah 0-235 mikrosekúnd poskytuje efektívny rozsah 4,310 250,000 až 2 XNUMX prerušení za sekundu. Hodnotu rx-μsecs-high možno nastaviť nezávisle od rx-μsecs a tx-μsecs v rovnakom príkaze ethtool a je tiež nezávislá od adaptívneho algoritmu moderovania prerušení. Základný hardvér podporuje granularitu v XNUMXmikrosekundových intervaloch, takže susedné hodnoty môžu viesť k rovnakej frekvencii prerušení.
- Vypnutie adaptívneho moderovania prerušení: ethtool -C ethX adaptive-rx off adaptive-tx off
- Ak chcete zapnúť adaptívne moderovanie prerušení: ethtool -C ethX adaptive-rx on adaptive-tx on
Dobré miesto na spustenie všeobecného ladenia je 84 μs alebo ~12000 84 prerušení/s. Ak vidíte, že počítadlá rx_dropped bežia počas prevádzky (pomocou ethtool -S ethX), potom máte pravdepodobne príliš pomalý CPU, nedostatok vyrovnávacej pamäte z veľkosti kruhu adaptéra (ethtool -G) na udržanie paketov na XNUMX μs alebo na nízku rýchlosť prerušenia.
- Ak chcete nastaviť moderovanie prerušení na pevnú rýchlosť prerušenia 84 μs medzi prerušeniami (12000 84 prerušení/s): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 62 Ďalšia hodnota, ktorú môžete vyskúšať, ak nemáte maximálne využitie CPU XNUMX μs, je XNUMX μs. Toto využíva viac CPU, ale obsluhuje vyrovnávacie pamäte rýchlejšie a vyžaduje menej deskriptorov (veľkosť kruhu, ethtool -G).
- Nastaviť moderovanie prerušení na pevnú rýchlosť prerušenia 62 použití medzi prerušeniami (16000 62 prerušení/s). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs XNUMX
Ak sa počítadlá rx_dropped počas prevádzky zvýšia (pomocou ethtool -S ethX), pravdepodobne máte príliš pomalý CPU, nedostatok vyrovnávacej pamäte z veľkosti kruhu adaptéra (ethtool -G) alebo príliš nízku rýchlosť prerušenia. Ak nemáte maximálne využitie CPU, môžete zvýšiť mieru prerušenia znížením hodnoty ITR. Toto využíva viac CPU, ale obsluhuje sa rýchlejšie a vyžaduje menej deskriptorov (veľkosť kruhu, ethtool -G).
Ak je váš procesor na 100 %, potom sa neodporúča zvyšovať frekvenciu prerušení. Za určitých okolností, ako je napríklad pracovná záťaž viazaná na CPU, možno budete chcieť zvýšiť hodnotu μs, aby ste umožnili viac času CPU pre iné aplikácie.
Ak požadujete výkon s nízkou latenciou a/alebo máte dostatok CPU na spracovanie v sieti, môžete úplne zakázať moderovanie prerušení, čo umožní, aby sa prerušenia spúšťali čo najrýchlejšie. - Ak chcete zakázať moderovanie prerušení ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0
POZNÁMKA
Pri spustení so zakázaným moderovaním prerušení môže byť rýchlosť prerušenia v každom fronte veľmi vysoká. Zvážte zahrnutie parametra rx-usec-high na nastavenie horného limitu rýchlosti prerušenia. Nasledujúci príkaz deaktivuje adaptívne moderovanie prerušenia a povolí maximálne 5 mikrosekúnd, kým signalizuje, že príjem alebo prenos bol dokončený. Namiesto toho, aby výsledkom bolo až 200,000 50,000 prerušení za sekundu, obmedzuje celkový počet prerušení za sekundu na 20 5 prostredníctvom parametra rx-usec-high. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 5 rx-usecs 80 txusecs 100 Skúste nastaviť časovač spájania vysielania/príjmu/vysokej priority (150/200/25/20) alebo nájdite optimálnu hodnotu pre pracovné zaťaženie (10/5)
4.4 Veľkosť prsteňa
Ak vidíte počítadlá rx_dropped v ethtool -S ethX (rx_dropped, rx_dropped.nic) alebo máte podozrenie na tlak na vyrovnávaciu pamäť pri viacerých aktívnych frontoch, môžete skúsiť upraviť veľkosť kruhu z predvolenej hodnoty. Predvolená hodnota je 512, maximálna je 4096.
- Ak chcete skontrolovať aktuálne hodnoty: ethtool -g ethX
Ak máte podozrenie, že nedostatok vyrovnávacej pamäte spôsobuje poklesy aktuálnej rýchlosti prerušenia, môžete najskôr vyskúšať maximum, potom minimum a potom pokračovať v binárnom vyhľadávaní, kým neuvidíte optimálny výkon.
Ak existuje podozrenie na tlak vyrovnávacej pamäte (mnoho aktívnych frontov), zníženie predvolených vyrovnávacích pamätí môže pomôcť Intel ® Data Direct I/O (Intel ® DDIO) fungovať efektívnejšie. Intel odporúča vyskúšať 128 alebo 256 na front, pričom si je vedomý toho, že môže byť potrebné zvýšiť frekvenciu prerušení prostredníctvom ethtool -C, aby sa predišlo zvýšeniu rx_dropped. - Nastavenie veľkosti prsteňa na pevnú hodnotu: ethtool -G eth12 rx 256 tx 256
POZNÁMKA
Ak chcete opraviť poklesy paketov Rx nájdené pomocou ethtool -S ethX|grep drop, zvážte zvýšenie veľkosti kruhu na 4096. Experimentujte, aby ste našli najlepšie nastavenie pre pracovné zaťaženie, ale dávajte pozor na nadmerné využitie pamäte s vyššími hodnotami.
4.5 Riadenie prietoku
Riadenie toku vrstvy 2 môže značne ovplyvniť výkon TCP a odporúča sa, aby bolo vypnuté pre väčšinu pracovných zaťažení. Potenciálnou výnimkou je nárazová premávka, kde nárazy nemajú dlhé trvanie.
Riadenie toku je predvolene vypnuté.
- Ak chcete povoliť riadenie toku: ethtool -A ethX rx on tx on
- Ak chcete vypnúť riadenie toku: ethtool -A ethX rx off tx off
POZNÁMKA
Ak chcete úspešne povoliť riadenie toku, musíte mať prepojovacieho partnera schopného riadenia toku.
4.6 Jumbo rámy
Keď očakávané prevádzkové prostredie pozostáva z veľkých blokov prenášaných údajov, môže byť výhodné povoliť funkciu jumbo rámca. Podpora Jumbo Frames je povolená zmenou maximálnej prenosovej jednotky (MTU) na hodnotu väčšiu ako je predvolená hodnota 1500. To umožňuje zariadeniu prenášať dáta vo väčších paketoch v rámci sieťového prostredia. Toto nastavenie môže zlepšiť priepustnosť a znížiť využitie CPU pre veľké I/O pracovné zaťaženia. Môže to však ovplyvniť pracovné zaťaženie citlivé na malé pakety alebo oneskorenie.
POZNÁMKA
Jumbo rámce alebo väčšie nastavenie MTU musia byť správne nakonfigurované vo vašom sieťovom prostredí.
Na zvýšenie veľkosti MTU použite príkaz ifconfig. Naprample, zadajte nasledujúce, kde je číslo rozhrania: ifconfig mtu 9000 hore
Prípadne môžete použiť príkaz ip takto: ip link set mtu 9000 dev ip odkaz nastaviť dev
Ladenie platformy (i40e nešpecifické)
5.1 Nastavenia systému BIOS
- Povoľte Intel® VT-d pre úlohy virtualizácie.
- Hyper-threading (logické procesory) môže ovplyvniť výkon. Experimentujte s ním zapínaním alebo vypínaním pre vašu pracovnú záťaž.
- Intel® Turbo Boost umožňuje jadrám CPU pracovať na vyššej frekvencii, než je základná frekvencia CPU. Povolenie Intel® Turbo Boost môže zlepšiť výkon pri mnohých pracovných zaťaženiach, ale spotrebuje viac energie na udržanie jadier na vyššej frekvencii. Experimentujte s funkciou Turbo Boost, ktorá je vypnutá/zapnutá pre vašu pracovnú záťaž.
POZNÁMKA
Turbo frekvencie nie sú zaručené, ak platforma zažíva vysoké celkové využitie CPU. Vyššie frekvencie turba jadra sa znižujú so zvyšujúcim sa celkovým využitím CPU.
5.2 Správa napájania
Správa napájania môže ovplyvniť výkon, najmä pri pracovných zaťaženiach s nízkou latenciou. Ak je výkon vyššou prioritou ako znižovanie spotreby energie, spoločnosť Intel odporúča experimentovať s obmedzením účinkov správy napájania. Existuje mnoho rôznych spôsobov, ako obmedziť správu napájania prostredníctvom nástrojov operačného systému, nastavení systému BIOS a parametrov zavádzania jadra. Vyberte si najlepšiu metódu a úroveň, aby vyhovovali vášmu prostrediu.
5.2.1 Kontrola stavu C
Obmedzenie vstupu do stavu C na CO alebo C1 zlepšuje výkon a zvyšuje využitie energie.
Vypnutie položky stavu C6 balíka CPU môže zlepšiť výkon siete. To však zvyšuje spotrebu energie.
K dispozícii sú nasledujúce možnosti:
- Dynamicky ovládajte vstup do stavu C:
OTVORENÉ
/dev/cpu_dma_latency a zapíšte doň maximálnu povolenú latenciu.
POZNÁMKA
Existuje malý program s názvom cpudmalatency.c, ktorý si môžete stiahnuť z komunity s otvoreným zdrojovým kódom, skompilovať a spustiť z príkazového riadku.
Nasledujúce example umožňuje päť μs času prebudenia, a teda umožňuje zadanie C1: cpudmalatency 5 &
- Obmedzte maximálny stav C v nastaveniach zavádzania jadra:
Pre procesory Intel: intel_idle.max_cstates=1
Pre iné procesory ako Intel: processor.max_cstates=1 - Pomocou príkazu cpupower skontrolujte a vypnite stav CPU C6: Skontrolujte: cpupower monitor alebo cpupower idle-info
Zakázať C6: cpupower idle-set -d3 alebo
Zakázať C-stavy: cpupower idle-set -D0
Poznámky:
- Zakážte stavy C na CPU, ak má server škálovateľné procesory Intel® 4. generácie Intel® Xeon®. Keď je funkcia Hyper Threading povolená alebo zakázaná, zakázanie stavov nečinnosti (-D0) bráni jadrám vstúpiť do stavov nízkej spotreby počas období nečinnosti a znižuje latenciu procesora pri prechode medzi nečinným a aktívnym stavom.
- Správa napájania škálovateľného procesora Intel® 4. generácie Intel® Xeon® je mimoriadne agresívna. Ak chcete zabrániť tomu, aby sa jadrá dostali do stavov nízkej spotreby, skúste znížiť počet jadier, ktoré sa používajú, aby boli dlhšie v pohotovosti (ethtool -L kombinované ). Tiež naviažte prerušenia na konkrétne jadrá pomocou nastavenej afinity irq (najčastejšie s -x local alebo zoznam jadier CPU) a zabezpečte, aby pracovné zaťaženie bežalo na tých istých jadrách so sadou úloh alebo numactl. To zlepšuje výkon udržiavaním aktívnych jadier a optimalizáciou spracovania prerušení.
Povoliť C6:
cpupower idle-set -d3
Povoliť stavy C:
cpupower idle-set -E
- Ďalšou metódou je použitie vyladeného nástroja (súčasť mnohých distribúcií Linuxu) na nastavenie profesionála výkonufile. Tieto profiles modifikovať niekoľko nastavení operačného systému, ktoré môžu ovplyvniť výkon v mnohých aplikáciách. Zistilo sa, že priepustnosť siete profile poskytuje zlepšenie väčšiny pracovných zaťažení.
Skontrolujte:
tuned-adm aktívny
Nastaviť:
tuned-adm profile sieťová priepustnosť
POZNÁMKA
Pre vyššie uvedené príkazy musí byť spustená vyladená služba. Ak chcete skontrolovať/reštartovať, vyladené: vyladený stav systemctl vyladený reštart systemctl
Môžete tiež zakázať akúkoľvek položku stavu C pridaním nasledujúceho do spúšťacieho riadku jadra:
nečinný=anketa - Obmedzte stav C prostredníctvom nastavení správy napájania systému BIOS, ktoré môže mať profesionálnu úroveň výkonufile k dispozícii.
Nástroje ako turbostat alebo x86_energy_perf_policy možno použiť na kontrolu alebo nastavenie nastavení správy napájania.
5.2.2 Správa napájania PCIe
Správa napájania v aktívnom stave (ASPM) umožňuje nižší stav napájania pre prepojenia PCIe, keď sa aktívne nepoužívajú. To môže spôsobiť vyššiu latenciu na sieťových zariadeniach PCIe, preto spoločnosť Intel odporúča vypnúť ASPM pre záťaže citlivé na latenciu. Zakážte ASPM pridaním nasledujúceho do spúšťacieho riadku jadra: pcie_aspm=off
5.2.3 Škálovanie frekvencie CPU
Škálovanie frekvencie CPU (alebo škálovanie rýchlosti CPU) je technika správy napájania Linuxu, pri ktorej sa rýchlosť systémových hodín upravuje za behu, aby sa šetrila energia a teplo. Rovnako ako stavy C to môže spôsobiť nechcenú latenciu sieťových pripojení.
Nástroj cpupower je možné použiť aj na kontrolu a úpravu predvolených hodnôt a limitov výkonu procesora:
- Skontrolujte: monitor cpupower alebo
- Nastavte CPU do výkonnostného režimu: cpupower frequency-set -g performance
POZNÁMKA
Úpravy limitov frekvencie CPU môžu mať vplyv na mnohé pracovné zaťaženia a môžu deaktivovať ďalšie funkcie, ako je napríklad režim Turbo CPU.
Ak chcete zakázať škálovanie frekvencie CPU, vypnite službu napájania CPU pomocou nasledujúcich príkazov:
systemctl stop cpupower.service
systemctl vypnúť cpupower.service
5.2.4 Dodatočné pokyny pre správu napájania
Ďalšie podrobnosti sú uvedené v tomto overe na vysokej úrovniview z mnohých funkcií správy napájania v 3. generácii škálovateľných procesorov Intel® Xeon®, ako aj s návodom, ako možno tieto funkcie integrovať na úrovni platformy: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Intel® Turbo Boost zrýchľuje procesor v prípade potreby, ale môže spotrebovať dodatočnú energiu. Vypnutím funkcie Turbo Boost sa procesor udrží na stabilnej rýchlosti, čo vám poskytne konzistentnú úroveň výkonu pre konkrétne pracovné zaťaženie.
5.4 Firewally
Brány firewall môžu ovplyvniť výkon, najmä výkon latencie.
Ak to nie je potrebné, vypnite iptables/firewalld.
5.5 Nastavenia aplikácie
Jedno vlákno (ktoré zodpovedá jednému sieťovému frontu) často nestačí na dosiahnutie maximálnej šírky pásma. Niektoré architektúry platforiem, ako napríklad AMD, majú tendenciu zahadzovať viac paketov Rx s jedným vláknom v porovnaní s platformami s procesormi Intel.
Zvážte použitie nástrojov, ako sú taskset alebo numactl na pripnutie aplikácií k uzlu NUMA alebo jadrám CPU lokálneho k sieťovému zariadeniu. Pri niektorých pracovných zaťaženiach, ako je napríklad I/O úložného priestoru, prináša presun aplikácie do nelokálneho uzla výhodu.
Ak je to možné, experimentujte so zvyšovaním počtu vlákien používaných vašou aplikáciou.
Verzia jadra 5.6
Väčšina moderných in-box jadier je primerane dobre optimalizovaná pre výkon, ale v závislosti od vášho prípadu použitia môže aktualizácia jadra poskytnúť lepší výkon. Stiahnutie zdrojového kódu vám tiež umožňuje povoliť/zakázať určité funkcie pred zostavením jadra.
5.7 Nastavenia operačného systému/jadra
Ak chcete získať viac informácií o všeobecnom ladení operačného systému, pozrite si sprievodcov ladením operačného systému, ako je napríklad príručka Red Hat Enterprise Linux Network Performance Tuning Guide.
Niektoré bežné parametre na ladenie sú uvedené v nasledujúcej tabuľke. Všimnite si, že toto sú len navrhované východiskové body a ich zmena oproti predvoleným hodnotám môže zvýšiť zdroje používané v systéme. Hoci zvýšenie hodnôt môže pomôcť zlepšiť výkon, je potrebné experimentovať s rôznymi hodnotami, aby ste určili, čo najlepšie funguje pre daný systém, pracovné zaťaženie a typ prenosu.
Parametre jadra sú konfigurovateľné pomocou pomôcky sysctl v systéme Linux, ako je uvedené nižšie.
Komu view predvolené hodnoty pre rmem a wmem v systéme:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
Nastavte hodnoty na maximum (16 MB):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Veľkosti vyrovnávacích pamätí soketov, známe aj ako prijímacia vyrovnávacia pamäť (rmem) a vysielacia vyrovnávacia pamäť (wmem), sú systémové parametre, ktoré určujú množstvo pamäte rezervovanej pre prichádzajúcu a odchádzajúcu sieťovú prevádzku.
Spustenie sysctl bez argumentu -w vypíše parameter s jeho aktuálnym nastavením.
Nastavenie zásobníka | Popis |
net.core.rmem_default | Predvolená veľkosť prijímacieho okna |
net.core.wmem_default | Predvolená veľkosť okna prenosu |
net.core.rmem_max | Maximálna veľkosť prijímacieho okna |
net.core.wmem_max | Maximálna veľkosť prenosového okna |
net.core.optmem_max | Maximum Option Memory Buffers |
net.core.netdev_max_backlog | Backlog nespracovaných paketov predtým, ako jadro začne vypadávať |
net.ipv4.tcp_rmem | Rezerva pamäte pre vyrovnávacie pamäte na čítanie TCP |
net.ipv4.tcp_wmem | Rezerva pamäte pre vyrovnávacie pamäte odosielania TCP |
Kernel, sieťový zásobník, obslužný program pamäte, rýchlosť procesora a parametre správy napájania môžu mať veľký vplyv na výkon siete. Bežným odporúčaním je aplikovať na sieťového profesionála s priepustnosťoufile pomocou naladeného príkazu. Týmto sa upraví niekoľko nastavení operačného systému, aby sa uprednostnili sieťové aplikácie.
Skontrolujte:
tuned-adm aktívny
Nastaviť:
tuned-adm profile sieťová priepustnosť
5.8 Backlog sieťového zariadenia
Táto funkcia pomáha zlepšiť výkon siete efektívnou správou prichádzajúcej prevádzky, znížením straty paketov, znížením latencie a zvýšením priepustnosti. To vedie k lepšej používateľskej skúsenosti a rýchlejšej odozve systému.
Štandardne je povolená vo väčšine operačných systémov Linux. Ak chcete skontrolovať predvolenú hodnotu:
sysctl net.core.netdev_max_backlog
Maximálna hodnota pre netdev_max_backlog sa môže líšiť v závislosti od faktorov, ako je verzia jadra, hardvér, pamäť a pracovné zaťaženie. V mnohých prípadoch sa 8192 považuje za dobrú hodnotu. sysctl -w net.core.netdev_max_backlog=8192
5.9 Konfigurácie a ladenie špecifické pre platformu
5.9.1 Škálovateľné procesory Intel® Xeon® štvrtej generácie
Správa napájania škálovateľného procesora Intel® 4. generácie Intel® Xeon® je mimoriadne agresívna v porovnaní s škálovateľnými procesormi 3. generácie Intel® Xeon®. Ak chcete zabrániť tomu, aby sa jadrá dostali do stavu s nízkou spotrebou energie, skúste znížiť počet jadier, ktoré sa používajú, aby boli dlhšie v pohotovostnom režime.
Odporúčané nastavenia Bios pre najvyšší výkon
- Zapnutie/vypnutie funkcie Hyper-threading (na základe požiadavky pracovného zaťaženia a cieľov výkonu) na CPU.
- Nastavte systém profile na výkon pre maximálny výkon.
POZNÁMKA
To má za následok vyššiu spotrebu energie - Nastavte správu napájania CPU na Maximálny výkon, aby ste uprednostnili maximálny výkon CPU pred energetickou účinnosťou.
- Povoliť Turbo Boost. Zakázanie funkcie Turbo Boost v nastaveniach systému BIOS zvyčajne zabraňuje procesoru dynamicky zvyšovať rýchlosť hodín nad základnú frekvenciu.
- POZNÁMKA
Zakázanie funkcie Turbo Boost môže byť vhodné v určitých prípadoch použitia, kde sa uprednostňuje konzistentný výkon, energetická účinnosť alebo správa teploty pred maximálnym výkonom. - Ak systém nevyužíva virtualizačné technológie, vypnite funkciu Single Root I/O Virtualization (SR-IOV).
- Deaktivujte stavy C, aby ste dali CPU pokyn, aby zostal aktívny a zabránil vstupu do hlbších stavov nečinnosti.
- Deaktivujte C1E, aby ste sa uistili, že CPU zostane aktívny a neprejde do nečinného stavu C1E.
- Nastavte nulovú frekvenciu na maximum, aby ste dali pokyn systému, aby pracoval na najvyššej dostupnej frekvencii.
- Na platformách Dell nastavte emuláciu jadra MADT (Multiple APIC Description Table) na Linear (alebo Round-Robin v závislosti od systému BIOS), aby ste poskytli jasné a predvídateľné mapovanie jadier CPU.
Odporúčané ladenia na úrovni operačného systému pre optimalizovaný výkon
- Nastavte regulátor škálovania frekvencie CPU na výkon. cpupower frequency-set -g performance cpupower frequency-info
- Zakázať stavy C. cpupower idle-set -D0
- Nastavte vyrovnávacie pamäte core Rx (rmem) a Tx (wmem) na maximálnu hodnotu. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
- Nastaviť meškanie sieťového zariadenia. sysctl -w net.core.netdev_max_backlog=8192
- Set ladený profile (pracovná záťaž závisí od priepustnosti/latencie).
tuned-adm profile sieťová priepustnosť
Odporúčané ladenia na úrovni adaptéra pre optimalizovaný výkon
- Obmedzte počet frontov, ktoré sa majú použiť na prevádzku aplikácií. Použite minimálny počet front požadovaných na udržanie pridružených jadier CPU aktívnych, aby ste im zabránili vstúpiť do hlbších stavov nečinnosti (prispôsobte pracovnému zaťaženiu): ethtool -L spolu 32
- Nastavte mieru moderovania prerušení. ethtool -C adaptive-rx off adaptive-tx off rx-usecs-high 50 rx-usecs 50 tx-usecs 50
Skúste nastaviť časovač spájania vysielania/prijímania/vysokej priority na vyššiu (80/100/150/200) alebo nižšiu (25/20/10/5), aby ste našli optimálnu hodnotu pre pracovné zaťaženie. - Nastavte veľkosti Rx/Tx prsteňov. ethtool -G rx 4096 TX 4096
POZNÁMKA
Ak vidíte, že paket Rx klesá s ethtool -S| grep drop, skúste zmenšiť veľkosť prsteňa na <4096. Pokúste sa nájsť optimálnu hodnotu pre pracovné zaťaženie, pri ktorej nedochádza k zahadzovaniu paketov. - Nastavte afinitu IRQ. Použite lokálne jadrá k NIC alebo špecifické mapovanie jadra (kde # jadier sa rovná počtu frontov nastavenému v 1 na strane 26. systemctl stop irqbalance set_irq_affinity -X local ALEBO set_irq_afinity -X
5.9.2 AMD EPYC
Procesory AMD EPYC sú výkonné procesory vyrobené pre servery a dátové centrá postavené na architektúre Zen AMD. Nižšie uvedené nastavenia pochádzajú zo 4. generácie série EPYC od AMD.
Odporúčané nastavenia systému BIOS pre najvyšší výkon
- Povoľte vlastný režim, aby používatelia mohli upraviť výkon procesora, spotrebu energie a ďalšie nastavenia. To pomáha pri dolaďovaní systému pre najlepšiu rovnováhu medzi výkonom a energetickou účinnosťou.
- Povoľte zvýšenie výkonu jadra, aby procesor mohol automaticky zvýšiť svoju rýchlosť na zvládanie náročnejších úloh, čím sa zlepší celkový výkon.
- Zakážte globálne riadenie stavu C, aby ste zabránili CPU vstúpiť do hlbších stavov úspory energie známych ako stavy C, ktoré môžu zachovať odozvu.
POZNÁMKA
Vypnutie stavov C môže spôsobiť dodatočnú spotrebu energie a zvýšiť tepelné teploty. Monitorujte pracovné zaťaženie oboch. - Povolenie/zakázanie simultánneho multithreadingu (SMT) na CPU na základe požiadaviek na pracovné zaťaženie a výkonnostných cieľov. SMT je ekvivalentom Hyper Threading na procesoroch Intel.
POZNÁMKA
Pre optimalizovaný výkon si pozrite Ladenie nastavení ovládača i40e na strane 13 a Ladenie platformy (i40e nešpecifické) na strane 19, kde nájdete odporúčané ladenie úrovne OS a adaptéra.
Lepenie adaptéra
Linux bonding je výkonná funkcia, ktorá môže výrazne zlepšiť výkon siete, redundanciu a odolnosť voči chybám v serverových prostrediach. Je však dôležité poznamenať, že na správne fungovanie vyžaduje kompatibilný sieťový hardvér a správnu konfiguráciu na serveri aj prepínači.
Ovládač spájania v systéme Linux vám umožňuje agregovať viacero fyzických sieťových rozhraní do spojeného rozhrania. Toto spojené rozhranie sa javí ako jediné virtuálne sieťové rozhranie pre operačný systém a aplikácie.
POZNÁMKA
Väzba je logické rozhranie, takže nie je možné nastaviť afinitu CPU priamo na rozhraní väzby (naprample, väzba0). To znamená, že nemá žiadnu priamu kontrolu nad manipuláciou s prerušením alebo afinitou CPU. Afinita CPU musí byť nakonfigurovaná pre základné rozhrania, ktoré sú súčasťou väzby.
Lepenie poskytuje niekoľko režimov operácií, z ktorých každý má svoje vlastné charakteristiky.
Režim | Typ |
0 | Round Robin |
1 | Aktívna záloha |
2 | XOR |
3 | Vysielanie |
4 | LACP |
5 | Vyváženie prenosu zaťaženia |
6 | Adaptívne vyváženie zaťaženia |
Existujú rôzne metódy na vytvorenie väzby v systéme Linux. Jednou z najbežnejších metód je použitie konfigurácie siete files (naprample, /etc/network/ interfaces alebo /etc/sysconfig/network-scripts/ifcfg-bondX).
Konfigurácia pomocou konfigurácie siete Files
Nasledujúce kroky vytvárajú prepojenie prostredníctvom konfigurácie siete files.
- Vyberte dva alebo viac portov NIC na prepojenie (naprample, ethX a ethY)
- Otvorte konfiguráciu NIC Filev /etc/sysconfig/network-scripts/ pre požadované rozhranie NIC (naprample, vi ifcfg-ethX a vi ifcfg-ethY) a pripojte nasledujúci text:
MASTER=bondN [Poznámka: N je celé číslo na uvedenie čísla väzby.] SLAVE=áno - Vytvorte skript siete väzieb file pomocou vi /etc/sysconfig/networkscripts/ifcfg-bondN a zadajte nasledujúci text:
DEVICE=bondN [Poznámka: N je celé číslo uvádzajúce číslo väzby] ONBOOT=áno USERCTL=nie BOOTPROTO=dhcp (alebo) žiadne
IPADDR=200.20.2.4 [povinné, ak BOOTPROTO=žiadne] NETMASK=255.255.255.0 [povinné, ak BOOTPROTO=žiadne] SIEŤ=200.20.2.0 [povinné, ak je BOOTPROTO=žiadne] VYSIELANIE, ak sa vyžaduje200.20.2.255. BOOTPROTO=žiadny] BONDING_OPTS=”mode=1 miimon=100″
POZNÁMKA
Režim môže byť ľubovoľné celé číslo od 0 do 6 na základe požiadavky. - Reštartujte sieťové služby pomocou servisného reštartu siete alebo systemctl reštartu NetworkManager.service
Riešenie problémov s výkonom
7.1 Využitie CPU
Počas pracovného zaťaženia skontrolujte využitie procesora na jadro.
Všimnite si, že využitie na jadro je relevantnejšie pre výkon ako celkové využitie CPU, pretože poskytuje predstavu o využití CPU na sieťový front. Ak máte iba niekoľko vlákien, na ktorých beží sieťová prevádzka, možno budete používať iba niekoľko jadier. Ak sú však tieto jadrá na 100 %, potom je priepustnosť vašej siete pravdepodobne obmedzená využitím CPU a je čas vykonať nasledujúce:
- Vylaďte moderovanie IRQ/veľkosť zvonenia podľa podrobností v časti Moderovanie prerušení.
- Zvýšte počet aplikačných vlákien, aby sa zaťaženie procesora rozložilo na viac jadier. Ak všetky jadrá bežia na 100 %, vaša aplikácia môže byť viazaná na CPU a nie na sieť.
Bežne dostupné nástroje:
- top
— Stlačením 1 rozbaľte zoznam CPU a skontrolujte, ktoré z nich sa používajú.
— Všimnite si úroveň využitia.
— Všimnite si, ktoré procesy sú uvedené ako najaktívnejšie (horná časť zoznamu). - mpstat
Nasledujúce example príkazový riadok bol testovaný na Red Hat Enterprise Linux 7.x.
Zobrazuje využitie procesora na jadro (vyhľadaním celkového percenta nečinnosti a odpočítaním od 100) a hodnoty nad 80 % zvýrazní červenou farbou. mpstat -P VŠETKY 1 1 | grep -v Priemer | chvost -n +5 | hlava -n -1 | awk '{ print (100-$13)}' | egrep -color=always '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | stĺpec - perf top Pozrite sa, kde sa míňajú cykly.
7.2 Počítadlá i40e
Ovládač i40e poskytuje dlhý zoznam počítadiel na ladenie a monitorovanie rozhrania prostredníctvom príkazu ethtool -S ethX. Môže byť užitočné sledovať výstup počas pracovného zaťaženia a/alebo porovnávať hodnoty počítadla pred a po spustení pracovného zaťaženia.
- Ak chcete získať úplný výpis počítadiel i40e: ethtool -S ethX
- Ak chcete sledovať len nenulové počítadlá: watch -d (ethtool -S ethX) | egrep -v :\ 0 | stĺpec
Niektoré veci, ktoré treba hľadať: - rx_dropped znamená, že CPU neobsluhuje vyrovnávacie pamäte dostatočne rýchlo.
- port.rx_dropped znamená, že niečo nie je dostatočne rýchle v slote/pamäti/systéme.
7.3 Sieťové počítadlá
Skontrolujte netstat -s pred/po spustení pracovného zaťaženia.
Netstat zhromažďuje informácie o sieti zo všetkých sieťových zariadení v systéme. Preto môžu byť výsledky ovplyvnené inými sieťami, ako je testovaná sieť. Výstup z netstat -s môže byť dobrým indikátorom problémov s výkonom v operačnom systéme Linux alebo jadre. Ak chcete získať viac informácií o všeobecnom ladení operačného systému, pozrite si sprievodcov ladením operačného systému, ako je napríklad príručka Red Hat Enterprise Linux Network Performance Tuning Guide.
7.4 Systémové denníky
Skontrolujte systémové protokoly na chyby a upozornenia (/var/log/messages, dmesg).
7.5 Nástroj Intel svr-info
Intel poskytuje nástroj svr-info (pozri https://github.com/intel/svr-info) pre Linux, ktorý zachytáva relevantné hardvérové a softvérové detaily zo servera. Výstup svr-info môže byť mimoriadne užitočný pri identifikácii úzkych miest systému alebo nastavení/ladení, ktoré nie sú optimalizované pre pracovné zaťaženie. Pri otváraní prípadu podpory s Intelom pre problémy s výkonom súvisiace s Ethernetom nezabudnite zahrnúť výstup svr-info (text file) pre každý server Linux v testovacej konfigurácii.
- Stiahnite si a nainštalujte svr-info:
wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
./svr-info
> hostname.txt - Zozbierajte výstup:
./svr-info > hostname.txt - Priložte jeden text (.txt) file pre každý server vášmu prípadu podpory Intel na analýzu.
Odporúčania pre bežné scenáre výkonnosti
8.1 Preposielanie IP
- Aktualizujte jadro.
Niektoré nedávne in-distro jadrá majú znížený výkon smerovania v dôsledku zmien jadra v smerovacom kóde, počnúc odstránením smerovacej vyrovnávacej pamäte kvôli bezpečnosti. Nedávne jadrá out-of-distro by mali mať záplaty, ktoré zmiernia dopad týchto zmien na výkon a môžu poskytnúť lepší výkon. - Zakázať hyper-threading (logické jadrá).
- Upravte parametre zavádzania jadra.
— Vynútiť vypnutie iommu (intel_iommu=off alebo iommu=off) zo zavádzacieho riadku jadra, pokiaľ to nie je potrebné pre virtualizáciu
— Vypnite správu napájania: processor.max_cstates=1 idle=poll pcie_aspm=off - Obmedzte počet frontov tak, aby sa rovnal počtu jadier na lokálnom soketu (12 v tomto príkladeample). ethtool -L ethX kombinované 12
- Pin preruší iba lokálnu zásuvku. set_irq_affinity -X local ethX OR set_irq_affinity -X local ethX
POZNÁMKA
-X alebo -x možno použiť v závislosti od pracovného zaťaženia. - Podľa potreby zmeňte veľkosť prsteňa Tx a Rx. Väčšia hodnota si vyžaduje viac zdrojov, ale môže poskytnúť lepšie sadzby za preposielanie. ethtool -G ethX rx 4096 tx 4096
- Zakázať GRO pri smerovaní.
Kvôli známemu problému s jadrom musí byť GRO pri smerovaní/preposielaní vypnuté. ethtool -K ethX gro off kde ethX je ethernetové rozhranie, ktoré sa má upraviť. - Vypnite adaptívne moderovanie prerušení a nastavte statickú hodnotu. ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64
POZNÁMKA
V závislosti od typu procesora a pracovnej záťaže je možné upraviť parametre koalescencie pre RX a TX pre lepší výkon (alebo menšiu stratu snímok).
- Vypnite bránu firewall. sudo systemctl vypnúť firewalld sudo systemctl stop firewalld
- Povoliť presmerovanie IP. sysctl -w net.ipv4.ip_forward=1
- Nakonfigurujte maximálne hodnoty pre veľkosť vyrovnávacej pamäte pre prijímanie a odosielanie soketov. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
POZNÁMKA
V závislosti od pracovného zaťaženia alebo požiadavky je možné tieto hodnoty zmeniť z predvolených hodnôt.
8.2 Nízka latencia
- Vypnite hyper-threading (logické jadrá).
- Uistite sa, že sieťové zariadenie je lokálne pre numa core 0.
- Pripnite benchmark na jadro 0 pomocou sady úloh -c 0.
- Vypnite irqbalance pomocou systemctl stop irqbalance alebo systemctl zakázania irqbalance
- Spustite skript afinity na rozšírenie medzi jadrá. Skúste buď lokálne alebo všetky.
- Vypnite moderovanie prerušení. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- high 0
- Obmedzte počet frontov tak, aby sa rovnal počtu jadier na lokálnej zásuvke (32 v tomto príkladeample). ethtool -L ethX kombinované 32
- Pin preruší iba lokálnu zásuvku (skript pribalený k zdroju ovládača i40e). set_irq_affinity -X lokálny ethX
- Použite zavedený benchmark ako netperf -t TCP_RR, netperf -t UDP_RR alebo NetPipe. netperf -t TCP_RR alebo netperf -t UDP_RR
- Pripnúť benchmark k jednému jadru v lokálnom uzle NUMA. taskset -c
Intel® Ethernet 700 Series
Sprievodca ladením výkonu systému Linux
decembra 2024
Doc. č.: 334019, Rev.: 1.2
Dokumenty / zdroje
![]() |
Ladenie výkonu Intel Ethernet 700 Series Linux [pdf] Používateľská príručka 334019, Ethernet 700 Series Linux Performance Tuning, Ethernet 700 Series, Linux Performance Tuning, Performance Tuning, Tuning |