Intel ® Ethernet 700 sorozat
Linux Performance Tuning Guide
NEX Cloud Networking Group (NCNG)
Rev. 1.2
2024. december
Revíziótörténet
Felülvizsgálat | Dátum | Megjegyzések |
1.2 | 2024. december | · Kiegészítő energiagazdálkodási útmutató hozzáadva. · Hozzáadott Intel* Turbo Boost. · Hozzáadott hálózati eszköz hátralék. · Platform-specifikus konfigurációk és hangolás hozzáadva. · Hozzáadott 4. generációs Intel* %eon* méretezhető processzorok. · Hozzáadott AMD EPYC. · Frissített rendszerhardver-képességek ellenőrzése. · Frissített iPerf2. · Frissített iPerf3. · Frissített Tx/Rx sorok. · Frissített megszakítási moderálás. · Frissített gyűrűméret. · Frissített Platform Tuning (i40e nem specifikus). · Frissített BIOS-beállítások. · Frissített C-State Control. · Frissített CPU-frekvencia-skálázás. · Frissített alkalmazásbeállítások. · Frissített operációs rendszer/kernelbeállítások. · Frissített IP-továbbítás. · Frissített alacsony késleltetés. |
2023. augusztus | A dokumentum változásai a következőket tartalmazzák: · Kapcsolódó hivatkozások hozzáadva. · Hozzáadott Győződjön meg arról, hogy a DDP-csomag megfelelően betöltődik. · iPerf2 hozzáadva. · iPerf3 hozzáadva. · Netperf hozzáadva. · Frissített IRQ Affinity. · Tx/Rx sorok hozzáadva. · Frissített gyűrűméret. · Jumbo keretek hozzáadva. · Adapterragasztás hozzáadva. · Hozzáadott Intel svr-info eszköz. |
|
1.0 | 2016. március | Első kiadás (Intel Public). |
Bevezetés
Ez az útmutató útmutatást ad a környezetek hangolásához az optimális hálózati teljesítmény érdekében az Intel® Ethernet 700 sorozatú hálózati kártyák használatával Linux környezetben. Azokra a hardver-, illesztőprogram- és operációsrendszer-feltételekre és beállításokra összpontosít, amelyek javíthatják a hálózati teljesítményt. Meg kell jegyezni, hogy a hálózati teljesítményt számos külső hatás befolyásolhatja, ezek közül csak a leggyakoribb és legdrámaibbakat tárgyalja ez az útmutató.
1.1 Kapcsolódó hivatkozások
- Felhasználói útmutató az összes Windows és Linux rendszert támogató Intel ® Ethernet adapterhez és eszközhöz:
Intel ® Ethernet adapterek és eszközök használati útmutatója - Műszaki adatlap:
Intel ® Ethernet Controller X710/XXV710/XL710 adatlap - Teljes szoftvercsomag minden Intel ® Ethernet termékhez (az összes illesztőprogram, NVM, eszköz stb. letöltése):
Intel® Ethernet Adapter teljes illesztőprogram-csomag - NVM (nem felejtő memória) frissítési csomag:
Nem felejtő memória (NVM) frissítő segédprogram Intel ® Ethernet hálózati adapter 700 sorozathoz - svr-info eszköz Linuxhoz, amely rögzíti a releváns hardver- és szoftverrészleteket a szerverről: https://github.com/intel/svr-info
- DDP technológiai útmutató:
Intel ® Ethernet 700 sorozatú dinamikus eszközszemélyreszabási (DDP) technológiai útmutató
Kezdeti ellenőrző lista
2.1 Az illesztőprogram/firmware verzió frissítése
Ellenőrizze az illesztőprogram/firmware verziókat az ethtool -i ethx paranccsal.
Szükség szerint frissítse a következőket:
- Frissítse az i40e illesztőprogramot
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 - Frissítse a firmware-t
https: //downloadcenter.intel.com/download/24769/NVM-Update-Utility-for-Intel- Ethernet-ConvergedNetwork-Adapter-XL710-X710-Series
2.2 Olvassa el a README-t
Ellenőrizze az ismert problémákat, és szerezze be a legújabb konfigurációs utasításokat a README-ból file az i40e forráscsomag része.
2.3 Ellenőrizze, hogy a PCI Express (PCIe) bővítőhelye x8-as
Néhány PCIe x8 bővítőhely valójában x4 bővítőhelyként van konfigurálva. Ezek a bővítőhelyek nem rendelkeznek elegendő sávszélességgel a teljes vonalsebességhez a két- és négyportos eszközökkel. Ezen túlmenően, ha egy PCIe v3.0-kompatibilis adaptert helyez be egy PCIe v2.x foglalatba, nem érheti el a teljes sávszélességet. A szoftvereszköz-illesztőprogram észleli ezt a helyzetet, és a következő üzenetet írja a rendszernaplóba:
Az ehhez a kártyához elérhető PCI-Express sávszélesség nem elegendő az optimális teljesítményhez. Az optimális teljesítményhez x8-as PCI-Express bővítőhely szükséges.
Ha ez a hiba jelentkezik, a probléma megoldásához helyezze át az adaptert egy valódi PCIe v3.0 x8 bővítőhelyre.
2.4 Ellenőrizze a rendszer hardver képességeit
10 Gb/s, 25 Gb/s és 40 Gb/s Ethernet esetén van néhány minimális CPU- és rendszerkövetelmény. Általánosságban elmondható, hogy egy modern szerverosztályú processzor és a platform optimális memóriakonfigurációja elegendő, de az igények a munkaterheléstől függően változnak. Minden memóriacsatornát fel kell tölteni, és a memóriateljesítmény módot engedélyezni kell a BIOS-ban. Ellenőrizze, hogy a CPU és a memória konfigurációja képes-e támogatni a munkaterheléshez szükséges hálózati teljesítményt.
JEGYZET
Az XL710 egy 40 GbE vezérlő. A vezérlőt használó 2 x 40 GbE adapter nem 2 x 40 GbE, hanem 1 x 40 GbE, aktív tartalék porttal. Amikor mindkét portot érintő vonalsebességű forgalmat próbálunk használni, a belső kapcsoló telített, és a két port közötti kombinált sávszélesség SO Gbps-ra korlátozódik.
2.4.1 Kernel rendszerindítási paraméterei
Ha az Intel® Virtualization Technology for Directed I/O (Intel® VT-d) engedélyezve van a BIOS-ban, az Intel azt ajánlja, hogy az IOMMU legyen átjelentkezési módban az optimális gazdagép-hálózati teljesítmény érdekében. Ez kiküszöböli a DMA többletterhelését a gazdagép forgalmában, miközben lehetővé teszi, hogy a virtuális gépek (VM-ek) továbbra is élvezhessék az Intel® VT-d előnyeit. Ez úgy érhető el, hogy a következő sort adjuk a kernel rendszerindítási paramétereihez: fommu-pt.
2.5 Győződjön meg arról, hogy a DDP-csomag megfelelően betöltődik
A 140ea és 140eb alapmeghajtók nem támogatják közvetlenül a Dynamic Device Personalization (DDP) funkciót. A DDP 700-as sorozatú eszközökkel való használatához egy DDP profile a testpmd alkalmazással alkalmazható.
További részletek a DDP pro-rólfiles, és hogyan kell alkalmazni a DDP pro-tfile A 700-as sorozatú eszközökön a testpmd használatával tekintse meg az Intel® Ethernet 700 Series Dynamic Device Personalization (DDP) technológiai útmutatót.
Annak ellenőrzésére, hogy egy DDP profile sikeresen betöltve:
testpmd> ddp get list 0 Profile száma: 1
JEGYZET
Ha a profifile a szám 0, nincs DDP csomag betöltve. DDP-csomagbetöltési hiba esetén az eszköz alapértelmezés szerint csökkentett módba kapcsol, és számos teljesítményfunkció nem érhető el. Ha hibák vannak a DDP-csomag betöltésével kapcsolatban, az teljesítményproblémákat okoz. A hibaelhárítási lépésekért tekintse meg az Inte/* Ethernet 700 Series Dynamic Device Personalization (DDP) technológiai útmutatót.
Alapszintű teljesítménymérés és hangolási módszertan
3.1 Hálózati teljesítményre vonatkozó referenciaértékek
A hangolási gyakorlat megkezdése előtt fontos, hogy megfelelő alapszintű méréssel rendelkezzen a hálózati teljesítményről. Általában az adott alkalmazás/munkaterhelés kezdeti mérésén túlmenően célszerű szabványos hálózati teljesítmény-referenciaértéket is használni annak ellenőrzésére, hogy a hálózati eszköz jó állapotban van-e.
Az egységes rendszer optimalizálásához a netperf vagy iperf és a NetPIPE mind szilárd, nyílt forráskódú ingyenes eszközök, amelyek lehetővé teszik a kapcsolat hangsúlyozását és a teljesítményproblémák diagnosztizálását.
A Netperf erős az átviteli sebesség és a késleltetés tesztelésére is. A NetPIPE egy késleltetés-specifikus eszköz, de bármilyen környezetre lefordítható.
JEGYZET
A netperf TCP_RR tesztje tranzakció/sec értékben adja vissza a késleltetést. Ez egy oda-vissza szám. Az egyirányú késleltetés a következő egyenlettel számítható ki:
Késés (usec) = (1⁄2) / [Tranzakciók/mp] * 1,000,000 XNUMX XNUMX
3.1.1 iPerf2
Az Intel az iperf2-t ajánlja az iperf3 helyett a legtöbb benchmarking helyzethez, mivel az egyszerű használat és több szál támogatása egyetlen alkalmazáspéldányban. Az Intel azt javasolja, hogy a -P opcióval futtasson 2-4 szálal a 25G-s kapcsolatokhoz, és körülbelül 4-6 szálal a 40G-s kapcsolatokhoz.
- Egyirányú forgalom futtatása az ügyféltől a kiszolgálóig: Szerver parancs plample: iperf2 -s
Kliens parancs plample: iperf2 -c -P - Kétirányú forgalom futtatása az ügyféltől a szerverig (és fordítva): Szerver parancs plample: iperf2 –s –p
Kliens parancs plample:
iperf2 -c -o -P --teljes duplex VAGY
iperf2 -c -o -P –d
JEGYZET
Az iperf2 -full-duplex és -d beállításai lehetővé teszik a felhasználó számára, hogy kétirányú tesztelést végezzen. A –full-duplex opció azonban kifejezetten a teljes duplex tesztelésre összpontosít.
JEGYZET
Ha az iperf2-t több kiszolgálóporton teszteli, a -d jelző hozzáadható a szerver parancshoz, hogy az összes kiszolgálói munkamenetet a háttérben futtassa ugyanabból a terminálablakból. A -d jelző akkor is használható, ha a szerver parancs a szkript for-ciklusába van beágyazva.
JEGYZET
Ha a hálózati átviteli tesztet egyetlen adatfolyammal/szállal futtatja (plample: P1), előfordulhat, hogy az AMD processzorok nem biztosítják a várt átvitelt, különösen a nagyobb sávszélességű hálózati kártyák (ha a sebesség >= 25G sávszélesség). Ennek eredményeként a nagyobb átviteli sebesség elérése érdekében alkalmazást kell rögzíteni bizonyos magokhoz. Lásd: Alkalmazásbeállítások, 22. oldal.
3.1.2 iPerf3
Ha iperf3-at használunk, az alkalmazás több példányára van szükség az Advan eléréséheztaga többszálas, RSS- és hardveres sorok közül. Az Intel azt javasolja, hogy 2-4 alkalmazás-munkamenettel futtasson 25G-s kapcsolatokhoz, és körülbelül 4-6 munkamenettel 40G-s kapcsolatokhoz. Minden munkamenetnek egyedi TCP-portértéket kell megadnia a -p kapcsoló használatával.
- Egyirányú forgalom futtatása az ügyféltől a szerverig:
Szerver parancs plample:
iperf3 -s -p
Kliens parancs plample:
iperf3 -c -o - Kétirányú forgalom futtatása az ügyféltől a szerverig (és fordítva):
Szerver parancs plample:
iperf3 –s –p
Kliens parancs plample: iperf3 -c -o -P –-bidir - Az iperf3 több példányának (szálának) elindításához a javasolt for-loop használata a szálak TCP-portokhoz való leképezéséhez, és az iperf3 futtatása a háttérben a & használatával több folyamat párhuzamos létrehozásához.
Szerver parancs plample, indítson 4 szálat: port=””; i-nek a 0..3-ban; do port=520$i; bash -c "iperf3 -s -p $port &"; kész; Kliens parancs plample, 4 szál indítása – Átviteli tesztport=””; i-nek a 0..3-ban; do port=520$i; bash -c "iperf3 -c $szerverIP -p $port &"; kész; Kliens parancs plample, 4 szál indítása – Test port fogadása=””; i-nek a 0..3-ban; do port=520$i; bash -c "iperf3 -R -c $szerverIP -p $port &"; kész; 40G kapcsolatok esetén növelje meg a for-hurkot, hogy akár 6 példányt/szálat hozzon létre.
JEGYZET
Ha a hálózati átviteli tesztet egyetlen adatfolyammal/szállal futtatja (plample: P1), előfordulhat, hogy az AMD processzorok nem biztosítják a várt átvitelt, különösen a nagyobb sávszélességet
NIC-k (ha a sebesség >= 25G sávszélesség). Ennek eredményeként a nagyobb átviteli sebesség elérése érdekében alkalmazást kell rögzíteni bizonyos magokhoz. Lásd: Alkalmazásbeállítások, 22. oldal és AMD EPYC, 26. oldal.
3.1.3 netperf
A netperf eszköz jó választás az átviteli sebesség és a késleltetés teszteléséhez.
- A TCP_STREAM teszt a netperfben méri az eszköz átviteli képességeit. Szerver parancs plample: netserver Client parancs plample: netperf -t TCP_STREAM -l 30 -H
- A netperf TCP_RR tesztje tranzakció/másodperc értékben adja vissza a késleltetést. Ez egy oda-vissza szám. Javasoljuk a -T x,x opciót használni, ha az x az eszköz helyi CPU-ja. Az egyirányú késleltetés a következővel számítható ki: Latency(usec)=(1⁄2)/ [Tranzakciók/sec]*1,000,\ Szerverparancs pl.ample: netszerver
Kliens parancs plample: netperf -t TCP_RR -l 30 -H -T x,x - A netperf több példányának (szálának) indításához javasoljuk, hogy for-hurkot használjon a szálak TCP-portokhoz való leképezéséhez, és futtassa a netperf-et a háttérben a & használatával több folyamat párhuzamos létrehozásához.
Szerver parancs plample, indíts 8 szálat:
port=””; i-nek a 0..7}-ben; do port=520$i; bash -c “netszerver -L $kiszolgálóIP -p $port &”; kész;
Kliens parancs plample, indítsa el a 8 szálat: port=””; i-nek a 0..7-ben; do port=520$i; bash -c "netperf -H $szerverIP -p $port -t TCP_STREAM -l 30 &"; kész;
3.2 Hangolási módszertan
Egyszerre csak egy hangolásmódosításra összpontosítson, hogy tudja, milyen hatással van az egyes változtatások a tesztre. Minél módszeresebben jár el a hangolási folyamatban, annál könnyebb lesz azonosítani és kezelni a teljesítmény szűk keresztmetszetek okait.
Az i40e illesztőprogram beállításainak hangolása
4.1 IRQ affinitás
Ha az IRQ-affinitást úgy konfigurálja, hogy a különböző hálózati sorok megszakításai különböző CPU-magokhoz legyenek kötve, óriási hatással lehet a teljesítményre, különösen a többszálú átviteli teszteknél.
Az IRQ-affinitás konfigurálásához állítsa le az irqbalance-t, majd használja az i40e forráscsomagból származó set_irq_affinity parancsfájlt, vagy kézzel rögzítse a sorokat. A sorrögzítés engedélyezéséhez kapcsolja ki a felhasználói terület IRQ-kiegyenlítőjét:
- systemctl letiltja az irqbalance-t
- systemctl stop irqbalance
Az i40e forráscsomag set_irq_affinity szkriptjének használata (ajánlott): - Az összes mag használatához:
[az i40epackage elérési útja]/scripts/set_irq_affinity -X all ethX - Ha csak magokat szeretne használni a helyi NUMA socketen: [path-i40epackage]/scripts/set_irq_affinity -X local ethX
- Kiválaszthat egy sor magot is. Kerülje a cpu0 használatát, mert időzítő feladatokat futtat. [az i40epackage elérési útja]/scripts/set_irq_affinity 1-2 ethX
JEGYZET
Az affinity script engedélyezi a Transmit Packet Steering (XPS) funkciót a rögzítési folyamat részeként, ha az -x opció meg van adva. Ha az XPS engedélyezve van, az Intel azt javasolja, hogy tiltsa le az irqbalance-t, mivel az XPS-sel ellátott kernelbalansz kiszámíthatatlan teljesítményt okozhat. Az affinity script letiltja az XPS-t, ha az -X kapcsoló meg van adva. Az XPS letiltása és a szimmetrikus sorok engedélyezése olyan munkaterheléseknél előnyös, ahol a legjobb teljesítmény akkor érhető el, ha a Tx és Rx forgalmat ugyanazon a sorpáron (párokon) szolgálják ki.
A szimmetrikus várólisták konfigurálása Linuxban magában foglalja a hálózati illesztőprogram paramétereinek hangolását, hogy lehetővé tegye a szimmetrikus vételi sorokat (Rx) és a szimmetrikus átviteli sorokat (Tx) a támogatott hálózati adapterek számára.
JEGYZET
- A szimmetrikus sorok fejlett hálózati szolgáltatás, és nem minden 700-as sorozatú hálózati adapter vagy illesztőprogram támogatja őket.
- Győződjön meg arról, hogy rendelkezik a szükséges illesztőprogram- és hardvertámogatással, mielőtt megpróbálja konfigurálni a szimmetrikus sorokat.
A szimmetrikus sorok konfigurálásához kövesse az alábbi általános lépéseket:
- Hálózati interfész konfigurációjának szerkesztése File: Használjon szövegszerkesztőt (plample, vi, nano vagy gedit) a hálózati interfész konfigurációjának szerkesztéséhez file. A file általában az /etc/sysconfig/network-scripts/ könyvtárban található, és olyan neve, mint az ifcfg-ethX, ahol az ethX a hálózati interfész neve.
- Szimmetrikus sorparaméterek hozzáadása. Adja hozzá a következő sorokat a hálózati interfész konfigurációjához file: ETHTOOL_OPTS=”rx-queues 8 tx-queues 8”
- Indítsa újra a hálózati szolgáltatást.
A módosítások elvégzése után indítsa újra a hálózati szolgáltatást az új konfiguráció alkalmazásához. sudo systemctl indítsa újra a hálózatot
Manuálisan:
-
Keresse meg az egyes csomópontokhoz csatolt processzorokat a numactl –hardware lscpu segítségével
-
Keresse meg az egyes processzorokhoz tartozó bitmaszkokat:
- Feltételezve a 0-11. magokat a 0. csomóponthoz: [1,2,4,8,10,20,40,80,100,200,400,800]
- Keresse meg a hozzárendelt porthoz rendelt IRQ-kat: grep ethX /proc/interrupts, és jegyezze fel az IRQ értékeket pl.ample, 181-192 a 12 betöltött vektorra.
- Echo az SMP affinitás értéke a megfelelő IRQ bejegyzésben. Vegye figyelembe, hogy ezt minden IRQ-bejegyzésnél meg kell tenni: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity IRQ affinitás megjelenítése:
- Az IRQ affinitás megjelenítéséhez az összes maghoz: /scripts/set_irq_affinity -s ethX
- Csak a helyi NUMA foglalat magjainak megjelenítéséhez: /scripts/set_irq_affinity -s helyi ethX
- Kiválaszthat egy sor magot is: /scripts/set_irq_affinity -s 40-0-8,16 ethX
JEGYZET
A set_irq_affinity szkript támogatja az -s jelzőt az i40e illesztőprogram 2.16.11-es és újabb verzióiban.
4.2 Tx/Rx várólisták
Az egyes Ethernet-portokhoz az illesztőprogram inicializáláskor engedélyezett sorok alapértelmezett száma megegyezik a platformon elérhető CPU-k teljes számával. Ez számos platformon és munkaterhelés-konfiguráción jól működik. Azonban a magas magszámú és/vagy nagy Ethernet-portsűrűségű platformokon ez a konfiguráció erőforrás-versenyt okozhat. Ezért bizonyos esetekben szükség lehet a rendszer minden portjának alapértelmezett módosítására.
A Tx/Rx sorok alapértelmezett száma az adott modelltől és illesztőprogram-verziótól függően változhat. A sorok száma az alább felsorolt ethtool -L paranccsal állítható be.
JEGYZET
Ezekben az esetekben az Intel azt javasolja, hogy csökkentse az egyes portok alapértelmezett sorszámát az adapterporthoz tartozó helyi NUMA csomópontban elérhető CPU-k számánál. Egyes esetekben, amikor megpróbáljuk egyensúlyba hozni az erőforrásokat a nagy portszámú megvalósítások esetén, szükség lehet ennek a számnak a további csökkentésére.
A sor konfigurációjának módosítása:
A következő plample 32 Tx/Rx sorra állítja a portot: ethtool -L ethX kombinált 32
Example kimenet:
ethtool -l ethX
Az ethX csatornaparaméterei: Előre beállított maximumok:
RX: 96
TX: 96
Egyéb: 1 XNUMX
Kombinált: 96
Jelenlegi hardverbeállítások:
RX: 0
TX: 0
Egyéb: 1 XNUMX
Kombinált: 32
4.3 A moderálás megszakítása
Az adaptív megszakítás-moderálás alapértelmezés szerint be van kapcsolva, és kiegyensúlyozott megközelítést biztosít az alacsony CPU-kihasználás és a nagy teljesítmény között. Megpróbálhatja azonban manuálisan hangolni a megszakítási beállításokat a használati esetnek megfelelően.
A 0-235 mikroszekundum közötti tartomány 4,310-250,000 2 megszakítást biztosít másodpercenként. Az rx-μsec-high értéke az rx-μsec-től és tx-μsec-től függetlenül állítható be ugyanabban az ethtool parancsban, és független az adaptív megszakítás-moderáló algoritmustól is. Az alapul szolgáló hardver támogatja a XNUMX mikroszekundumos időközönkénti granularitást, így a szomszédos értékek ugyanazt a megszakítási sebességet eredményezhetik.
- Az adaptív megszakítás-moderálás kikapcsolása: ethtool -C ethX adaptive-rx off adaptive-tx off
- Az adaptív megszakítás-moderálás bekapcsolása: ethtool -C ethX adaptive-rx on adaptive-tx on
Az általános hangolás kiindulópontja a 84 μs, vagyis ~12000 megszakítás/s. Ha azt látja, hogy az rx_dropped számlálók futnak forgalom közben (az ethtool -S ethX használatával), akkor valószínűleg túl lassú a CPU-ja, és nincs elég puffere az adapter gyűrűméretéből (ethtool -G) ahhoz, hogy 84 μs-ig vagy alacsony megszakítási sebességig tárolja a csomagokat.
- A megszakítások moderálásának beállítása 84 μs-os fix megszakítási sebességre a megszakítások között (12000 megszakítás/s): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usec 84 tx-usecs 84 Ha nincs maximalizálva a CPU kihasználtsága, akkor a következő érték 62 μs. Ez több CPU-t használ, de gyorsabban szolgálja ki a puffereket, és kevesebb leírót igényel (gyűrűméret, ethtool -G).
- A megszakítás moderálásának beállítása a megszakítások közötti 62 uses fix megszakítási sebességre (16000 megszakítás/s). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
Ha az rx_dropped számlálók forgalom közben növekednek (az ethtool -S ethX használatával), akkor valószínűleg túl lassú a CPU, nincs elég puffer az adapter gyűrűméretéből (ethtool -G), vagy túl alacsony a megszakítási arány. Ha nincs maximálisan kihasználva a CPU, növelheti a megszakítási arányt az ITR érték csökkentésével. Ez több CPU-t használ, de a szolgáltatások gyorsabban pufferelnek, és kevesebb leírót igényel (gyűrűméret, ethtool -G).
Ha a CPU 100%-on van, akkor a megszakítási arány növelése nem javasolt. Bizonyos körülmények között, például CPU-hoz kötött munkaterhelés esetén, érdemes lehet növelni a μs értéket, hogy több CPU-időt biztosítson más alkalmazások számára.
Ha alacsony késleltetési teljesítményre van szüksége és/vagy sok CPU-val rendelkezik a hálózati feldolgozásra, teljesen letilthatja a megszakítások moderálását, ami lehetővé teszi, hogy a megszakítások a lehető leggyorsabban tüzeljenek. - A moderálás megszakításának letiltásához ethtool -C ethX adaptive-rx off adaptive-tx off rx-usec 0 tx-usec 0
JEGYZET
Ha le van tiltva a megszakítás moderálása, a megszakítási arány az egyes sorokon nagyon magas lehet. Fontolja meg az rx-usec-high paraméter hozzáadását a megszakítási sebesség felső határának beállításához. A következő parancs letiltja az adaptív megszakítás-moderálást, és legfeljebb 5 mikroszekundumot engedélyez, mielőtt a vétel vagy az adás befejeződött. Ahelyett, hogy másodpercenként akár 200,000 50,000 megszakítást eredményezne, az rx-usec-high paraméterrel 20 5-re korlátozza a másodpercenkénti megszakítások számát. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 5 rx-usecs 80 txusecs 100 Próbálja meg az adás/vétel/magas prioritású egyesülési időzítőt magasabbra (150/200/25/20) vagy alacsonyabbra (10/5) az optimális terhelés értékére állítani.
4.4 Gyűrűméret
Ha rx_dropped számlálókat lát az ethtool -S ethX (rx_dropped, rx_dropped.nic) programban, vagy gyanítja a gyorsítótár nyomását több aktív sor mellett, akkor megpróbálhatja módosítani a gyűrű méretét az alapértelmezett értékről. Az alapértelmezett érték 512, a maximum 4096.
- Az aktuális értékek ellenőrzéséhez: ethtool -g ethX
Ha gyanítható, hogy a pufferelés hiánya az aktuális megszakítási sebesség csökkenését okozza, először a maximumot próbálja ki, majd a minimumot, majd folytassa a bináris keresést, amíg meg nem látja az optimális teljesítményt.
Ha gyanítható a gyorsítótár nyomása (sok sor aktív), a pufferek alapértelmezett csökkentése segíthet az Intel® Data Direct I/O (Intel® DDIO) hatékonyabb működésében. Az Intel azt javasolja, hogy próbálkozzon a 128-as vagy a 256-os soronként, mivel tudatában van annak, hogy az ethtool -C segítségével a megszakítási arány növelésére lehet szükség az rx_dropped növekedésének elkerülése érdekében. - A gyűrű méretének fix értékre állítása: ethtool -G eth12 rx 256 tx 256
JEGYZET
Az ethtool -S ethX|grep drop segítségével talált Rx csomagkiesések javításához fontolja meg a gyűrű méretének 4096-ra növelését. Kísérletezzen, hogy megtalálja a legjobb beállítást a munkaterheléshez, de ügyeljen a túlzott memóriahasználatra magasabb értékekkel.
4.5 Áramlásszabályozás
A 2. rétegű áramlásszabályozás jelentősen befolyásolhatja a TCP teljesítményét, ezért a legtöbb munkaterhelésnél javasolt letiltani. Potenciális kivétel a robbanásszerű forgalom, ahol a sorozatok nem hosszúak.
Az áramlásszabályozás alapértelmezés szerint le van tiltva.
- Az áramlásszabályozás engedélyezéséhez: ethtool -A ethX rx on tx on
- Az áramlásszabályozás letiltásához: ethtool -A ethX rx off tx off
JEGYZET
A folyamatvezérlés sikeres engedélyezéséhez rendelkeznie kell egy áramlásvezérlésre képes kapcsolati partnerrel.
4.6 Jumbo keretek
Ha a várható forgalmi környezet nagy adattömbökből áll, érdemes lehet engedélyezni a jumbo frame szolgáltatást. A Jumbo Frames támogatása a Maximum Transmission Unit (MTU) értékének az alapértelmezett 1500-nál nagyobb értékre történő módosításával engedélyezhető. Ez lehetővé teszi az eszköz számára, hogy nagyobb csomagokban továbbítson adatokat a hálózati környezetben. Ez a beállítás javíthatja az átviteli sebességet és csökkentheti a CPU kihasználtságát nagy I/O munkaterhelések esetén. Ez azonban hatással lehet a kisméretű csomagokra vagy a késleltetésre érzékeny munkaterhelésekre.
JEGYZET
A Jumbo kereteket vagy a nagyobb MTU-beállításokat megfelelően konfigurálni kell a hálózati környezetben.
Az ifconfig paranccsal növelheti az MTU méretét. Plample, írja be a következőt, ahol az interfész száma: ifconfig mtu 9000 felfelé
Alternatív megoldásként használhatja az ip parancsot a következőképpen: ip link set mtu 9000 dev ip link beállítása dev
Platformhangolás (i40e nem specifikus)
5.1 BIOS beállítások
- Az Intel® VT-d engedélyezése a virtualizációs munkaterhelésekhez.
- A hyperthreading (logikai processzorok) befolyásolhatja a teljesítményt. Kísérletezzen vele be- vagy kikapcsolva a munkaterheléséhez.
- Az Intel® Turbo Boost lehetővé teszi, hogy a CPU magjai a CPU alapfrekvenciájánál magasabb frekvencián működjenek. Az Intel® Turbo Boost engedélyezése számos munkaterhelés esetén javíthatja a teljesítményt, de több energiát fogyaszt a magok magasabb frekvencián tartása érdekében. Kísérletezzen a Turbo Boost ki-/bekapcsolásával a munkaterheléséhez.
JEGYZET
A turbófrekvenciák nem garantáltak, ha a platform általános CPU-kihasználtsága magas. A magasabb mag turbófrekvenciák csökkennek a teljes CPU kihasználtság növekedésével.
5.2 Energiagazdálkodás
Az energiagazdálkodás befolyásolhatja a teljesítményt, különösen alacsony késleltetésű munkaterhelések esetén. Ha a teljesítmény fontosabb, mint az energiafogyasztás csökkentése, az Intel azt javasolja, hogy kísérletezzen az energiagazdálkodás hatásainak korlátozásával. Az energiagazdálkodás korlátozásának számos különböző módja van, az operációs rendszer eszközei, a BIOS beállításai és a kernel rendszerindítási paraméterei révén. Válassza ki a környezetének leginkább megfelelő módszert és szintet.
5.2.1 C-State Control
A C állapot belépésének CO-ra vagy C1-re való korlátozása javítja a teljesítményt és növeli az energiafelhasználást.
A CPU Package C6 állapot bejegyzésének letiltása javíthatja a hálózati teljesítményt. Ez azonban növeli az energiafelhasználást.
A következő lehetőségek állnak rendelkezésre:
- Dinamikusan szabályozza a C állapot bejegyzést:
Nyitott
/dev/cpu_dma_latency, és írja be a maximálisan megengedett késleltetést.
JEGYZET
Létezik egy cpudmalatency.c nevű kis program, amely a nyílt forráskódú közösségből letölthető, lefordítható és parancssorból futtatható, hogy pontosan ezt tegye.
A következő plample lehetővé teszi öt μs ébrenléti időt, és így lehetővé teszi a C1 belépést: cpudmalatency 5 &
- Korlátozza a maximális C-állapotot a kernel rendszerindítási beállításaiban:
Intel CPU-k esetén: intel_idle.max_cstates=1
Nem Intel CPU-k esetén: processor.max_cstates=1 - A cpupower paranccsal ellenőrizze és tiltsa le a CPU C6 állapotát: Ellenőrizze: cpupower monitor vagy cpupower idle-info
C6 letiltása: cpupower idle-set -d3 vagy
A C-állapotok letiltása: cpupower idle-set -D0
Megjegyzések:
- Tiltsa le a C-állapotokat a CPU-n, ha a szerver Intel® 4. generációs Intel® Xeon® méretezhető processzorral rendelkezik. Ha a Hyper Threading be van kapcsolva vagy letiltva, az üresjárati állapotok (-D0) letiltása megakadályozza, hogy a magok alacsony fogyasztású állapotba kerüljenek tétlenségi időszakokban, és csökkenti a CPU tétlen és aktív állapotok közötti átmenetének várakozási idejét.
- Az Intel® 4th Gen Intel® Xeon® Scalable Processor energiagazdálkodása rendkívül agresszív. Annak elkerülése érdekében, hogy a magok alacsony fogyasztású állapotba kerüljenek, próbálja meg csökkenteni a használatban lévő magok számát, hogy hosszabb ideig ébren tartsa őket (ethtool -L kombinált ). Ezenkívül a megszakításokat meghatározott magokhoz köti a set irq affinitás használatával (leggyakrabban -x local vagy CPU-magok listája), és biztosítsa, hogy a terhelés ugyanazokon a magokon fusson a taskset vagy numactl segítségével. Ez javítja a teljesítményt azáltal, hogy aktívan tartja a magokat és optimalizálja a megszakításkezelést.
C6 engedélyezése:
cpupower idle-set -d3
C-States engedélyezése:
cpupower idle-set -E
- Egy másik módszer a hangolt eszköz használata (amely sok Linux disztribúcióhoz tartozik) a teljesítményprofi beállításáhozfile. Ezek a profikfiles számos operációs rendszer beállítást módosít, amelyek számos alkalmazás teljesítményét befolyásolhatják. Azt találtuk, hogy a hálózati áteresztőképesség profile javítja a legtöbb munkaterhelést.
Ellenőrzés:
tuned-adm aktív
Készlet:
tuned-adm profile hálózati áteresztőképesség
JEGYZET
A hangolt szolgáltatásnak futnia kell a fenti parancsokhoz. Ellenőrzés/újraindítás, hangolt: systemctl állapot hangolt systemctl újraindítás hangolva
Bármely C-state bejegyzést is letilthat, ha hozzáadja a következőket a kernel rendszerindító sorához:
idle=szavazás - Korlátozza a C-állapotot a rendszer BIOS energiagazdálkodási beállításain keresztül, amelyek teljesítményprofillal rendelkezhetnekfile elérhető.
Az energiagazdálkodási beállítások ellenőrzésére vagy beállítására olyan eszközök használhatók, mint a turbostat vagy az x86_energy_perf_policy.
5.2.2 PCIe energiagazdálkodás
Az Active-State Power Management (ASPM) alacsonyabb fogyasztási állapotot tesz lehetővé a PCIe kapcsolatok számára, amikor nincsenek aktív használatban. Ez magasabb késleltetést okozhat a PCIe hálózati eszközökön, ezért az Intel azt javasolja, hogy tiltsa le az ASPM-et a késleltetésre érzékeny munkaterheléseknél. Az ASPM letiltásához adja hozzá a következőt a kernel rendszerindító sorához: pcie_aspm=off
5.2.3 CPU-frekvencia-skálázás
A CPU-frekvencia-skálázás (vagy CPU-sebesség-skálázás) egy Linux energiagazdálkodási technika, amelyben a rendszer órajelét menet közben állítják be az energia- és hőmegtakarítás érdekében. Csakúgy, mint a C-állapotok, ez nem kívánt késleltetést okozhat a hálózati kapcsolatokban.
A cpupower eszköz a CPU-teljesítmény alapértékeinek és korlátainak ellenőrzésére és módosítására is használható:
- Ellenőrzés: cpupower monitor ill
- CPU-k beállítása teljesítmény módba: cpupower frekvencia-beállítás -g teljesítmény
JEGYZET
A CPU-frekvencia-korlátok módosításai számos munkaterhelésre hatással lehetnek, és letilthatnak más funkciókat, például a CPU turbó üzemmódját.
A CPU-frekvencia-skálázás letiltásához tiltsa le a CPU energiaszolgáltatást a következő parancsokkal:
systemctl stop cpupower.service
systemctl letiltja a cpupower.service-t
5.2.4 További energiagazdálkodási útmutató
További részleteket ebben a magas szintű overview a 3. generációs Intel® Xeon® skálázható processzorok energiagazdálkodási funkciói közül, valamint útmutatást nyújt ezeknek a funkcióknak a platformszinten történő integrálásához: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Az Intel® Turbo Boost szükség esetén gyorsabbá teszi a processzort, de több energiát fogyaszthat. A Turbo Boost kikapcsolása egyenletesen tartja a processzort, így állandó teljesítményszintet biztosít bizonyos munkaterhelésekhez.
5.4 Tűzfalak
A tűzfalak befolyásolhatják a teljesítményt, különösen a késleltetési teljesítményt.
Ha nem szükséges, kapcsolja ki az iptables/tűzfalat.
5.5 Alkalmazásbeállítások
Gyakran egyetlen szál (amely egyetlen hálózati sornak felel meg) nem elegendő a maximális sávszélesség eléréséhez. Egyes platformarchitektúrák, például az AMD, hajlamosak több Rx-csomagot eldobni egyetlen szálon keresztül, mint az Intel-alapú processzorokkal rendelkező platformok.
Fontolja meg az olyan eszközök használatát, mint a taskset vagy a numactl, hogy alkalmazásokat rögzítsen a NUMA csomóponthoz vagy a CPU magokhoz a hálózati eszközön. Egyes munkaterhelések, például a tárolási I/O esetében előnyt jelent az alkalmazás nem helyi csomópontra való áthelyezése.
Kísérletezzen az alkalmazás által használt szálak számának növelésével, ha lehetséges.
5.6 Kernel verzió
A legtöbb modern beépített kernel meglehetősen jól optimalizált a teljesítményre, de a használati esettől függően a kernel frissítése javíthatja a teljesítményt. A forrás letöltése lehetővé teszi bizonyos funkciók engedélyezését/letiltását is a kernel felépítése előtt.
5.7 Operációs rendszer/Kernel beállítások
Tekintse meg az operációs rendszer hangolási útmutatóit, például a Red Hat Enterprise Linux Network Performance Tuning Guide-ot, ha további betekintést szeretne kapni az operációs rendszer általános hangolásába.
A következő táblázatban felsorolunk néhány általános hangolandó paramétert. Ne feledje, hogy ezek csak javasolt kiindulási pontok, és az alapértelmezett értékek megváltoztatása növelheti a rendszeren használt erőforrásokat. Bár az értékek növelése segíthet a teljesítmény javításában, különböző értékekkel kell kísérletezni, hogy meghatározzuk, mi működik a legjobban egy adott rendszerhez, terheléshez és forgalomtípushoz.
A kernelparaméterek a sysctl segédprogrammal konfigurálhatók Linux alatt, az alábbiak szerint.
To view az rmem és a wmem alapértelmezett értékei a rendszeren:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
Állítsa az értékeket maximumra (16 MB):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
A socket puffer mérete, más néven vételi puffer (rmem) és átviteli puffer (wmem), olyan rendszerparaméterek, amelyek meghatározzák a bejövő és kimenő hálózati forgalom számára fenntartott memória mennyiségét.
A sysctl -w argumentum nélküli futtatása a paramétert az aktuális beállítással listázza ki.
Verembeállítás | Leírás |
net.core.rmem_default | Alapértelmezett fogadási ablak mérete |
net.core.wmem_default | Alapértelmezett átviteli ablakméret |
net.core.rmem_max | Maximális fogadóablak mérete |
net.core.wmem_max | Maximális átviteli ablakméret |
net.core.optmem_max | Maximális opciós memóriapufferek |
net.core.netdev_max_backlog | Feldolgozatlan csomagok hátraléka, mielőtt a kernel elkezdene ledobni |
net.ipv4.tcp_rmem | Memória lefoglaló a TCP olvasási pufferekhez |
net.ipv4.tcp_wmem | Memória lefoglaló a TCP küldési pufferekhez |
A kernel, a hálózati verem, a memóriakezelő, a CPU-sebesség és az energiagazdálkodási paraméterek nagymértékben befolyásolhatják a hálózati teljesítményt. Általános ajánlás a hálózati átviteli sebesség profile a hangolt parancs segítségével. Ez módosít néhány operációs rendszer beállítást, hogy előnyben részesítse a hálózati alkalmazásokat.
Ellenőrzés:
tuned-adm aktív
Készlet:
tuned-adm profile hálózati áteresztőképesség
5.8 Hálózati eszköz hátralék
Ez a funkció javítja a hálózati teljesítményt a bejövő forgalom hatékony kezelésével, a csomagvesztés csökkentésével, a késleltetés csökkentésével és az átviteli sebesség növelésével. Ez jobb felhasználói élményhez és gyorsabb rendszerválaszhoz vezet.
Alapértelmezés szerint a legtöbb Linux operációs rendszerben engedélyezve van. Az alapértelmezett érték ellenőrzéséhez:
sysctl net.core.netdev_max_backlog
A netdev_max_backlog maximális értéke olyan tényezőktől függően változhat, mint a kernel verziója, a hardver, a memória és a munkaterhelés. Sok esetben a 8192-t jó értéknek tekintik. sysctl -w net.core.netdev_max_backlog=8192
5.9 Platform-specifikus konfigurációk és hangolás
5.9.1 4. generációs Intel® Xeon® méretezhető processzorok
Az Intel® 4. generációs Intel® Xeon® Scalable processzor energiagazdálkodása rendkívül agresszív a 3. generációs Intel® Xeon® Scalable processzorokhoz képest. Annak elkerülése érdekében, hogy a magok alacsony fogyasztású állapotba kerüljenek, próbálja meg csökkenteni a használatban lévő magok számát, hogy azok hosszabb ideig ébren maradjanak.
Javasolt Bios beállítások a legnagyobb teljesítmény érdekében
- Hyper-threading engedélyezése/letiltása (a munkaterhelési követelmény és a teljesítménycélok alapján) a CPU-n.
- Állítsa be a rendszer pro-tfile a Teljesítményre a maximális teljesítmény érdekében.
JEGYZET
Ez magasabb energiafogyasztást eredményez - Állítsa a CPU energiagazdálkodását Maximum Performance értékre, hogy előnyben részesítse a maximális CPU teljesítményt az energiahatékonyság helyett.
- Engedélyezze a Turbo Boost funkciót. A Turbo Boost letiltása a rendszer BIOS-beállításaiban általában megakadályozza, hogy a CPU dinamikusan növelje órajelét az alapfrekvencián túl.
- JEGYZET
A Turbo Boost letiltása bizonyos felhasználási esetekben megfelelő lehet, amikor a konzisztens teljesítmény, energiahatékonyság vagy hőkezelés prioritást élvez a maximális teljesítménnyel szemben. - Kapcsolja ki az egygyökérű I/O virtualizáció (SR-IOV) funkciót, ha a rendszer nem használ virtualizációs technológiákat.
- Tiltsa le a C-állapotokat, hogy utasítsa a CPU-t, hogy aktív maradjon, és megakadályozza a mélyebb üresjárati állapotokba lépést.
- Tiltsa le a C1E-t, hogy a CPU aktív maradjon, és ne lépjen C1E tétlen állapotba.
- Állítsa az uncore frekvenciát maximumra, hogy a rendszer a legmagasabb elérhető frekvencián működjön.
- Dell platformokon állítsa a Multiple APIC Description Table (MADT) magemulációt Lineárisra (vagy a BIOS-tól függően Round-Robinra), hogy egyértelmű és kiszámítható leképezést biztosítson a CPU-magokhoz.
Javasolt operációs rendszer szintű hangolások az optimalizált teljesítmény érdekében
- Állítsa be a CPU-frekvencia-skálázási szabályozót teljesítményre. cpupower frekvencia-készlet -g teljesítmény cpupower frekvencia-info
- A C-állapotok letiltása. cpupower idle-set -D0
- Állítsa a mag Rx (rmem) és Tx (wmem) puffereit maximális értékre. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
- Állítsa be a hálózati eszközök hátralékát. sysctl -w net.core.netdev_max_backlog=8192
- Állítsa be a tuned profile (a terhelés az átviteli sebességtől/késleltetéstől függ).
tuned-adm profile hálózati áteresztőképesség
Javasolt adapterszintű hangolások az optimalizált teljesítmény érdekében
- Korlátozza az alkalmazásforgalomhoz használható várólisták számát. Használja a minimális számú várólista, amely ahhoz szükséges, hogy a kapcsolódó CPU magok aktívak maradjanak, nehogy mélyebb tétlenségi állapotba kerüljenek (igazítsa a munkaterheléshez): ethtool -L kombinált 32
- Állítsa be a megszakítások moderálási arányát. ethool -C adaptive-rx off adaptive-tx off rx-usecs-high 50 rx-usecs 50 tx-usecs 50
Próbálja meg magasabbra (80/100/150/200) vagy alacsonyabbra (25/20/10/5) állítani az adás/vétel/magas prioritású egyesülési időzítőt, hogy megtalálja az optimális értéket a munkaterheléshez. - Állítsa be az Rx/Tx gyűrűméretet. ethtool -G rx 4096 tx 4096
JEGYZET
Ha az Rx csomag leesik az ethtool -S| segítségével grep drop, próbálja csökkenteni a gyűrű méretét <4096-ra. Próbálja meg megtalálni az optimális értéket a munkaterheléshez, ahol a csomagok nem kerülnek eldobásra. - Állítsa be az IRQ affinitást. Használjon helyi hálózati magokat vagy speciális magleképezést (ahol a magok száma egyenlő az 1-ben (26. oldal) beállított sorok számával. systemctl stop irqbalance set_irq_affinity -X local VAGY set_irq_affinity -X
5.9.2 AMD EPYC
Az AMD EPYC processzorok nagy teljesítményű, szerverekhez és adatközpontokhoz készült CPU-k, amelyek az AMD Zen architektúrájára épülnek. Az alábbi beállítások az AMD 4. generációs EPYC sorozatából származnak.
Javasolt BIOS-beállítások a legnagyobb teljesítmény érdekében
- Engedélyezze az egyéni módot, hogy a felhasználók módosíthassák a CPU teljesítményét, energiafogyasztását és egyéb beállításait. Ez segít a rendszer finomhangolásában a teljesítmény és az energiahatékonyság közötti legjobb egyensúly érdekében.
- Az alapteljesítmény-növelés engedélyezése lehetővé teszi a CPU számára, hogy automatikusan növelje sebességét az intenzívebb feladatok kezeléséhez, javítva ezzel az általános teljesítményt.
- Tiltsa le a globális C-állapot-vezérlést, hogy megakadályozza a CPU-t abban, hogy mélyebb energiatakarékossági állapotokba lépjen, amelyek C-állapotokként ismertek, amelyek képesek fenntartani a válaszkészséget.
JEGYZET
A C-állapotok letiltása további energiafogyasztást és hőmérséklet-emelkedést okozhat. Figyelje mindkettőt a munkaterhelésre. - A szimultán többszálú (SMT) engedélyezése/letiltása a CPU-n a terhelési követelmény és a teljesítménycélok alapján. Az SMT egyenértékű a Hyper Threading funkcióval az Intel CPU-kon.
JEGYZET
Az optimalizált teljesítmény érdekében lásd: Az i40e illesztőprogram beállításainak hangolása (13. oldal) és Platform Tuning (i40e nem specifikus) a 19. oldalon az ajánlott operációs rendszer és adapter szintű hangolásért.
Adapter ragasztás
A Linux bonding egy hatékony szolgáltatás, amely jelentősen javíthatja a hálózati teljesítményt, a redundanciát és a hibatűrést szerverkörnyezetekben. Fontos azonban megjegyezni, hogy a megfelelő működéshez kompatibilis hálózati hardver és megfelelő konfiguráció szükséges mind a szerveren, mind a kapcsolón.
A Linux kötési illesztőprogramja lehetővé teszi több fizikai hálózati interfész összevonását egy kötött interfészbe. Ez az összekapcsolt interfész egyetlen virtuális hálózati interfészként jelenik meg az operációs rendszer és az alkalmazások számára.
JEGYZET
A kötés egy logikai interfész, így nem lehet közvetlenül a bond interfészen beállítani a CPU-affinitást (pl.ample, bond0). Vagyis nincs közvetlen irányítása a megszakításkezelés vagy a CPU-affinitás felett. A CPU-affinitást be kell állítani a kötés részét képező mögöttes interfészekhez.
A ragasztás többféle műveleti módot biztosít, mindegyiknek megvan a maga sajátossága.
Mód | Írja be |
0 | Round Robin |
1 | Aktív biztonsági mentés |
2 | XOR |
3 | Adás |
4 | LACP |
5 | Terhelésegyensúly átvitele |
6 | Adaptív terhelési egyensúly |
Különféle módszerek léteznek a kötés létrehozására Linuxban. Az egyik leggyakoribb módszer a hálózati konfiguráció használata files (plample, /etc/network/ interfaces vagy /etc/sysconfig/network-scripts/ifcfg-bondX).
Konfiguráció a Hálózati konfiguráció használatával Files
A következő lépésekkel hozzuk létre a kötést a hálózati konfiguráción keresztül files.
- Válasszon ki két vagy több NIC portot a csatlakoztatáshoz (plample, ethX és ethY)
- Nyissa meg a NIC konfigurációt Files az /etc/sysconfig/network-scripts/ alatt a szükséges NIC interfészhez (pl.ample, vi ifcfg-ethX és vi ifcfg-ethY), és fűzze hozzá a következő szöveget:
MASTER=bondN [Megjegyzés: N egy egész szám, amely a kötésszámot említi.] SLAVE=igen - Hozzon létre egy kötési hálózati szkriptet file a vi /etc/sysconfig/networkscripts/ifcfg-bondN használatával, és írja be a következő szöveget:
DEVICE=bondN [Megjegyzés: N egy egész szám a kötvényszám említéséhez] ONBOOT=igen USERCTL=nem BOOTPROTO=dhcp (vagy) nincs
IPADDR=200.20.2.4 [kötelező, ha BOOTPROTO=none] NETMASK=255.255.255.0 [szükséges, ha BOOTPROTO=none] NETWORK=200.20.2.0 [szükséges, ha BOOTPROTO=none] BROADCAST200.20.2.255quired1=100quiredXNUMX BOOTPROTO=none] BONDING_OPTS=”mode=XNUMX miimon=XNUMX″
JEGYZET
A mód bármilyen egész szám lehet 0 és 6 között a követelménytől függően. - Indítsa újra a hálózati szolgáltatásokat a hálózat újraindítása vagy a systemctl restart NetworkManager.service használatával
Teljesítmény hibaelhárítás
7.1 CPU kihasználtság
Ellenőrizze a processzormagonkénti kihasználtságot, miközben a munkaterhelés fut.
Ne feledje, hogy a magonkénti kihasználtság lényegesebb a teljesítmény szempontjából, mint a teljes CPU-kihasználás, mivel ez képet ad a hálózati soronkénti CPU-kihasználtságról. Ha csak néhány szál fut hálózati forgalmat, akkor lehet, hogy csak néhány magot használ. Ha azonban ezek a magok 100%-on vannak, akkor a hálózati átviteli sebességet valószínűleg korlátozza a CPU kihasználtsága, és ideje elvégezni a következőket:
- Hangolja be az IRQ moderálást/gyűrűméretet a Megszakítási moderálás részben leírtak szerint.
- Növelje az alkalmazásszálak számát, hogy a CPU-terhelést több magra ossza el. Ha az összes mag 100%-on fut, akkor az alkalmazás CPU-hoz, nem pedig hálózathoz kötött.
Általánosan elérhető eszközök:
- tetejére
— Nyomja meg az 1-es gombot a CPU-k listájának kibontásához és a használt CPU-k ellenőrzéséhez.
— Figyelje meg a kihasználtságot.
— Figyelje meg, hogy mely folyamatok szerepelnek a legaktívabbként (a lista tetején). - mpstat
A következő plampA le parancssort Red Hat Enterprise Linux 7.x rendszeren tesztelték.
Kijelzi a processzormagonkénti kihasználtságot (az üresjárat teljes százalékának megkeresésével és 100-ból való kivonásával), és pirossal kiemeli a 80% feletti értékeket. mpstat -P ALL 1 1 | grep -v Átlagos | farok -n +5 | fej -n -1 | awk '{ print (100-$13)}' | egrep -color=always '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | oszlop - perf top Keresse meg, hol töltik a ciklusokat.
7.2 i40e számlálók
Az i40e illesztőprogram a számlálók hosszú listáját tartalmazza az interfész hibakereséséhez és az ethtool -S ethX paranccsal történő figyeléséhez. Hasznos lehet figyelni a kimenetet egy munkaterhelés futása közben, és/vagy összehasonlítani a számlálóértékeket a munkaterhelés futtatása előtt és után.
- Az i40e számlálók teljes kiíratásához: ethtool -S ethX
- A nullától eltérő számlálók megtekintéséhez: watch -d (ethtool -S ethX) | egrep -v :\ 0 | oszlop
Néhány dolog, amire figyelni kell: - Az rx_dropped azt jelenti, hogy a CPU nem szolgálja ki elég gyorsan a puffereket.
- A port.rx_dropped azt jelenti, hogy valami nem elég gyors a slot/memory/ rendszerben.
7.3 Hálózati számlálók
Ellenőrizze a netstat -s-t a munkaterhelés előtt/után.
A Netstat hálózati információkat gyűjt a rendszer összes hálózati eszközéről. Ezért az eredményeket a tesztelt hálózaton kívüli hálózatok is befolyásolhatják. A netstat -s kimenete jó mutatója lehet a Linux operációs rendszer vagy kernel teljesítménybeli problémáinak. Tekintse meg az operációs rendszer hangolási útmutatóit, például a Red Hat Enterprise Linux Network Performance Tuning Guide-ot, ha további betekintést szeretne kapni az operációs rendszer általános hangolásába.
7.4 Rendszernaplók
Ellenőrizze a rendszernaplókat, hogy vannak-e benne hibák és figyelmeztetések (/var/log/messages, dmesg).
7.5 Intel svr-info eszköz
Az Intel egy svr-info eszközt biztosít (lásd https://github.com/intel/svr-info). Az svr-info kimenet rendkívül hasznos lehet a rendszer szűk keresztmetszetek vagy a munkaterheléshez nem optimalizált beállítások/hangolások azonosításában. Amikor Ethernettel kapcsolatos teljesítményproblémák miatt nyit egy támogatási tokot Intellel, feltétlenül adja meg az svr-info kimenetet (szöveg file) minden Linux-kiszolgálóhoz a tesztkonfigurációban.
- Töltse le és telepítse az svr-info-t:
wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
./svr-info
> hostname.txt - Gyűjtsük össze a kimenetet:
./svr-info > gazdagépnév.txt - Egy szöveg csatolása (.txt) file minden egyes kiszolgáló esetében az Intel támogatási esetéhez elemzés céljából.
Javaslatok a közös teljesítményforgatókönyvekhez
8.1 IP továbbítás
- Frissítse a kernelt.
Néhány közelmúltbeli disztribúciós kernel lerontotta az útválasztási teljesítményt az útválasztó kódban bekövetkezett változások miatt, kezdve az útválasztási gyorsítótár biztonság miatti eltávolításával. A legutóbbi, disztribúción kívüli kerneleknek olyan javításokkal kell rendelkezniük, amelyek enyhítik e változtatások teljesítményre gyakorolt hatását, és javíthatják a teljesítményt. - A hiper-szál (logikai magok) letiltása.
- Szerkessze a kernel rendszerindítási paramétereit.
— Az iommu kényszerítése (intel_iommu=off vagy iommu=off) a kernel rendszerindító sorából, hacsak nem szükséges a virtualizáció
— Kapcsolja ki az energiagazdálkodást: processor.max_cstates=1 idle=poll pcie_aspm=off - Korlátozza a sorok számát úgy, hogy egyenlő legyen a helyi socket magjainak számával (ebben pl. 12ample). ethtool -L ethX kombinált 12
- Pin megszakítások csak a helyi aljzathoz. set_irq_affinity -X local ethX VAGY set_irq_affinity -X local ethX
JEGYZET
-X vagy -x használható a terheléstől függően. - Szükség szerint módosítsa a Tx és Rx gyűrűméretet. A nagyobb érték több erőforrást igényel, de jobb továbbítási sebességet biztosíthat. ethtool -G ethX rx 4096 tx 4096
- A GRO letiltása útválasztáskor.
Egy ismert kernelprobléma miatt a GRO-t ki kell kapcsolni az útválasztás/továbbítás során. ethtool -K ethX gro off, ahol az ethX a módosítandó Ethernet interfész. - Tiltsa le az adaptív megszakítás-moderálást, és állítson be statikus értéket. ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64
JEGYZET
A processzor típusától és a munkaterheléstől függően az RX és a TX összevonási paraméterei beállíthatók a jobb teljesítmény (vagy kevesebb képveszteség) érdekében.
- Tiltsa le a tűzfalat. sudo systemctl tűzfal letiltása sudo systemctl tűzfal leállítása
- IP-továbbítás engedélyezése. sysctl -w net.ipv4.ip_forward=1
- Konfigurálja a fogadási és küldési socket pufferméretek maximális értékét. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
JEGYZET
A munkaterheléstől vagy a követelménytől függően ezek az értékek módosíthatók az alapértelmezett értékekről.
8.2 Alacsony késleltetés
- Kapcsolja KI a hiperszálakat (logikai magokat).
- Győződjön meg arról, hogy a hálózati eszköz a numa core 0 helyi.
- Rögzítse a referenciaértéket a 0 maghoz a -c 0 feladatkészlet használatával.
- Az irqbalance kikapcsolása a systemctl stop irqbalance vagy a systemctl disable irqbalance használatával
- Futtassa az affinitási szkriptet a magok közötti terjedéshez. Próbáld ki a helyit vagy az összeset.
- Kapcsolja ki a megszakítás moderálását. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- high 0
- Korlátozza a sorok számát, hogy egyenlő legyen a helyi socket magjainak számával (ebben pl. 32ample). ethtool -L ethX kombinált 32
- A megszakításokat csak a helyi aljzathoz rögzítheti (i40e illesztőprogram-forráshoz csomagolt szkript). set_irq_affinity -X helyi ethX
- Használjon bevált benchmarkot, például netperf -t TCP_RR, netperf -t UDP_RR vagy NetPipe. netperf -t TCP_RR vagy netperf -t UDP_RR
- A benchmark rögzítése egyetlen maghoz a helyi NUMA csomópontban. feladatkészlet -c
Intel ® Ethernet 700 sorozat
Linux Performance Tuning Guide
2024. december
Doc. sz.: 334019, Rev.: 1.2
Dokumentumok / Források
![]() |
Intel Ethernet 700 sorozatú Linux teljesítményhangolás [pdf] Felhasználói útmutató 334019, Ethernet 700-as sorozat Linux teljesítményhangolás, Ethernet 700-as sorozat, Linux teljesítményhangolás, teljesítményhangolás, hangolás |