Logo IntelIntel® Ethernet řady 700
Průvodce laděním výkonu Linuxu
NEX Cloud Networking Group (NCNG)
Rev. 1.2
prosince 2024

Historie revizí

Revize Datum Komentáře
1.2 prosince 2024 · Přidány další pokyny pro správu napájení.
· Přidán Intel* Turbo Boost.
· Přidán Backlog síťového zařízení.
· Přidány konfigurace a ladění specifické pro platformu.
· Přidány škálovatelné procesory Intel* %eon* 4. generace.
· Přidáno AMD EPYC.
· Aktualizované možnosti kontroly hardwaru systému.
· Aktualizováno iPerf2.
· Aktualizováno iPerf3.
· Aktualizované fronty Tx/Rx.
· Aktualizováno moderování přerušení.
· Aktualizovaná velikost prstenu.
· Aktualizované ladění platformy (i40e nespecifické).
· Aktualizované nastavení systému BIOS.
· Aktualizováno řízení C-State Control.
· Aktualizováno škálování frekvence CPU.
· Aktualizované nastavení aplikace.
· Aktualizované nastavení operačního systému/kernelu.
· Aktualizováno přesměrování IP.
· Aktualizována nízká latence.
srpna 2023 Změny v tomto dokumentu zahrnují:
· Přidány související odkazy.
· Přidáno Ujistěte se, že se balíček DDP načítá správně.
· Přidáno iPerf2.
· Přidáno iPerf3.
· Přidán netperf.
· Aktualizovaná afinita IRQ.
· Přidány fronty Tx/Rx.
· Aktualizovaná velikost prstenu.
· Přidány Jumbo rámy.
· Přidáno připojení adaptéru.
· Přidán nástroj Intel svr-info.
1.0 březen 2016 Počáteční vydání (Intel Public).

Zavedení

Tato příručka je určena k tomu, aby poskytla pokyny pro vyladění prostředí pro optimální výkon sítě pomocí síťových karet Intel® Ethernet řady 700 v prostředích Linux. Zaměřuje se na stav a nastavení hardwaru, ovladačů a operačního systému, které mohou zlepšit výkon sítě. Je třeba poznamenat, že výkon sítě může být ovlivněn libovolným počtem vnějších vlivů, pouze ty nejběžnější a nejdramatičtější z nich jsou popsány v této příručce.
1.1 Související odkazy

Počáteční kontrolní seznam

2.1 Aktualizace verzí ovladače/firmwaru
Zkontrolujte verzi ovladače/firmwaru pomocí ethtool -i ethx.
Podle potřeby aktualizujte následující:

