Programmeren van WebSockets en realtime-systemen · Les

Loadtesting en capaciteitsplanning voor WebSockets

Leer duizenden gelijktijdige WebSocket-verbindingen simuleren, serverlimieten meten en capaciteit plannen, zodat uw realtime systeem zonder verrassingen kan meegroeien.

Les 4 van 413 stappen

Loadtesting en capaciteitsplanning voor WebSockets is een gratis Programmeren van WebSockets en realtime-systemen-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Programmeren van WebSockets en realtime-systemen. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Programmeren van WebSockets en realtime-systemen bevat in totaal 4 lessen.

Waarom belastingtesten belangrijk zijn

Benchmarking laat zien hoe één verbinding zich gedraagt, maar belastingtesten laten zien wat er gebeurt wanneer duizenden clients tegelijk verbinding maken.

  • Vind het breekpunt voordat gebruikers dat doen
  • Controleer aannames over horizontaal schalen
  • Bereken je infrastructuurbudget nauwkeurig

Verbindingen versus berichten

Twee onafhankelijke dimensies belasten een realtime-server op verschillende manieren:

  • Het aantal verbindingen bepaalt het geheugengebruik en het gebruik van bestandsdescriptors
  • De berichtdoorvoer bepaalt het CPU-gebruik en de netwerkbandbreedte

Test beide dimensies altijd afzonderlijk én gecombineerd.

Een belastingstool kiezen

Populaire tools voor WebSocket-belastingtesten zijn artillery, k6 en websocket-bench. Ze openen veel sockets en rapporteren latentiepercentielen.

# Install artillery
npm install -g artillery
artillery --version

Een eenvoudig Artillery-scenario

Deze YAML-configuratie bouwt gedurende 60 seconden op naar 500 nieuwe verbindingen per seconde en verstuurt een bericht om deel te nemen.

config:
  target: 'ws://localhost:8080'
  phases:
    - duration: 60
      arrivalRate: 500
scenarios:
  - engine: ws
    flow:
      - send: '{"type":"join","room":"load"}'

Verbindingen scripten in Node

Je kunt belastingtesten ook handmatig scripten voor volledige controle over de timing van berichten.

const WebSocket = require('ws');
const TOTAL = 1000;
let open = 0;
for (let i = 0; i < TOTAL; i++) {
  const ws = new WebSocket('ws://localhost:8080');
  ws.on('open', () => { open++; if (open === TOTAL) console.log('all connected'); });
}

Latentiepercentielen meten

Gemiddelden verbergen problemen. Rapporteer p50, p95 en p99 voor de latentie. Een goede p50 met een slechte p99 betekent dat sommige gebruikers een slechte ervaring hebben.

Serverbronnen bewaken

Bewak tijdens een test ook de serverkant: CPU, RSS-geheugen, geopende bestandsdescriptors en vertraging in de gebeurtenislus.

# Count open sockets for a process
lsof -p $(pgrep -f node) | grep -c TCP

Limieten voor bestandsdescriptors

Elke verbinding gebruikt een bestandsdescriptor. De standaardlimiet van het besturingssysteem (vaak 1024) begrenst je aantal verbindingen al voordat de CPU dat doet.

# Inspect and raise the soft limit
ulimit -n
ulimit -n 100000

Het breekpunt vinden

Verhoog de belasting stapsgewijs totdat de latentie piekt of verbindingen worden verbroken. Dat omslagpunt is je capaciteit per node.

  • Noteer het aantal verbindingen bij de eerste fout
  • Houd een veiligheidsmarge van 30-50% aan

Van capaciteit naar aantal nodes

Capaciteitsplanning is rekenwerk zodra je de limieten per node kent.

const peakUsers = 80000;
const perNode = 10000;
const safety = 0.6; // use 60% of measured max
const nodes = Math.ceil(peakUsers / (perNode * safety));
console.log('nodes needed:', nodes);

Testen in een realistische omgeving

Voer belastingtesten uit op hardware voor staging die overeenkomt met productie en genereer de belasting vanaf meerdere machines, zodat de client nooit het knelpunt vormt.

Korte controle

Welke limiet van het besturingssysteem begrenst meestal als eerste het aantal WebSocket-verbindingen?

Samenvatting

Je hebt geleerd hoe je WebSocket-systemen belast en de capaciteit plant:

  • Test het aantal verbindingen en de berichtdoorvoer afzonderlijk
  • Rapporteer p95/p99-latentie, geen gemiddelden
  • Verhoog de limieten voor bestandsdescriptors voordat je test
  • Vind het breekpunt en bepaal het aantal nodes met een veiligheidsmarge
Gratis beginnen

Leer Programmeren van WebSockets en realtime-systemen 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
47

Veelgestelde vragen

Is de les “Loadtesting en capaciteitsplanning voor WebSockets” gratis?

Ja — de volledige tekst van “Loadtesting en capaciteitsplanning voor WebSockets” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Programmeren van WebSockets en realtime-systemen wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Programmeren van WebSockets en realtime-systemen bevat in totaal 4 lessen.

Wat leer ik in “Loadtesting en capaciteitsplanning voor WebSockets”?

Leer duizenden gelijktijdige WebSocket-verbindingen simuleren, serverlimieten meten en capaciteit plannen, zodat uw realtime systeem zonder verrassingen kan meegroeien. Je oefent met Programmeren van WebSockets en realtime-systemen 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 Programmeren van WebSockets en realtime-systemen te beginnen?

Ervaring vooraf is niet nodig. Programmeren van WebSockets en realtime-systemen 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 4 van 4.

Hoe lang duurt de les “Loadtesting en capaciteitsplanning voor WebSockets”?

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 Programmeren van WebSockets en realtime-systemen?

Ja. Elke les over Programmeren van WebSockets en realtime-systemen 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. WebSocket-prestaties benchmarken
  2. Realtimeproblemen profileren en debuggen
  3. Realtime monitoring en meldingen
  4. Loadtesting en capaciteitsplanning voor WebSockets
← Terug naar Programmeren van WebSockets en realtime-systemen