Linux-nätverk och TCP/IP för utvecklare · Lektion

Finjustering och optimering av NIC

Optimera inställningar för Network Interface Card (NIC), inklusive avlastningsfunktioner och köhantering, för högre genomströmning.

Lektion 2 av 411 steg

Finjustering och optimering av NIC är en gratis lektion i Linux-nätverk och TCP/IP för utvecklare på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Linux-nätverk och TCP/IP för utvecklare, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Linux-nätverk och TCP/IP för utvecklare innehåller totalt 4 lektioner.

Introduktion till NIC-justering

Välkommen till justering och optimering av NIC! I den här lektionen utforskar vi hur du finjusterar ditt Network Interface Card (NIC) för bättre prestanda.

Ett NIC är den maskinvara som ansluter datorn till ett nätverk. Genom att optimera inställningarna kan du avsevärt förbättra nätverkets genomströmning och minska processorbelastningen.

Hitta dina nätverksgränssnitt

Innan du börjar justera inställningarna behöver du känna till namnet på ditt NIC. Kommandot ip link listar alla nätverksgränssnitt i Linux-systemet och visar deras status och namn.

Vanliga namn är eth0, enp0s3 eller wlan0 för Wi-Fi.

ip link show

Möt ethtool: ditt NIC-verktyg

ethtool är det primära kommandoradsverktyget i Linux för att fråga efter och styra inställningar för NIC-drivrutiner och NIC-maskinvara. Det är oumbärligt för prestandajustering.

Du kan använda det för att granska hastighet, duplexinställningar, offload-funktioner och mycket annat.

ethtool eth0

Granska NIC-funktioner

En av de kraftfulla funktionerna i ethtool är att visa vilka funktioner för maskinvaruoffload ditt NIC stöder och vilka som är aktiverade för närvarande.

Det hjälper dig att förstå om ditt NIC kan hantera vissa nätverksuppgifter i stället för processorn.

ethtool -k eth0

Förstå offloading

Offloading innebär att nätverksbearbetning delegeras från huvudprocessorn till NIC:ets specialiserade maskinvara. Det frigör processorcykler för andra program.

  • Checksum Offload: NIC beräknar eller verifierar kontrollsummor för IP, TCP eller UDP.
  • Segmentation Offload: NIC hanterar segmenteringen av stora datablock.

Dessa funktioner är avgörande för nätverk med hög prestanda.

TSO och GRO förklarade

Två viktiga avlastningsfunktioner är TSO och GRO:

  • TSO (TCP Segmentation Offload): Gör det möjligt för operativsystemet att skicka en stor datamängd (upp till 64 KB) till NIC:et, som sedan delar upp den i mindre TCP-paket.
  • GRO (Generic Receive Offload): Slår ihop flera inkommande paket till ett enda större paket innan det skickas vidare till kärnan, vilket minskar bearbetningskostnaden.

Båda förbättrar prestandan vid stora dataöverföringar.

Konfigurera avlastningsfunktioner

Du kan aktivera eller inaktivera specifika avlastningsfunktioner med ethtool -K. Var försiktig när du ändrar dessa inställningar, eftersom felaktiga inställningar ibland kan försämra prestandan eller orsaka problem.

Testa alltid ändringar i en kontrollerad miljö.

sudo ethtool -K eth0 rx-checksum on
sudo ethtool -K eth0 tso off

Översikt över NIC-köer

Nätverkskort använder köer för mottagning (RX) och sändning (TX) för att buffra paket. Flera köer är särskilt fördelaktiga på processorer med flera kärnor, eftersom olika kärnor då kan bearbeta olika köer.

  • Fler köer kan förbättra parallelliteten.
  • Större köer kan förhindra paketförluster vid tillfälliga trafiktoppar.

Hantera inställningar för NIC-köer

Du kan visa och ändra antalet RX-/TX-köer med ethtool.

  • ethtool -g eth0: Visar aktuella och maximala köinställningar.
  • ethtool -L eth0 rx 4 tx 4: Anger antalet RX- och TX-köer till 4.

Genom att justera dessa inställningar kan du fördela nätverkstrafiken mellan processorkärnorna.

ethtool -g eth0

Snabbtest: justera NIC

Föreställ dig att din server har hög CPU-användning vid kraftig nätverkstrafik och att du misstänker att NIC:et inte avlastar uppgifter effektivt.

Vilket ethtool-kommando skulle du använda för att kontrollera den aktuella statusen för avlastningsfunktionerna?

Sammanfattning och nästa steg

Bra jobbat! Du har lärt dig att undersöka och optimera ditt Linux-nätverkskort.

  • Vi gick igenom hur du identifierar NIC:er med ip link.
  • Du fick lära dig använda ethtool för att kontrollera och konfigurera NIC-inställningar.
  • Vi utforskade avlastningsfunktioner som Checksum, TSO och GRO.
  • Du lärde dig också att hantera RX-/TX-köer för bättre parallellitet.

Med dessa justeringstekniker kan du förbättra nätverkets prestanda avsevärt. Fortsätt öva med ethtool!

Gratis att börja

Lär dig Linux-nätverk och TCP/IP för utvecklare med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Finjustering och optimering av NIC” gratis?

Ja – hela texten till ”Finjustering och optimering av NIC” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Linux-nätverk och TCP/IP för utvecklare, kan Ni uppgradera till CoddyKit PRO. Kursen i Linux-nätverk och TCP/IP för utvecklare innehåller totalt 4 lektioner.

Vad lär jag mig i ”Finjustering och optimering av NIC”?

Optimera inställningar för Network Interface Card (NIC), inklusive avlastningsfunktioner och köhantering, för högre genomströmning. Ni övar på Linux-nätverk och TCP/IP för utvecklare med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Linux-nätverk och TCP/IP för utvecklare?

Du behöver inga förkunskaper. Utbildningen i Linux-nätverk och TCP/IP för utvecklare på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Finjustering och optimering av NIC”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Linux-nätverk och TCP/IP för utvecklare-lektionen?

Ja. Varje Linux-nätverk och TCP/IP för utvecklare-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Nätverksparametrar i kärnan
  2. Finjustering och optimering av NIC
  3. Mäta nätverkets genomströmning
  4. Finjustera TCP:s trängselkontroll
← Tillbaka till Linux-nätverk och TCP/IP för utvecklare