De basis van Apache Kafka en streamverwerking · Les

Optimalisatie van disk-I/O en netwerk

Begrijp hoe u de onderliggende infrastructuur voor Kafka configureert om de prestaties van disk-I/O en het netwerk te maximaliseren.

Les 3 van 411 stappen

Optimalisatie van disk-I/O en netwerk is een gratis De basis van Apache Kafka en streamverwerking-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject De basis van Apache Kafka en streamverwerking. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus De basis van Apache Kafka en streamverwerking bevat in totaal 4 lessen.

Schijf-I/O en netwerk voor Kafka

Kafka is een systeem met een hoge verwerkingscapaciteit en lage latentie. De prestaties hangen sterk af van de onderliggende infrastructuur: schijf-I/O en netwerkbandbreedte.

Het optimaliseren van deze onderdelen is cruciaal om grote hoeveelheden gegevens efficiënt te verwerken en ervoor te zorgen dat je Kafka-cluster de vraag kan bijhouden.

Kafka's afhankelijkheid van schijven

Kafka-brokers slaan alle berichten op schijf op in onveranderlijke, geordende logbestanden. Dit ontwerp zorgt voor duurzaamheid en stelt consumers in staat gegevens in hun eigen tempo te lezen.

Kafka voert voornamelijk sequentiële schrijfbewerkingen uit naar deze logbestanden. Sequentiële I/O is veel sneller dan willekeurige I/O, zelfs op traditionele harde schijven (HDD's).

SSD's versus HDD's voor Kafka

Hoewel Kafka's sequentiële schrijfbewerkingen HDD's bruikbaar maken, bieden Solid State Drives (SSD's) over het algemeen betere prestaties, vooral bij bewerkingen zoals logcompactie of herstel.

  • SSD's: Meer IOPS, lagere latentie en beter geschikt voor gemengde werklasten of situaties waarin willekeurige toegang plaatsvindt (bijvoorbeeld tijdens herstel).
  • HDD's: Kosteneffectief voor uitsluitend sequentiële schrijfbewerkingen, maar kunnen een knelpunt vormen bij willekeurige lees- en schrijfbewerkingen.

Voor productieomgevingen worden SSD's vaak aanbevolen vanwege hun consistente prestaties.

RAID gebruiken voor schijven

Configuraties met RAID (Redundant Array of Independent Disks) kunnen zowel de prestaties als de fouttolerantie verbeteren.

  • RAID 0 (striping): Verdeelt gegevens over meerdere schijven, waardoor de lees- en schrijfsnelheid aanzienlijk toeneemt. Er is echter geen redundantie: als één schijf uitvalt, gaan alle gegevens verloren.
  • RAID 10 (striping + mirroring): Combineert de snelheid van RAID 0 met de spiegeling van RAID 1 voor redundantie. Dit is voor Kafka vaak de aanbevolen keuze, omdat het zowel hoge prestaties als gegevensbescherming biedt.

Keuze van bestandssysteem

De keuze en configuratie van het bestandssysteem kunnen de schijfprestaties van Kafka beïnvloeden.

  • XFS: Wordt vaak aanbevolen voor Kafka vanwege de sterke prestaties met grote bestanden en uitstekende schaalbaarheid.
  • Ext4: Een veelgebruikte en betrouwbare keuze, maar XFS kan voor de specifieke I/O-patronen van Kafka soms een hogere verwerkingscapaciteit bieden.

Controleer of je bestandssysteem met geschikte opties is aangekoppeld, zoals noatime, om onnodige schrijfbewerkingen naar de schijf te beperken.

Schijfplanners van het besturingssysteem

De schijfplanner van het besturingssysteem beheert de volgorde waarin I/O-verzoeken naar de schijf worden verzonden. Verschillende planners zijn geoptimaliseerd voor verschillende werklasten:

  • noop: Een eenvoudige FIFO-wachtrij, die vaak het beste werkt voor SSD's of gevirtualiseerde omgevingen waarin de hypervisor de planning uitvoert.
  • deadline: Geeft prioriteit aan I/O-verzoeken om uithongering te voorkomen en is geschikt voor gemengde werklasten.
  • CFQ (Completely Fair Queuing): Probeert de I/O-bandbreedte eerlijk over processen te verdelen, maar kan latentie veroorzaken.

Voor Kafka op SSD's is noop over het algemeen een goed uitgangspunt.

Netwerken met hoge snelheid

Het vermogen van Kafka om een hoge hoeveelheid gegevens te verwerken hangt sterk af van je netwerkinfrastructuur. Producers verzenden gegevens, consumers ontvangen deze en brokers repliceren ze – allemaal via het netwerk.

Het gebruik van 10 Gigabit Ethernet (10GbE) of sneller voor je Kafka-brokers wordt vaak aanbevolen om netwerkknelpunten te voorkomen. Zorg er ook voor dat je netwerkswitches en bekabeling deze snelheden ondersteunen.

TCP-buffers optimaliseren

TCP-buffers op zowel besturingssysteem- als Kafka-niveau kunnen de netwerkprestaties aanzienlijk beïnvloeden.

  • OS-niveau: Stem net.core.wmem_default, net.core.rmem_default en vergelijkbare instellingen af om grotere buffers toe te staan.
  • Kafka-niveau: Pas socket.send.buffer.bytes (standaard 100 KB) en socket.receive.buffer.bytes (standaard 100 KB) aan in je brokerconfiguratie zodat ze bij je netwerkcapaciteit passen. Grotere buffers kunnen de verwerkingscapaciteit verbeteren op netwerken met hoge latentie.

Offloading van netwerkhardware

Moderne netwerkinterfacekaarten (NIC's) beschikken vaak over hardwarefuncties voor offloading die het CPU-gebruik kunnen verlagen en de netwerkdoorvoer kunnen verbeteren.

  • Checksum-offloading: De NIC berekent en controleert TCP/IP-checksums.
  • TSO (TCP Segmentation Offload) & GSO (Generic Segmentation Offload): De NIC verwerkt het opdelen van grote pakketten, waardoor de CPU minder wordt belast.

Zorg dat deze functies zijn ingeschakeld op de Kafka-brokerservers voor optimale netwerkprestaties. Je kunt dit vaak controleren en configureren met hulpmiddelen zoals ethtool.

Schijf- en netwerkcontrole

Tijd om je kennis van infrastructuuroptimalisatie voor Kafka te testen!

Samenvatting: infrastructuur optimaliseren

Goed gedaan! In deze les hebben we besproken hoe je de onderliggende infrastructuur voor Kafka optimaliseert.

  • We hebben het belang van SSD's en RAID 10 voor schijf-I/O besproken.
  • We hebben geleerd over aanbevolen bestandssystemen zoals XFS en schijfplanners van het besturingssysteem.
  • We hebben besproken hoe je netwerkprestaties verbetert met NIC's met hoge snelheid, het afstemmen van TCP-buffers en hardware-offloading.

Door deze fundamentele onderdelen zorgvuldig te configureren, kun je aanzienlijke prestatiewinst behalen voor je Kafka-cluster!

Gratis beginnen

Leer De basis van Apache Kafka en streamverwerking met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “Optimalisatie van disk-I/O en netwerk” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad De basis van Apache Kafka en streamverwerking, waaronder “Optimalisatie van disk-I/O en netwerk”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus De basis van Apache Kafka en streamverwerking bevat in totaal 4 lessen.

Wat leer ik in “Optimalisatie van disk-I/O en netwerk”?

Begrijp hoe u de onderliggende infrastructuur voor Kafka configureert om de prestaties van disk-I/O en het netwerk te maximaliseren. Je oefent met De basis van Apache Kafka en streamverwerking door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met De basis van Apache Kafka en streamverwerking te beginnen?

Ervaring vooraf is niet nodig. De basis van Apache Kafka en streamverwerking op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Optimalisatie van disk-I/O en netwerk”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over De basis van Apache Kafka en streamverwerking?

Ja. Elke les over De basis van Apache Kafka en streamverwerking bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Producer- en consumerperformance
  2. Brokerconfiguratie en tuning
  3. Optimalisatie van disk-I/O en netwerk
  4. Batching, compressie en linger-tuning
← Terug naar De basis van Apache Kafka en streamverwerking