← Back to team overview

sslug-teknik team mailing list archive

Netværksperformance. Problemer med udp pakke tab

 

Hejsa.

Jeg kører - som det vil være nogen bekendt - en række Quake servere på en
Dual PPro 200 SMP linux, m. 320 MB ram, og et Intel eepro100 kort.

Fornylig upgraderede vi fra 2.0.36 til 2.2.12 i håb om at forbedre vores
udp pakke tab frekvens. Tidligere kunne vi opleve, at vi tabte en del udp
pakker, på selve serveren*, og vi håbede at den ny APIC kode, der (som jeg
har forstået det) fordeler interrupts ud på cpu'erne, istedet for at binde
alt til cpu 0, kunne forbedre chancen for at netværks int blev behandlet
tilstrækkeligt godt til at udp pakke tabet svandt.

Imidlertid er der sket næsten det modsatte. Vi har nu jævnligt 20 % udp
tab på selve maskinen. Jeg har prøvet at logge lidt hvad der sker i nogle
af de aktive perioder, og har fundet frem til følgende:

Antallet af interrupts fra eth0 ligger omkring 3500 til 5000 pr. sekund
Antallet af modtagne udp pakker ligger omkring 2000 til 2500 pr. sekund
Antallet af afsendte udp pakker ligger omkring 1500 til 2000 pr. sekund

Interrupts er fordelt omtrent ligeligt på de to cpuer. I den periode vi
snakker om, er der omkring 25-30 quake klienter på maskinen. Maskinen
synes selv dens load er 2-3 (med en enkelt peak på 5).

Et spørgsmål er følgende: Er der nogen der har nogen fornemmelse af, hvad
et sådant setup egentlig kan klare, mht. antal pakker og afbrydelser?

Umiddelbart synes jeg 3500-5000 afbrydelser pr. sekund er ret meget, men
i en ligefordeling er der stadig omkring 285-200 mikrosekunder imellem. 

eepro100.c har forskellige indstillingsmuligheder. Jeg har især haft kig
på 

/* Maximum events (Rx packets, etc.) to handle at each interrupt. */
static int max_interrupt_work = 200;

Ville det kunne betale sig for mig at sætte den op? Eller ned?

Skal jeg kigge på de helt nye kerner? Skal jeg anskaffe mig et andet
netkort? 

En af grundene til at jeg er meget interesseret i at finde ud af det er,
at jeg ved at man kan køre rigtigt mange klienter på FreeBSD - jeg vil
helst Linux, men det bliver vanskeligere og vanskeligere at fastholde
dette, når performance går den forkerte vej!

Mads

* Ja, jeg er klar over at udp er forbindelsesløs og upålidelig. Det har
ikke noget med det her at gøre. Her forsvinder pakkerne, formentlig bliver
de aldrig sent fra selve serveren ud på nic'en. Jeg er lidt i tvivl om
præcist hvor, men det er ikke på nettet.

-- 
Mads Bondo Dydensborg.                               madsdyd@xxxxxxxxxxxx
Good luck to all you optimists out there who think Microsoft can deliver 35
million lines of quality code on which you can operate your business.
                                        - John C. Dvorak, zdnet.



Follow ups