2.2 Přečtěte si README
Zkontrolujte známé problémy a získejte nejnovější pokyny pro konfiguraci ze souboru README file součástí zdrojového balíčku i40e.
2.3 Zkontrolujte, zda je váš slot PCI Express (PCIe) x8
Některé sloty PCIe x8 jsou ve skutečnosti nakonfigurovány jako sloty x4. Tyto sloty mají nedostatečnou šířku pásma pro plnou rychlost linky se zařízeními se dvěma a čtyřmi porty. Pokud navíc vložíte adaptér s podporou PCIe v3.0 do slotu PCIe v2.x, nemůžete získat plnou šířku pásma. Softwarový ovladač zařízení detekuje tuto situaci a zapíše do systémového protokolu následující zprávu:
Šířka pásma PCI-Express dostupná pro tuto kartu není dostatečná pro optimální výkon. Pro optimální výkon je vyžadován slot x8 PCI-Express.
Pokud k této chybě dojde, přesuňte adaptér do skutečného slotu PCIe v3.0 x8, abyste problém vyřešili.
2.4 Zkontrolujte možnosti hardwaru systému
Při 10 Gb/s, 25 Gb/s a 40 Gb/s Ethernetu existují určité minimální požadavky na CPU a systém. Obecně by měl být postačující moderní procesor třídy serverů a optimální konfigurace paměti pro vaši platformu, ale potřeby se liší v závislosti na vaší pracovní zátěži. Všechny paměťové kanály by měly být naplněny a v systému BIOS by měl být povolen režim výkonu paměti. Ověřte, že konfigurace vašeho CPU a paměti je schopna podporovat úroveň výkonu sítě, kterou požadujete pro svou pracovní zátěž.
POZNÁMKA
XL710 je 40GbE řadič. Adaptér 2 x 40 GbE využívající tento řadič není určen jako 2 x 40 GbE, ale 1 x 40 GbE s aktivním záložním portem. Při pokusu o použití linkového provozu zahrnujícího oba porty je interní přepínač nasycen a kombinovaná šířka pásma mezi dvěma porty je omezena na celkem SO Gb/s.
2.4.1 Parametry spouštění jádra
Pokud je v systému BIOS povolena technologie Intel® Virtualization Technology for Directed I/O (Intel® VT-d), společnost Intel doporučuje, aby IOMMU byla v režimu pass-through pro optimální výkon hostitelské sítě. To eliminuje režii DMA na hostitelském provozu a zároveň umožňuje virtuálním strojům (VM) mít stále výhody Intel® VT-d. Toho lze dosáhnout přidáním následujícího řádku do zaváděcích parametrů jádra: fommu-pt.
2.5 Ujistěte se, že se balíček DDP načítá správně
Základní ovladače 140ea a 140eb nemají přímou podporu pro dynamickou personalizaci zařízení (DDP). Chcete-li používat DDP se zařízeními řady 700, DDP profile lze aplikovat pomocí aplikace testpmd.
Podrobnosti o DDP profiles a jak uplatnit DDP profile s testpmd na zařízeních řady 700 naleznete v příručce Intel® Ethernet řady 700 Dynamic Device Personalization (DDP) Technology Guide.
Chcete-li ověřit, zda DDP profile bylo úspěšně načteno:
testpmd> ddp získat seznam 0 Profile číslo je: 1
POZNÁMKA
Pokud profíkfile číslo je 0, není načten žádný DDP balíček. V případě chyby načítání balíčku DDP se zařízení ve výchozím nastavení přepne do nouzového režimu a mnoho funkcí výkonu není k dispozici. Pokud se vyskytnou chyby související s načítáním balíčku DDP, způsobí to problémy s výkonem. Pokyny pro odstraňování problémů naleznete v Inte/* Ethernet 700 Series Dynamic Device Personalization (DDP) Technology Guide.

Základní měření výkonu a metodika ladění

3.1 Srovnání výkonu sítě
Před zahájením ladění je důležité mít dobré základní měření výkonu vaší sítě. Obvykle je dobré kromě počátečního měření výkonu vaší konkrétní aplikace/pracovního zatížení použít také standardní benchmark výkonu sítě k ověření, zda je vaše síťové zařízení v dobrém stavu.
Pro optimalizaci jednoho systému jsou netperf nebo iperf a NetPIPE solidní opensource bezplatné nástroje, které vám umožní zdůraznit připojení a diagnostikovat problémy s výkonem.
Netperf je silný pro testování propustnosti i latence. NetPIPE je nástroj specifický pro latenci, ale lze jej zkompilovat pro jakýkoli druh prostředí.
POZNÁMKA
Test TCP_RR v netperf vrací latenci v hodnotě transakcí/s. Toto je číslo pro zpáteční cestu. Jednosměrnou latenci lze vypočítat pomocí následující rovnice:
Latence (použití) = (1⁄2) / [Transakce/s] * 1,000,000 XNUMX XNUMX
3.1.1 iPerf2
Intel doporučuje iperf2 oproti iperf3 pro většinu situací srovnávání kvůli snadnému použití a podpoře více vláken v jedné instanci aplikace. Společnost Intel doporučuje používat volbu -P s 2–4 vlákny pro připojení 25G a přibližně 4–6 vlákny pro připojení 40G.

  • Spuštění jednosměrného provozu z klienta na server: Příkaz serveru example: iperf2 -s
    Klientský příkaz napřample: iperf2 -c -P
  • Spuštění obousměrného provozu z klienta na server (a naopak): Příkaz serveru example: iperf2 –s –p
    Klientský příkaz napřampten:
    iperf2 -c -p -P --full-duplex NEBO
    iperf2 -c -p -P –d

POZNÁMKA
Obě volby –full-duplex a -d v iperf2 umožňují uživateli provádět obousměrné testování. Volba –full-duplex se však konkrétně zaměřuje na plně duplexní testování.
POZNÁMKA
Při testování iperf2 na více serverových portech lze do příkazu serveru přidat příznak -d, aby se všechny relace serveru spouštěly na pozadí ze stejného okna terminálu. Parametr -d lze také použít, když je serverový příkaz vložen do for-loop ve skriptu.
POZNÁMKA
Při spuštění testu propustnosti sítě s jedním streamem/vláknem (napřample: P1), procesory AMD nemusí poskytovat očekávanou propustnost, zejména síťové karty s vyšší šířkou pásma (pokud je rychlost >= šířka pásma 25G). V důsledku toho je pro dosažení vyšší propustnosti vyžadováno připojení aplikací ke konkrétním jádrům. Viz Nastavení aplikace na straně 22.
3.1.2 iPerf3
Pokud je použit iperf3, je potřeba více instancí aplikacetage z vícevláknových, RSS a hardwarových front. Intel doporučuje spouštět 2-4 aplikační relace pro 25G připojení a přibližně 4-6 relací pro 40G připojení. Každá relace by měla specifikovat jedinečnou hodnotu TCP portu pomocí volby -p.

  • Spuštění jednosměrného provozu z klienta na server:
    Příkaz serveru exampten:
    iperf3 -s -p
    Klientský příkaz napřampten:
    iperf3 -c -p
  • Spuštění obousměrného provozu z klienta na server (a naopak):
    Příkaz serveru exampten:
    iperf3 –s –p
    Klientský příkaz napřample: iperf3 -c -p -P –-bidir
  • Chcete-li spustit více instancí (vláken) iperf3, doporučujeme použít for-loop k mapování vláken na porty TCP a spouštět iperf3 na pozadí pomocí & k vytvoření více procesů paralelně.
    Příkaz serveru example, spustí 4 vlákna: port=””; pro i v {0..3}; do port=520$i; bash -c “iperf3 -s -p $port &”; hotovo; Klientský příkaz napřample, start 4 threads – Transmit test port=””; pro i v {0..3}; do port=520$i; bash -c “iperf3 -c $serverIP -p $port &”; hotovo; Klientský příkaz napřample, spustit 4 vlákna – Přijmout testovací port=””; pro i v {0..3}; do port=520$i; bash -c “iperf3 -R -c $serverIP -p $port &”; hotovo; U připojení 40G zvyšte for-loop a vytvořte až 6 instancí/vlákna.

POZNÁMKA
Při spuštění testu propustnosti sítě s jedním streamem/vláknem (napřample: P1), procesory AMD nemusí poskytovat očekávanou propustnost, zejména vyšší šířku pásma
NIC (pokud je rychlost >= šířka pásma 25G). V důsledku toho je pro dosažení vyšší propustnosti vyžadováno připojení aplikací ke konkrétním jádrům. Viz Nastavení aplikace na straně 22 a AMD EPYC na straně 26.
3.1.3 netperf
Nástroj netperf je silnou volbou pro testování propustnosti i latence.

  • Test TCP_STREAM v netperf měří propustnost zařízení. Příkaz serveru example: netserver Klientský příkaz napřample: netperf -t TCP_STREAM -l 30 -H
  • Test TCP_RR v netperf vrací latenci v hodnotě transakcí/sekundu. Toto je číslo pro zpáteční cestu. Doporučuje se použít volbu -T x,x, kde x je CPU lokální pro zařízení. Jednosměrnou latenci lze vypočítat pomocí: Latency(usec)=(1⁄2)/ [Transactions/s]*1,000,\ Server command example: síťový server
    Klientský příkaz napřample: netperf -t TCP_RR -l 30 -H -T x, x
  • Chcete-li spustit více instancí (vláken) netperf, doporučujeme použít for-loop k mapování vláken na porty TCP a spustit netperf na pozadí pomocí & k vytvoření více procesů paralelně.
    Příkaz serveru example, začni 8 vláken:
    port=””; pro i v {0..7}; do port=520$i; bash -c “netserver -L $serverIP -p $port &”; hotovo;
    Klientský příkaz napřample, spustí 8 vláken: port=””; pro i v {0..7}; do port=520$i; bash -c “netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &”; hotovo;

3.2 Metodika ladění
Soustřeďte se vždy na jednu změnu ladění, abyste věděli, jaký dopad má každá změna na váš test. Čím metodičtější budete v procesu ladění, tím snazší bude identifikovat a řešit příčiny úzkých míst výkonu.

Ladění nastavení ovladače i40e

4.1 Afinita IRQ
Konfigurace afinity IRQ tak, aby byla přerušení pro různé síťové fronty sdružena s různými jádry CPU, může mít obrovský dopad na výkon, zejména na testy propustnosti více vláken.
Chcete-li nakonfigurovat afinitu IRQ, zastavte irqbalance a poté buď použijte skript set_irq_affinity ze zdrojového balíčku i40e, nebo ručně připněte fronty. Chcete-li povolit připínání fronty, deaktivujte nástroj pro vyrovnávání IRQ v uživatelském prostoru:

  • systemctl zakázat irqbalance
  • systemctl stop irqbalance
    Použití skriptu set_irq_affinity ze zdrojového balíčku i40e (doporučeno):
  • Chcete-li použít všechna jádra:
    [cesta-k-i40epackage]/scripts/set_irq_affinity -X all ethX
  • Chcete-li použít pouze jádra na místním soketu NUMA: [cesta-k-i40epackage]/scripts/set_irq_affinity -X local ethX
  • Můžete si také vybrat řadu jader. Vyhněte se použití cpu0, protože spouští úlohy časovače. [cesta-k-i40epackage]/scripts/set_irq_affinity 1-2 ethX

POZNÁMKA
Skript spřažení povolí řízení přenosových paketů (XPS) jako součást procesu připínání, když je zadána volba -x. Když je povoleno XPS, Intel doporučuje vypnout irqbalance, protože kernel balancer s XPS může způsobit nepředvídatelný výkon. Skript spřažení zakáže XPS, když je zadána volba -X. Zakázání XPS a povolení symetrických front je výhodné pro pracovní zátěže, kde je nejlepšího výkonu dosaženo, když je provoz Tx a Rx obsluhován na stejném páru front.
Konfigurace symetrických front v Linuxu zahrnuje vyladění parametrů ovladače síťového rozhraní tak, aby byly povoleny symetrické fronty příjmu (Rx) a symetrické fronty vysílání (Tx) pro podporované síťové adaptéry.
POZNÁMKA

  • Symetrické fronty jsou pokročilou síťovou funkcí a ne všechny síťové adaptéry nebo ovladače řady 700 je podporují.
  • Než se pokusíte nakonfigurovat symetrické fronty, ujistěte se, že máte potřebnou podporu ovladače a hardwaru.

Chcete-li nakonfigurovat symetrické fronty, postupujte takto:

  1. Upravit konfiguraci síťového rozhraní File: Použijte textový editor (napřample, vi, nano nebo gedit) pro úpravu konfigurace síťového rozhraní file. The file je obvykle umístěn v adresáři /etc/sysconfig/network-scripts/ a má jméno jako ifcfg-ethX, kde ethX je název vašeho síťového rozhraní.
  2. Přidejte parametry symetrické fronty. Přidejte následující řádky do konfigurace síťového rozhraní file: ETHTOOL_OPTS=”rx-queues 8 TX-queues 8″
  3. Restartujte síťovou službu.
    Po provedení změn restartujte síťovou službu a použijte novou konfiguraci. sudo systemctl restart sítě

Ručně:

  • Najděte procesory připojené ke každému uzlu pomocí: numactl –hardware lscpu
  • Najděte bitové masky pro každý z procesorů:
  • Za předpokladu jader 0-11 pro uzel 0: [1,2,4,8,10,20,40,80,100,200,400,800]
  • Najděte IRQ přiřazená k přiřazovanému portu: grep ethX /proc/interrupts a poznamenejte si hodnoty IRQ Např.ample, 181-192 pro 12 načtených vektorů.
  • Odešlete hodnotu afinity SMP do odpovídající položky IRQ. Všimněte si, že to je třeba provést pro každou položku IRQ: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity Zobrazit afinitu IRQ:
  • Chcete-li zobrazit afinitu IRQ pro všechna jádra: /scripts/set_irq_affinity -s ethX
  • Chcete-li zobrazit pouze jádra na místním soketu NUMA: /scripts/set_irq_affinity -s local ethX
  • Můžete si také vybrat řadu jader: /scripts/set_irq_affinity -s 40-0-8,16 ethX

POZNÁMKA
Skript set_irq_affinity podporuje příznak -s v ovladači i40e verze 2.16.11 a novější.
4.2 Fronty Tx/Rx
Výchozí počet front povolených pro každý port Ethernet ovladačem při inicializaci se rovná celkovému počtu CPU dostupných na platformě. To funguje dobře pro mnoho platforem a konfigurací pracovní zátěže. Na platformách s vysokým počtem jader a/nebo vysokou hustotou ethernetových portů však může tato konfigurace způsobit spory o zdroje. Proto může být v některých případech nutné upravit výchozí nastavení pro každý port v systému.
Výchozí počet front Tx/Rx se může lišit v závislosti na konkrétním modelu a verzi ovladače. Počet front lze upravit pomocí příkazu ethtool -L uvedeného níže.
POZNÁMKA
V těchto případech společnost Intel doporučuje snížit výchozí počet front pro každý port na počet procesorů dostupných v místním uzlu NUMA pro port adaptéru. V některých případech, když se pokoušíte vyvážit prostředky na implementacích s vysokým počtem portů, může být nutné tento počet ještě snížit.
Chcete-li upravit konfiguraci fronty:
Následující example nastaví port na 32 front Tx/Rx: ethtool -L ethX kombinované 32
Exampvýstup:
ethtool -l ethX
Parametry kanálu pro ethX: Přednastavené maxima:
RX: 96
TX: 96 XNUMX XNUMX
Ostatní: 1
Kombinace: 96
Aktuální nastavení hardwaru:
RX: 0
TX: 0 XNUMX XNUMX
Ostatní: 1
Kombinace: 32
4.3 Moderování přerušení
Adaptivní moderování přerušení je ve výchozím nastavení zapnuto a je navrženo tak, aby poskytovalo vyvážený přístup mezi nízkým využitím CPU a vysokým výkonem. Můžete však zkusit vyladit nastavení přerušení ručně, aby vyhovovalo vašemu případu použití.
Rozsah 0-235 mikrosekund poskytuje efektivní rozsah 4,310 250,000 až 2 XNUMX přerušení za sekundu. Hodnotu rx-μsecs-high lze nastavit nezávisle na rx-μsecs a tx-μsecs ve stejném příkazu ethtool a je také nezávislá na adaptivním algoritmu moderování přerušení. Základní hardware podporuje granularitu v XNUMXmikrosekundových intervalech, takže sousední hodnoty mohou mít za následek stejnou četnost přerušení.

  • Vypnutí adaptivního moderování přerušení: ethtool -C ethX adaptive-rx off adaptive-tx off
  • Zapnutí adaptivního moderování přerušení: ethtool -C ethX adaptive-rx on adaptive-tx on

Dobrým začátkem pro obecné ladění je 84 μs, neboli ~12000 84 přerušení/s. Pokud vidíte, že během provozu běží čítače rx_dropped (pomocí ethtool -S ethX), pak máte pravděpodobně příliš pomalý CPU, nedostatek vyrovnávacích pamětí z velikosti prstence adaptéru (ethtool -G) na udržení paketů po dobu XNUMX μs nebo nízkou rychlost přerušení.

  • Chcete-li nastavit moderování přerušení na pevnou rychlost přerušení 84 μs mezi přerušeními (12000 84 přerušení/s): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 62 Další hodnota, kterou můžete vyzkoušet, pokud nemáte maximální využití CPU XNUMX μs, je XNUMX. To využívá více CPU, ale obsluhuje vyrovnávací paměti rychleji a vyžaduje méně deskriptorů (velikost kruhu, ethtool -G).
  • Chcete-li nastavit moderování přerušení na pevnou rychlost přerušení 62 použití mezi přerušeními (16000 přerušení/s). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
    Pokud se během provozu zvýší čítače rx_dropped (pomocí ethtool -S ethX), máte pravděpodobně příliš pomalý CPU, nedostatek vyrovnávacích pamětí z velikosti kruhu adaptéru (ethtool -G) nebo příliš nízkou rychlost přerušení. Pokud nemáte maximální využití CPU, můžete zvýšit četnost přerušení snížením hodnoty ITR. To využívá více CPU, ale obsluhuje rychleji vyrovnávací paměti a vyžaduje méně deskriptorů (velikost kruhu, ethtool -G).
    Pokud je váš CPU na 100 %, pak se nedoporučuje zvyšovat četnost přerušení. Za určitých okolností, jako je zátěž vázaná na CPU, můžete chtít zvýšit hodnotu μs, abyste umožnili více času CPU pro jiné aplikace.
    Pokud požadujete výkon s nízkou latencí a/nebo máte dostatek CPU, které můžete věnovat síťovému zpracování, můžete moderování přerušení úplně zakázat, což umožní, aby se přerušení spouštěla ​​co nejrychleji.
  • Chcete-li zakázat moderování přerušení ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0

POZNÁMKA
Při spuštění se zakázaným moderováním přerušení může být četnost přerušení v každé frontě velmi vysoká. Zvažte zahrnutí parametru rx-usec-high pro nastavení horní hranice rychlosti přerušení. Následující příkaz zakáže adaptivní moderování přerušení a povolí maximálně 5 mikrosekund, než bude indikovat, že příjem nebo vysílání bylo dokončeno. Místo toho, aby výsledkem bylo až 200,000 50,000 přerušení za sekundu, omezuje celkový počet přerušení za sekundu na 20 5 pomocí parametru rx-usec-high. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 5 rx-usecs 80 txusecs 100 Zkuste nastavit časovač pro vysílání/příjem/slučování s vysokou prioritou na vyšší (150/200/25/20) nebo na nižší hodnotu zatížení (10/5)
4.4 Velikost prstenu
Pokud vidíte čítače rx_dropped v ethtool -S ethX (rx_dropped, rx_dropped.nic), nebo máte podezření na tlak mezipaměti s více aktivními frontami, můžete zkusit upravit velikost prstenu z výchozí hodnoty. Výchozí hodnota je 512, maximum je 4096.

  • Chcete-li zkontrolovat aktuální hodnoty: ethtool -g ethX
    Pokud máte podezření, že nedostatek vyrovnávací paměti způsobuje poklesy aktuální rychlosti přerušení, můžete zkusit nejprve maximum, potom minimum a pak pokračovat v binárním vyhledávání, dokud neuvidíte optimální výkon.
    Pokud existuje podezření na tlak mezipaměti (mnoho front je aktivních), snížení výchozích vyrovnávacích pamětí může pomoci Intel ® Data Direct I/O (Intel ® DDIO) pracovat efektivněji. Intel doporučuje vyzkoušet 128 nebo 256 na frontu, přičemž si je vědom toho, že může být nutné zvýšit četnost přerušení pomocí ethtool -C, aby se zabránilo zvýšení rx_dropped.
  • Nastavení velikosti prstenu na pevnou hodnotu: ethtool -G eth12 rx 256 tx 256

POZNÁMKA
Chcete-li opravit poklesy paketů Rx nalezené pomocí ethtool -S ethX|grep drop, zvažte zvětšení velikosti prstenu na 4096. Experimentujte, abyste našli nejlepší nastavení pro zátěž, ale dávejte pozor na nadměrné využití paměti s vyššími hodnotami.
4.5 Řízení toku
Řízení toku na vrstvě 2 může značně ovlivnit výkon TCP a doporučuje se jej deaktivovat pro většinu úloh. Potenciální výjimkou je nárazový provoz, kde výpadky nemají dlouhé trvání.
Řízení toku je ve výchozím nastavení zakázáno.

  • Chcete-li povolit řízení toku: ethtool -A ethX rx on tx on
  • Deaktivace řízení toku: ethtool -A ethX rx off tx off

POZNÁMKA
Chcete-li úspěšně povolit řízení toku, musíte mít propojovacího partnera schopného řízení toku.
4.6 Jumbo rámy
Když se očekávané provozní prostředí skládá z velkých bloků přenášených dat, může být výhodné povolit funkci jumbo frame. Podpora Jumbo Frames je povolena změnou maximální přenosové jednotky (MTU) na hodnotu vyšší, než je výchozí hodnota 1500. To umožňuje zařízení přenášet data ve větších paketech v rámci síťového prostředí. Toto nastavení může zlepšit propustnost a snížit využití CPU pro velké I/O zátěže. Může to však mít dopad na malé pakety nebo zátěže citlivé na latenci.
POZNÁMKA
Jumbo rámce nebo větší nastavení MTU musí být správně nakonfigurováno ve vašem síťovém prostředí.
Pomocí příkazu ifconfig zvětšete velikost MTU. Napřample, zadejte následující, kde je číslo rozhraní: ifconfig mtu 9000 nahoru
Případně můžete použít příkaz ip takto: ip link set mtu 9000 dev IP odkaz nastavit dev

Vyladění platformy (i40e nespecifické)

5.1 Nastavení systému BIOS

  • Povolte Intel® VT-d pro virtualizační úlohy.
  • Hyper-threading (logické procesory) může ovlivnit výkon. Experimentujte s tím, zapněte nebo vypněte pro svou pracovní zátěž.
  • Intel® Turbo Boost umožňuje jádrům CPU pracovat na vyšší frekvenci, než je základní frekvence CPU. Povolení Intel® Turbo Boost může zlepšit výkon pro mnoho pracovních zátěží, ale spotřebovává více energie na udržení jader na vyšší frekvenci. Experimentujte s vypnutím/zapnutím funkce Turbo Boost pro vaši pracovní zátěž.

POZNÁMKA
Turbo frekvence nejsou zaručeny, pokud platforma zažívá vysoké celkové využití CPU. Vyšší frekvence turba jádra se snižují s tím, jak se zvyšuje celkové využití CPU.
5.2 Řízení spotřeby
Správa napájení může ovlivnit výkon, zejména při pracovní zátěži s nízkou latencí. Pokud má výkon vyšší prioritu než snižování spotřeby energie, společnost Intel doporučuje experimentovat s omezením účinků řízení spotřeby. Existuje mnoho různých způsobů, jak omezit správu napájení pomocí nástrojů operačního systému, nastavení BIOSu a parametrů spouštění jádra. Vyberte si nejlepší metodu a úroveň, aby vyhovovaly vašemu prostředí.
5.2.1 Řízení stavu C
Omezení vstupu stavu C na CO nebo C1 zlepšuje výkon a zvyšuje využití energie.
Zakázání záznamu stavu CPU Package C6 může zlepšit výkon sítě. To však zvyšuje spotřebu energie.
K dispozici jsou následující možnosti:

  • Dynamicky ovládejte vstup do stavu C:
    OTEVŘENO
    /dev/cpu_dma_latency a zapište do něj maximální povolenou latenci.

POZNÁMKA
Existuje malý program nazvaný cpudmalatency.c, který lze stáhnout z komunity s otevřeným zdrojovým kódem, zkompilovat a spustit z příkazové řádky, aby se přesně toto provedlo.
Následující example umožňuje pět μs času probuzení, a tím umožňuje zadání C1: cpudmalatency 5 &

  • Omezte maximální stav C v nastavení spouštění jádra:
    Pro procesory Intel: intel_idle.max_cstates=1
    Pro jiné procesory než Intel: processor.max_cstates=1
  • Pomocí příkazu cpupower zkontrolujte a zakažte stav CPU C6: Zkontrolujte: cpupower monitor nebo cpupower idle-info
    Zakázat C6: cpupower idle-set -d3 nebo
    Zakázat C-stavy: cpupower idle-set -D0

Poznámky:

  1. Pokud má server škálovatelné procesory Intel® 4. generace Intel® Xeon®, zakažte stavy C na CPU. Když je funkce Hyper Threading povolena nebo zakázána, deaktivace stavů nečinnosti (-D0) zabrání jádrům v přechodu do stavu nízké spotřeby během období nečinnosti a sníží latenci procesoru při přechodu mezi nečinným a aktivním stavem.
  2. Řízení spotřeby škálovatelného procesoru Intel® 4. generace Intel® Xeon® je extrémně agresivní. Aby se jádra nedostala do stavu nízké spotřeby, zkuste snížit počet používaných jader, abyste je udrželi déle vzhůru (ethtool -L kombinovaný ). Také svažte přerušení na konkrétní jádra pomocí nastavené afinity irq (nejčastěji s -x local nebo seznam jader CPU) a zajistěte, aby pracovní zátěž běžela na stejných jádrech s taskset nebo numactl. To zlepšuje výkon udržováním aktivních jader a optimalizací zpracování přerušení.

Povolit C6:
cpupower idle-set -d3
Povolit C-stavy:
cpupower idle-set -E

  • Další metodou je použití vyladěného nástroje (součástí mnoha distribucí Linuxu) k nastavení profesionálního výkonufile. Tyto profiles upravit několik nastavení operačního systému, která mohou ovlivnit výkon mnoha aplikací. Bylo zjištěno, že propustnost sítě profile poskytuje zlepšení většiny pracovních zátěží.
    Kontrola:
    tuned-adm aktivní
    Soubor:
    tuned-adm profile síťová propustnost
    POZNÁMKA
    Pro výše uvedené příkazy musí být spuštěna služba Tuned. Pro kontrolu/restartování použijte tuned: systemctl status tuned systemctl restart tuned
    Můžete také zakázat jakoukoli položku C-state přidáním následujícího do zaváděcího řádku jádra:
    nečinný=anketa
  • Omezte stav C prostřednictvím nastavení správy napájení systému BIOS, které může mít výkon pro profesionályfile k dispozici.
    Nástroje jako turbostat nebo x86_energy_perf_policy lze použít ke kontrole nebo nastavení nastavení správy napájení.

5.2.2 Správa napájení PCIe
Active-State Power Management (ASPM) umožňuje nižší stav spotřeby pro připojení PCIe, když se aktivně nepoužívají. To může způsobit vyšší latenci na síťových zařízeních PCIe, proto Intel doporučuje vypnout ASPM pro zátěže citlivé na latenci. Zakažte ASPM přidáním následujícího do zaváděcího řádku jádra: pcie_aspm=off
5.2.3 Škálování frekvence CPU
Škálování frekvence CPU (neboli škálování rychlosti CPU) je technika správy napájení Linuxu, při které se rychlost systémových hodin upravuje za běhu, aby se šetřila energie a teplo. Stejně jako C-stavy to může způsobit nežádoucí latenci síťových připojení.
Nástroj cpupower lze také použít ke kontrole a úpravě výchozích hodnot a limitů výkonu CPU:

  • Zkontrolujte: monitor cpupower popř
  • Nastavte CPU do režimu výkonu: cpupower frequency-set -g performance

POZNÁMKA
Úpravy limitů frekvence CPU mohou mít dopad na mnoho pracovních zátěží a mohou deaktivovat další funkce, jako je režim CPU turbo.
Chcete-li zakázat škálování frekvence CPU, zakažte službu napájení CPU pomocí následujících příkazů:
systemctl stop cpupower.service
systemctl zakázat cpupower.service
5.2.4 Další pokyny pro řízení spotřeby
Další podrobnosti jsou uvedeny v tomto vyšším stupniview z mnoha funkcí správy napájení v procesorech Intel® Xeon® Scalable 3. generace a také návod, jak lze tyto funkce integrovat na úrovni platformy: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Intel® Turbo Boost zrychluje procesor v případě potřeby, ale může spotřebovávat další energii. Vypnutí funkce Turbo Boost udržuje procesor na stabilní rychlosti a poskytuje vám konzistentní úroveň výkonu pro konkrétní pracovní zatížení.
5.4 Firewally
Firewally mohou ovlivnit výkon, zejména výkon latence.
Pokud to není nutné, vypněte iptables/firewalld.
5.5 Nastavení aplikace
Často jediné vlákno (které odpovídá jedné síťové frontě) nestačí k dosažení maximální šířky pásma. Některé architektury platforem, jako je AMD, mají tendenci zahazovat více paketů Rx s jedním vláknem ve srovnání s platformami s procesory Intel.
Zvažte použití nástrojů, jako je taskset nebo numactl, k připnutí aplikací k uzlu NUMA nebo jader CPU místního síťového zařízení. U některých úloh, jako je I/O úložiště, přináší přesun aplikace do nelokálního uzlu výhodu.
Experimentujte se zvýšením počtu vláken používaných vaší aplikací, pokud je to možné.
Verze jádra 5.6
Většina moderních in-box jader je přiměřeně dobře optimalizována pro výkon, ale v závislosti na vašem případu použití může aktualizace jádra poskytnout lepší výkon. Stažení zdrojového kódu vám také umožňuje povolit/zakázat určité funkce před sestavením jádra.
5.7 Nastavení operačního systému/jádra
Další informace o obecném ladění operačního systému naleznete v průvodcích laděním operačního systému, jako je například Průvodce laděním výkonu sítě Red Hat Enterprise Linux.
Některé běžné parametry k ladění jsou uvedeny v následující tabulce. Všimněte si, že toto jsou pouze navrhované výchozí body a jejich změna oproti výchozím hodnotám může zvýšit zdroje používané v systému. Ačkoli zvýšení hodnot může pomoci zlepšit výkon, je nutné experimentovat s různými hodnotami, abyste zjistili, co nejlépe funguje pro daný systém, pracovní zátěž a typ provozu.
Parametry jádra lze konfigurovat pomocí nástroje sysctl v Linuxu, jak je uvedeno níže.
Na view výchozí hodnoty pro rmem a wmem v systému:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
Nastavte hodnoty na max (16 MB):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Velikosti vyrovnávací paměti soketu, známé také jako vyrovnávací paměť pro příjem (rmem) a vyrovnávací paměť pro vysílání (wmem), jsou systémové parametry, které určují množství paměti vyhrazené pro příchozí a odchozí síťový provoz.
Spuštění sysctl bez argumentu -w vypíše parametr s jeho aktuálním nastavením.

Nastavení zásobníku Popis
net.core.rmem_default Výchozí velikost přijímacího okna
net.core.wmem_default Výchozí velikost okna přenosu
net.core.rmem_max Maximální velikost přijímacího okna
net.core.wmem_max Maximální velikost přenosového okna
net.core.optmem_max Maximum Option Memory Buffers
net.core.netdev_max_backlog Backlog nezpracovaných paketů před tím, než jádro začne zahazovat
net.ipv4.tcp_rmem Rezervní paměť pro čtecí vyrovnávací paměti TCP
net.ipv4.tcp_wmem Rezervní paměť pro TCP send buffery

Jádro, síťový zásobník, obslužná rutina paměti, rychlost CPU a parametry správy napájení mohou mít velký vliv na výkon sítě. Běžným doporučením je použít pro propustnost sítěfile pomocí naladěného příkazu. Tím se upraví několik nastavení operačního systému a upřednostní se síťové aplikace.
Kontrola:
tuned-adm aktivní
Soubor:
tuned-adm profile síťová propustnost
5.8 Nevyřízené položky síťového zařízení
Tato funkce pomáhá zlepšit výkon sítě efektivní správou příchozího provozu, snížením ztráty paketů, snížením latence a zvýšením propustnosti. To vede k lepší uživatelské zkušenosti a rychlejší odezvy systému.
Ve výchozím nastavení je povolena ve většině operačních systémů Linux. Chcete-li zkontrolovat výchozí hodnotu:
sysctl net.core.netdev_max_backlog
Maximální hodnota pro netdev_max_backlog se může lišit v závislosti na faktorech, jako je verze jádra, hardware, paměť a pracovní zatížení. V mnoha případech je 8192 považováno za dobrou hodnotu. sysctl -w net.core.netdev_max_backlog=8192
5.9 Konfigurace a ladění specifické pro platformu
5.9.1 4. generace škálovatelných procesorů Intel® Xeon®

Řízení spotřeby procesoru Intel® 4. generace Intel® Xeon® Scalable Intel® je extrémně agresivní ve srovnání s procesory Intel® Xeon® Scalable 3. generace. Aby se jádra nedostala do stavu nízké spotřeby, zkuste snížit počet používaných jader, abyste je udrželi déle vzhůru.
Doporučená nastavení Bios pro nejvyšší výkon

  1. Hyper-threading povolí/zakáže (na základě požadavků na pracovní zátěž a výkonnostních cílů) na CPU.
  2. Nastavte systém profile na Performance pro maximální výkon.
    POZNÁMKA
    To má za následek vyšší spotřebu energie
  3. Nastavte správu napájení CPU na Maximální výkon, abyste upřednostnili maximální výkon CPU před energetickou účinností.
  4. Povolit Turbo Boost. Vypnutí funkce Turbo Boost v nastavení systému BIOS obvykle zabrání procesoru v dynamickém zvýšení rychlosti hodin nad základní frekvenci.
  5. POZNÁMKA
    Deaktivace funkce Turbo Boost může být vhodná pro určité případy použití, kdy je konzistentní výkon, energetická účinnost nebo řízení teploty upřednostňováno před maximálním výkonem.
  6. Vypněte funkci Single Root I/O Virtualization (SR-IOV), pokud systém nevyužívá virtualizační technologie.
  7. Deaktivujte C-stavy, abyste dali CPU pokyn, aby zůstal aktivní a zabránil vstupu do hlubších klidových stavů.
  8. Deaktivujte C1E, abyste zajistili, že CPU zůstane aktivní a nepřejde do klidového stavu C1E.
  9. Nastavte základní frekvenci na maximum, abyste dali systému pokyn, aby pracoval na nejvyšší dostupné frekvenci.
  10. Na platformách Dell nastavte emulaci jádra MADT (Multiple APIC Description Table) na lineární (nebo Round-Robin v závislosti na systému BIOS), abyste zajistili jasné a předvídatelné mapování jader CPU.

Doporučená ladění na úrovni OS pro optimalizovaný výkon

  1. Nastavte regulátor škálování frekvence CPU na výkon. cpupower frequency-set -g performance cpupower frekvence-info
  2. Zakázat C-stavy. cpupower idle-set -D0
  3. Nastavte vyrovnávací paměti jádra Rx (rmem) a Tx (wmem) na maximální hodnotu. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
  4. Nastavit nevyřízené položky síťového zařízení. sysctl -w net.core.netdev_max_backlog=8192
  5. Sada vyladěná profile (propustnost/latence závisí na pracovní zátěži).
    tuned-adm profile síťová propustnost

Doporučené ladění úrovně adaptéru pro optimalizovaný výkon

  1. Omezte počet front pro provoz aplikací. Použijte minimální počet front požadovaných k udržení přidružených jader CPU aktivních, abyste jim zabránili vstoupit do hlubších klidových stavů (upravte podle pracovní zátěže): ethtool -L dohromady 32
  2. Nastavte míru moderování přerušení. ethtool -C adaptive-rx off adaptive-tx off rx-usecs-high 50 rx-usecs 50 tx-usecs 50
    Zkuste nastavit časovač pro vysílání/příjem/slučování s vysokou prioritou na vyšší (80/100/150/200) nebo nižší (25/20/10/5), abyste našli optimální hodnotu pro pracovní zátěž.
  3. Nastavte velikosti Rx/Tx prstenů. ethtool -G rx 4096 TX 4096
    POZNÁMKA
    Pokud vidíte, že paket Rx klesá s ethtool -S| grep drop, zkuste zmenšit velikost prstenu na <4096. Pokuste se najít optimální hodnotu pro zátěž, kde nedochází k zahazování paketů.
  4. Nastavte afinitu IRQ. Použijte lokální jádra k NIC nebo specifické mapování jádra (kde # jader se rovná počtu front nastavenému v 1 na stránce 26. systemctl stop irqbalance set_irq_affinity -X local NEBO set_irq_afinity -X

5.9.2 AMD EPYC
Procesory AMD EPYC jsou výkonné procesory vyrobené pro servery a datová centra, postavené na architektuře Zen společnosti AMD. Níže uvedená nastavení pocházejí ze 4. generace EPYC řady AMD.
Doporučená nastavení systému BIOS pro nejvyšší výkon

  1. Povolením vlastního režimu umožníte uživatelům upravit výkon procesoru, spotřebu energie a další nastavení. To pomáhá při doladění systému pro nejlepší rovnováhu mezi výkonem a energetickou účinností.
  2. Povolte zvýšení výkonu jádra, aby CPU automaticky zvýšilo svou rychlost, aby zvládlo náročnější úkoly, čímž se zlepší celkový výkon.
  3. Zakažte globální řízení stavu C, abyste zabránili CPU vstoupit do hlubších stavů úspory energie známých jako stavy C, které mohou zachovat odezvu.
    POZNÁMKA
    Zakázání C-stavů může způsobit další spotřebu energie a zvýšení teplot. Sledujte obě z hlediska pracovní zátěže.
  4. Povolte/zakažte Simultaneous Multithreading (SMT) na CPU na základě požadavků na pracovní zátěž a výkonnostních cílů. SMT je ekvivalentem Hyper Threading na procesorech Intel.
    POZNÁMKA
    Pro optimalizovaný výkon viz Vyladění nastavení ovladače i40e na straně 13 a Vyladění platformy (i40e nespecifické) na straně 19, kde najdete doporučené vyladění úrovně operačního systému a adaptéru.

Lepení adaptéru

Linux bonding je výkonná funkce, která může výrazně zlepšit výkon sítě, redundanci a odolnost proti chybám v serverových prostředích. Je však důležité poznamenat, že ke správnému fungování vyžaduje kompatibilní síťový hardware a správnou konfiguraci na serveru i na přepínači.
Ovladač propojení v systému Linux umožňuje agregovat více fyzických síťových rozhraní do spojeného rozhraní. Toto spojené rozhraní se zobrazí jako jediné virtuální síťové rozhraní pro operační systém a aplikace.
POZNÁMKA
Vazba je logické rozhraní, takže není možné nastavit afinitu CPU přímo na rozhraní vazby (napřample, vazba0). To znamená, že nemá přímou kontrolu nad zpracováním přerušení nebo afinitou CPU. Afinita CPU musí být nakonfigurována pro základní rozhraní, která jsou součástí vazby.
Lepení poskytuje několik režimů operací, z nichž každý má své vlastní vlastnosti.

Režim  Typ
0 Round Robin
1 Aktivní záloha
2 XOR
3 Přenos
4 LACP
5 Vyvážení zatížení přenosu
6 Adaptivní vyvážení zátěže

Existují různé metody, jak vytvořit vazbu v Linuxu. Jednou z nejběžnějších metod je použití konfigurace sítě files (napřample, /etc/network/ interfaces nebo /etc/sysconfig/network-scripts/ifcfg-bondX).
Konfigurace pomocí konfigurace sítě Files
Následující kroky vytvoří propojení prostřednictvím konfigurace sítě files.

  1. Vyberte dva nebo více portů NIC pro propojení (napřample, ethX a ethY)
  2. Otevřete Konfigurace NIC Filev /etc/sysconfig/network-scripts/ pro požadované rozhraní NIC (napřample, vi ifcfg-ethX a vi ifcfg-ethY) a připojte následující text:
    MASTER=bondN [Poznámka: N je celé číslo uvádějící číslo vazby.] SLAVE=ano
  3. Vytvořte skript sítě dluhopisů file pomocí vi /etc/sysconfig/networkscripts/ifcfg-bondN a zadejte následující text:
    DEVICE=bondN [Poznámka: N je celé číslo uvádějící číslo vazby] ONBOOT=ano USERCTL=ne BOOTPROTO=dhcp (nebo) žádné
    IPADDR=200.20.2.4 [vyžadováno, pokud BOOTPROTO=none] NETMASK=255.255.255.0 [povinné, pokud BOOTPROTO=none] NETWORK=200.20.2.0 [vyžadováno, pokud je BOOTPROTO=none] BROADCAST ifrequired.200.20.2.255. BOOTPROTO=žádný] BONDING_OPTS=”mode=1 miimon=100″
    POZNÁMKA
    Režim může být libovolné celé číslo od 0 do 6 na základě požadavku.
  4. Restartujte síťové služby pomocí servisního restartu sítě nebo systemctl restartu NetworkManager.service

Odstraňování problémů s výkonem

7.1 Využití CPU
Zkontrolujte využití procesoru na jádro, když je spuštěna zátěž.
Všimněte si, že využití na jádro je pro výkon důležitější než celkové využití CPU, protože poskytuje představu o využití CPU na síťovou frontu. Pokud máte pouze několik vláken, na kterých běží síťový provoz, může se používat pouze několik jader. Pokud jsou však tato jádra na 100 %, pak je propustnost vaší sítě pravděpodobně omezena využitím CPU a je čas provést následující:

  1. Vylaďte moderování IRQ/velikost vyzvánění, jak je popsáno v části Moderování přerušení.
  2. Zvyšte počet aplikačních vláken, abyste rozložili zátěž CPU na více jader. Pokud všechna jádra běží na 100 %, může být vaše aplikace vázána spíše na CPU než na síť.

Běžně dostupné nástroje:

  • nahoře
    — Stisknutím 1 rozbalte seznam CPU a zkontrolujte, které z nich jsou používány.
    — Všimněte si úrovně využití.
    — Všimněte si, které procesy jsou uvedeny jako nejaktivnější (nahoře seznamu).
  • mpstat
    Následující exampPříkazový řádek le byl testován na Red Hat Enterprise Linux 7.x.
    Zobrazuje využití procesoru na jádro (nalezením celkového procenta nečinnosti a odečtením od 100) a hodnoty nad 80 % zvýrazní červeně. mpstat -P VŠECHNY 1 1 | grep -v Průměr | ocas -n +5 | hlava -n -1 | awk '{ print (100-$13)}' | egrep -color=always '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | sloupec
  • perf top Hledejte, kde se cykly utrácejí.

7.2 Čítače i40e
Ovladač i40e poskytuje dlouhý seznam čítačů pro ladění a monitorování rozhraní pomocí příkazu ethtool -S ethX. Může být užitečné sledovat výstup při běžící zátěži a/nebo porovnávat hodnoty čítače před a po spuštění zátěže.

  • Chcete-li získat úplný výpis čítačů i40e: ethtool -S ethX
  • Chcete-li sledovat pouze nenulové čítače: watch -d (ethtool -S ethX) | egrep -v :\ 0 | sloupec
    Některé věci, které je třeba hledat:
  • rx_dropped znamená, že CPU neobsluhuje vyrovnávací paměti dostatečně rychle.
  • port.rx_dropped znamená, že něco není ve slotu/paměti/systému dostatečně rychlé.

7.3 Síťové čítače
Zkontrolujte netstat -s před/po spuštění zátěže.
Netstat shromažďuje informace o síti ze všech síťových zařízení v systému. Výsledky proto mohou být ovlivněny jinými sítěmi, než je testovaná síť. Výstup z netstat -s může být dobrým indikátorem problémů s výkonem v operačním systému Linux nebo v jádře. Další informace o obecném ladění operačního systému naleznete v průvodcích laděním operačního systému, jako je například Průvodce laděním výkonu sítě Red Hat Enterprise Linux.
7.4 Systémové protokoly
Zkontrolujte systémové protokoly na chyby a varování (/var/log/messages, dmesg).
7.5 Nástroj Intel svr-info
Intel poskytuje nástroj svr-info (viz https://github.com/intel/svr-info) pro Linux, který zachycuje relevantní hardwarové a softwarové detaily ze serveru. Výstup svr-info může být mimořádně užitečný k identifikaci systémových úzkých míst nebo nastavení/ladění, která nejsou optimalizována pro pracovní zátěž. Při otevírání případu podpory s Intelem pro problémy s výkonem souvisejícím s Ethernetem nezapomeňte zahrnout výstup svr-info (text file) pro každý server Linux v testovací konfiguraci.

  1. Stáhněte a nainstalujte svr-info:
    wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
    ./svr-info
    > hostname.txt
  2. Sbírejte výstup:
    ./svr-info > hostname.txt
  3. Připojte jeden text (.txt) file pro každý server do vašeho případu podpory Intel k analýze.

Doporučení pro běžné scénáře výkonu

8.1 Přesměrování IP

  • Aktualizujte jádro.
    Některá nedávná jádra in-distro snížila výkon směrování kvůli změnám jádra ve směrovacím kódu, počínaje odstraněním mezipaměti směrování kvůli bezpečnosti. Nedávná jádra mimo distribuci by měla mít záplaty, které zmírní dopad těchto změn na výkon a mohou poskytnout lepší výkon.
  • Zakázat hyper-threading (logická jádra).
  • Upravte parametry spouštění jádra.
    — Vynucení vypnutí iommu (intel_iommu=off nebo iommu=off) ze zaváděcí linky jádra, pokud to není nutné pro virtualizaci
    — Vypněte správu napájení: processor.max_cstates=1 idle=poll pcie_aspm=off
  • Omezte počet front tak, aby se rovnal počtu jader na místním soketu (v tomto příkladu 12ample). ethtool -L ethX kombinovaný 12
  • Pin přeruší pouze místní zásuvku. set_irq_affinity -X místní ethX NEBO set_irq_affinity -X místní ethX
    POZNÁMKA
    -X nebo -x lze použít v závislosti na pracovní zátěži.
  • Podle potřeby změňte velikosti prstenu Tx a Rx. Vyšší hodnota vyžaduje více zdrojů, ale může poskytnout lepší sazby za přeposílání. ethtool -G ethX rx 4096 tx 4096
  • Zakázat GRO při směrování.
    Kvůli známému problému s jádrem musí být GRO při směrování/předávání vypnuto. ethtool -K ethX gro off kde ethX je ethernetové rozhraní, které má být upraveno.
  • Vypněte adaptivní moderování přerušení a nastavte statickou hodnotu. ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64

POZNÁMKA
V závislosti na typu procesoru a pracovní zátěži lze parametry koalescence pro RX a TX upravit pro lepší výkon (nebo menší ztráty snímků).

  • Vypněte firewall. sudo systemctl zakázat firewalld sudo systemctl stop firewalld
  • Povolit přesměrování IP. sysctl -w net.ipv4.ip_forward=1
  • Nakonfigurujte maximální hodnoty velikosti vyrovnávací paměti pro příjem a odesílání soketu. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216

POZNÁMKA
V závislosti na pracovní zátěži nebo požadavcích lze tyto hodnoty změnit z výchozího nastavení.
8.2 Nízká latence

  • Vypněte hyper-threading (logická jádra).
  • Ujistěte se, že síťové zařízení je lokální na numa core 0.
  • Připněte benchmark na jádro 0 pomocí sady úloh -c 0.
  • Vypněte irqbalance pomocí systemctl stop irqbalance nebo systemctl disable irqbalance
  • Spusťte skript spřažení, aby se rozšířil mezi jádra. Zkuste místní nebo všechny.
  • Vypněte moderování přerušení. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- high 0
  • Omezte počet front tak, aby se rovnal počtu jader na místním soketu (v tomto příkladu 32ample). ethtool -L ethX kombinovaný 32
  • Přerušení pinů pouze do místního soketu (skript přibalený ke zdroji ovladače i40e). set_irq_affinity -X místní ethX
  • Použijte zavedený benchmark jako netperf -t TCP_RR, netperf -t UDP_RR nebo NetPipe. netperf -t TCP_RR nebo netperf -t UDP_RR
  • Připněte benchmark k jednomu jádru v místním uzlu NUMA. sada úkolů -c

Intel® Ethernet řady 700
Průvodce laděním výkonu Linuxu
prosince 2024
Doc. č.: 334019, Rev.: 1.2

Dokumenty / zdroje

Intel Ethernet 700 Series Linux Performance Tuning [pdfUživatelská příručka
334019, Ethernet 700 Series Linux Performance Tuning, Ethernet 700 Series, Linux Performance Tuning, Performance Tuning, Tuning

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *