Een router adverteert met snel wifi en worstelt vervolgens om het verkeer van drie apparaten tegelijk te versleutelen. Een laptop bereikt een rekenlimiet terwijl de toegangslijn nog ruimte heeft. Meestal krijgt de server als eerste de schuld, en meestal is die onschuldig. De limiet zit op de machine die het tunnelwerk doet, en om die te vinden moet je naar die machine kijken in plaats van naar de snelheidstest.

Het symptoom wijst naar één machine, niet naar het internet

Waar de tunnel draait bepaalt welke processor ervoor betaalt. Als de router hem beëindigt, deelt elke gedekte client het budget van die router. Als de laptop een client draait, betaalt de laptop en de router niet. Tunnels aan beide uiteinden maken twee werklasten die elk op een andere dag de limiet kunnen worden. De machine benoemen is de eerste stap, en juist die stap slaan mensen over wanneer ze een ticket bij de provider openen.

Tel de apparaten tussen de toepassing en het verre uiteinde en markeer dan degene die versleutelt. Al het overige is slechts een drager van bytes die het niet kan lezen.

Bekijk de belasting per kern tijdens een overdracht

Een totaal CPU-percentage is het verkeerde instrument, omdat versleutelingswerk vaak één kern vastzet terwijl de rest niets doet. Kijk tijdens een gecontroleerde overdracht naar cijfers per kern en let op een kern dicht bij verzadiging. Een matig gemiddelde met één bezige thread is een sterk signaal, terwijl een hoog gemiddelde zonder bezige thread meestal een ongerelateerd programma betekent. Het patroon zegt meer dan het getal.

mpstat -P ALL 1 5
top -H -b -n 1 | head -20
lscpu | grep -i -E "model name|aes"

De derde opdracht vertelt of de processor AES-instructies aanbiedt, wat de kosten van dezelfde cipher sterk verandert. Ze vertelt niet of de VPN-implementatie ze gebruikt, en juist de kloof tussen die twee feiten is de bron van de meeste optimalisatieclaims.

Scheid versleuteling van pakketafhandeling

Versleuteling is één kostenpost onder meerdere. Het kopiëren van pakketten tussen kernel en gebruikersruimte, routeopzoeking, firewallregels en interfaceafhandeling dragen allemaal bij, en sommige implementaties betalen meer voor kopiëren dan voor cryptografie. Let op welke teller samen met de overdracht stijgt in plaats van de procesnaam te vertrouwen om elke cyclus te verklaren. Een tunnel in gebruikersruimte en een tunnel in de kernel kunnen heel verschillende profielen tonen voor identiek verkeer.

Als één kern binnen de kernel bezig is, verschilt de oplossing van een bezige thread in gebruikersruimte, en het profiel vertelt welke je hebt. Dat onderscheid is een uur waard voordat je hardware koopt.

Vergelijk gelijk met gelijk voordat je concludeert

Een vergelijking is alleen nuttig als de taak, het toegangsnetwerk en het eindpunt gelijk blijven. Verander de server en het resultaat bevat de route en capaciteit van die server; verander het netwerk en het bevat de provider. Gebruik hetzelfde bestand, dezelfde bestemming en hetzelfde tijdstip van de dag, en pauzeer je eigen achtergrondwerk. Als je het apparaat moet wisselen, wissel dan alleen het apparaat.

Voeding en warmte veranderen duurzame prestaties, dus een korte run op een koude machine is niet dezelfde meting als een lange overdracht op een warme. Vergelijk vergelijkbare voedingomstandigheden en schrijf ze op, want een thermische limiet ziet er in een grafiek precies uit als een rekenlimiet.

Gebruik ondersteunde offload en controleer of die echt is ingeschakeld

Sommige implementaties kunnen een deel van het datapad naar de kernel of naar hardware verplaatsen, en de beschikbaarheid hangt af van de client, het besturingssysteem, de server en de configuratie. Lees de documentatie voor de versie die je draait en gebruik de eigen statusuitvoer of logs om te bevestigen dat de functie actief is. Een geïnstalleerd pakket of een aangevinkt vakje is geen bewijs. De OpenVPN-handleiding documenteert datakanaalopties voor zijn eigen releases, en die opties verschillen per versie.

Wanneer een ondersteunde wijziging het plafond verschuift, voer dan zowel de applicatietaak als een bulkoverdracht opnieuw uit, en bewaar het vorige profiel zodat je kunt terugdraaien. Een bulkdebiet dat verdubbelt terwijl de toepassing traag blijft, heeft de flessenhals verplaatst in plaats van hem weg te nemen.

Volgen de processorwaarnemingen het symptoom niet, keer dan terug naar de netwerkkant. Wifi-herhalingen, wachtrijen en het uitgangspad geven hetzelfde resultaat zonder enige CPU-betrokkenheid.

Gerelateerde artikelen