Linux-netværk og TCP/IP for udviklere · Lektion

Finjustering og optimering af NIC

Optimér indstillinger for Network Interface Card (NIC), herunder offloading-funktioner og køstyring, for højere gennemstrømning

Lektion 2 af 411 trin

Finjustering og optimering af NIC er en gratis Linux-netværk og TCP/IP for udviklere-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Linux-netværk og TCP/IP for udviklere, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Linux-netværk og TCP/IP for udviklere-kurset indeholder 4 lektioner i alt.

Introduktion til optimering af NIC

Velkommen til optimering og finjustering af NIC! I denne lektion undersøger vi, hvordan du kan finjustere dit netværkskort (NIC) for at opnå bedre ydeevne.

Et NIC er den hardware, der forbinder din computer med et netværk. Optimering af indstillingerne kan forbedre netværksgennemstrømningen betydeligt og reducere CPU-belastningen.

Find dine netværksgrænseflader

Før du finjusterer noget, skal du kende navnet på dit NIC. Kommandoen ip link viser alle netværksgrænseflader på dit Linux-system samt deres status og navne.

Almindelige navne er eth0, enp0s3 eller wlan0 for Wi-Fi.

ip link show

Mød ethtool: Dit NIC-værktøj

ethtool er det primære kommandolinjeværktøj i Linux til at forespørge på og styre NIC-driverens og hardwarens indstillinger. Det er vigtigt til finjustering af ydeevnen.

Du kan bruge det til at undersøge hastighed, dupleksindstillinger, muligheder for aflastning og meget mere.

ethtool eth0

Undersøg NIC'ets funktioner

En af ethtools effektive funktioner er at vise, hvilke muligheder for hardwareaflastning dit NIC understøtter, og hvilke der i øjeblikket er aktiveret.

Det hjælper dig med at forstå, om dit NIC kan håndtere bestemte netværksopgaver i stedet for CPU'en.

ethtool -k eth0

Forstå aflastning

Aflastning betyder, at netværksbehandlingsopgaver flyttes fra den primære CPU til NIC'ets specialiserede hardware. Det frigiver CPU-cyklusser til andre programmer.

  • Kontrolsumaflastning: NIC'et beregner eller kontrollerer IP-, TCP- eller UDP-kontrolsummer.
  • Segmenteringsaflastning: NIC'et håndterer opdeling af store datablokke i segmenter.

Disse funktioner er afgørende for netværk med høj ydeevne.

TSO og GRO forklaret

To vigtige funktioner til aflastning er TSO og GRO:

  • TSO (TCP Segmentation Offload): Giver operativsystemet mulighed for at sende en stor datablok (op til 64 KB) til NIC'en, som derefter opdeler den i mindre TCP-pakker.
  • GRO (Generic Receive Offload): Kombinerer flere indgående pakker til én større pakke, før den sendes videre til kernen, hvilket reducerer behandlingsomkostningerne.

Begge dele forbedrer ydeevnen ved store dataoverførsler.

Konfiguration af aflastningsfunktioner

Du kan aktivere eller deaktivere bestemte aflastningsfunktioner ved hjælp af ethtool -K. Vær forsigtig, når du ændrer dem, da forkerte indstillinger nogle gange kan forringe ydeevnen eller skabe problemer.

Test altid ændringer i et kontrolleret miljø.

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

Oversigt over NIC-køer

Netværkskort bruger modtagekøer (RX) og sendekøer (TX) til at buffere pakker. Flere køer er især nyttige på CPU'er med flere kerner, fordi forskellige kerner så kan behandle forskellige køer.

  • Flere køer kan forbedre paralleliteten.
  • Større køer kan forhindre pakketab under pludselige trafikspidser.

Administration af NIC-køindstillinger

Du kan undersøge og ændre antallet af RX-/TX-køer ved hjælp af ethtool.

  • ethtool -g eth0: Viser de aktuelle og maksimale køindstillinger.
  • ethtool -L eth0 rx 4 tx 4: Indstiller antallet af RX- og TX-køer til 4.

Justering af disse indstillinger kan hjælpe med at fordele netværksbelastningen på tværs af CPU-kerner.

ethtool -g eth0

Hurtigt tjek: Optimering af NIC

Forestil dig, at din server har høj CPU-udnyttelse under kraftig netværkstrafik, og at du har mistanke om, at NIC'en ikke aflastes effektivt.

Hvilken ethtool-kommando vil du bruge til at kontrollere den aktuelle status for aflastningsfunktionerne?

Opsummering og næste trin

Godt arbejde! Du har lært, hvordan du undersøger og optimerer dit Linux-netværkskort.

  • Vi gennemgik, hvordan du identificerer NIC'er med ip link.
  • Du blev introduceret til ethtool til kontrol og konfiguration af NIC-indstillinger.
  • Vi udforskede aflastningsfunktioner som Checksum, TSO og GRO.
  • Du lærte også at administrere RX-/TX-køer for bedre parallelitet.

Disse optimeringsteknikker kan forbedre dit netværks ydeevne betydeligt. Bliv ved med at øve dig med ethtool!

Gratis at komme i gang

Lær Linux-netværk og TCP/IP for udviklere med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Finjustering og optimering af NIC” gratis?

Ja — hele teksten til “Finjustering og optimering af NIC” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Linux-netværk og TCP/IP for udviklere-kurset, skal du opgradere til CoddyKit PRO. Linux-netværk og TCP/IP for udviklere-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Finjustering og optimering af NIC”?

Optimér indstillinger for Network Interface Card (NIC), herunder offloading-funktioner og køstyring, for højere gennemstrømning Du øver dig i Linux-netværk og TCP/IP for udviklere med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Linux-netværk og TCP/IP for udviklere?

Der kræves ingen tidligere erfaring. Linux-netværk og TCP/IP for udviklere på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Finjustering og optimering af NIC”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Linux-netværk og TCP/IP for udviklere-lektion?

Ja. Alle Linux-netværk og TCP/IP for udviklere-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Netværksparametre i kernen
  2. Finjustering og optimering af NIC
  3. Benchmarking af netværksgennemstrømning
  4. Justering af TCP congestion control
← Tilbage til Linux-netværk og TCP/IP for udviklere