D'Laascht vun engem VPN-Server erklärt: Benotzer, CPU oder Uplink?
En nidderege Laascht-Score kann idle Benotzer, fräi CPU oder eng breet Uplink bedeiten. Liest loadavg, Interface-Zähler an d'Statusdatei, ier Dir et séier nennt.
En Gateway mat enger Laascht vun 0.4 kann nach ëmmer fir all Benotzer hannendrun krauchen. D'Duerchschnëttslaascht zielt Aufgaben, déi ausféierbar sinn oder an engem onënnerbrachbare Schlof hänken, an op engem Host mat véier Käre genüügt ee gesiedegten Prozess, fir se Richtung 1.0 ze drécken, wärend dräi Käre langweileg sëtzen. Dës Zuel als Reserve ze liesen ass dee meescht verbreeten Fehler bei der Auswiel vun engem Endpunkt. Wat en Tunnel tatsächlech begrenzt, ass meeschtens eng vun véier Saachen: ee beschäftegte Kär, d'Uplink, d'Warteschlank dovirun oder eng Politik pro Sessioun, déi keen dokumentéiert huet.
D'Duerchschnëttslaascht zielt Aufgaben, net Duerchsetzung
De Kernel sampelt d'Ausféierungsschlänk an d'Zuel vun den Aufgaben, déi op Input an Output waarden, a gläicht dann béides iwwer eng, fënnef a fofzéng Minutte aus. Näischt an dëser Definitioun ernimmt Bytes, Paketen oder Tunnelen. En Host mat blockéiertem Späicher kann eng héich Laascht mat bal kengem Traffic mellen, an en Host, deen e Gigabit duerch de Kernel-Datapad dréckt, kann eng bequem mellen.
D'Laascht mat der Tunnel-Leeschtung ze korreléiere erfuerdert dofir eng Vue pro Kär. Wann ee Kär voll ass, wäert de Gesamtprozent op engem Dashboard nach ëmmer gutt ausgesinn:
cat /proc/loadavg
mpstat -P ALL 1 1
top -H -b -n 1 | head -n 20
Den drëtte Befehl ass deen, deen op VPN-Hoste am meeschten zielt. D'Paketveraarbechtung am Benotzerraum an OpenVPN 2.x ass gréisstendeels pro Prozess serialiséiert, sou datt een eenzege beschäftegte Fuedem den ieweschte Plafond ka ginn, während den Dashboard vill fräi Kapazitéit mellt. Wann ee Fuedem während Ärer lueser Period de gréissten Deel vun engem Kär hält, ass den Host insgesamt net ënnerdimensiounéiert; hien ass an där Dimensioun limitéiert, déi just wichteg ass.
Opgepasst och op den Timing. Fofzéng-Minutte-Moyennen verstoppen de Burst, deen en Uruff ruinnéiert huet, dofir ass e Screenshot, deen no der Plainte gemaach gouf, e schwaache Beweis. Sampelt während dem Problem a behält den Zäitstempel mat der Ausgab.
D'Uplink an d'Warteschlank dovirun
Interface-Zähler beäntweren d'Bande-Breetheets-Fro, déi CPU-Zuelen net kënnen. Si trennen och Kapazitéit vu Verloscht, wat verschidde Feeler mat verschiddene Korrekture sinn:
ip -s link show dev eth0
tc -s qdisc show dev eth0
nstat -az TcpRetransSegs TcpExtTCPLostRetransmit
Eng Verbindung, déi während Ärem Test no un hirer zougewisener Vitesse ass, ass d'Erklärung, a keng Quantitéit fräi CPU ännert dat. D'qdisc-Zeil bäisetzt d'Detail, dat fir interaktiven Traffic wichteg ass: Réckstand a Verloschter soen Iech, ob d'Paketen an enger Schlaank waarden, ier se fortgoen. Eng Schlaank, déi sech ënner engem groussen Upload fëllt, produzéiert genau de Symptom, deen d'Leit dem wäitem Server ginn, nämlech lues Uruffer op enger Verbindung, déi an de Benchmarks nach gutt do steet.
D'Wiederhuelungs-Zähler fänken de Fall of, wou Pakete fortgoen, awer ni propper ukommen. Wann d'Wiederhuelungen am luese Fënster klammen an d'Interface wäit vu senger Kapazitéit ass, läit de Problem am Wee an net um Host, an de Wiessel op en aneren Endpunkt an der selwechter Stad hëlleft net.
Sessiounszuelen beschreiwen d'Nofro, net de Reserve
All öffentlecht Verzeechnes weist eng gewëssen Zuel ugeschlossene Benotzer, an bal keen dovun erzielt Iech, wat déi Benotzer maachen. Zwanzeg Sessiounen déi interaktiv Aarbecht maachen a véier Sessiounen déi grouss Dateien zéien, produzéieren op der selwechter Hardware ganz verschidde Laaschten. Déi zweet Manéier ass an enger Benotzerzuel onsichtbar, an si ass et déi en Owend ruinnéiert. Dofir liest een eng Sessiounszuel am beschten als Hiweis op d'Nofro, ni als Ausso iwwer fräi Kapazitéit.
| Number on the page | What it is really measuring | What it cannot tell you |
|---|---|---|
| Connected users | How many sessions hold an address | How much each one is transferring |
| Load or score | Whatever the operator chose to publish | Whether that definition matches your task |
| Uptime | How long since the process started | Current capacity, queue depth or packet loss |
| Distance or ping | Round-trip time on a small probe | Throughput under sustained transfer |
Op engem Host, deen Dir kontrolléiert, gëtt d'Statusdatei déi feelend Dimensioun. OpenVPN schreift eng periodesch Momentopnam mat Byte-Zähler pro Client, an dat duerft fir ze gesinn, ob eng eenzeg Sessioun fir déi ganz Uplink verantwortlech ass:
status /run/openvpn/server.status 10
# then, after at least one interval
grep -E "^CLIENT_LIST" /run/openvpn/server.status
Zwee Sampelen zéng Sekonden auseneen verwandelen déi kumulativ Zuelen an eng Vitesse pro Client. Dat ass d'Miessung, fir déi eng Benotzerzuel astéisst, an esou entdeckt Dir och, datt een eenzege falsch konfiguréierte Client all Nuecht zur selwechter Stonn d'Verbindung siedegt.
Limitten pro Sessioun verstoppen sech an der Politik
E Server kann idle sinn an Iech trotzdem d'Bande-Breetheet refuséieren. Vitess-Limitten, Bande-Breetheets-Plafongen pro Client a Traffic-Shaping ginn dacks pro gemeinsamen Numm oder pro Pool ugewannt, sou datt zwee Benotzer op der selwechter Paart ganz verschidde Resultater kréien. De Mechanismus ass net subtil, awer vu baussen onsichtbar, well den Tunnel a béide Fäll normal eropkënnt.
Sicht no Shaping op der Tunnel-Interface an net op der physescher. Préift, ob d'Limit dem Benotzer, dem Zertifikat oder dem Adresspool follegt. Wann Äre Testkont an de Pool ouni Plafong fält, wäert Dir schléissen, datt de Server an der Rei ass an dee Benotzer, dee sech beschwéiert, falsch läit. Dee Schluss ass schléchter wéi keen Schluss, well en den Ticket zoumécht.
Vergläicht zwee Endpunkte mat enger fester Aufgab
Den Experiment op der Client-Säit ass nach ëmmer der Mühe wäert, awer nëmmen wann d'Variabelen festgenagelt sinn. Benotzt déi selwecht Apparat, dee selwechten Zougangsnetz, dee selwechte Protokoll an déiselwecht Destinatiounsdatei, a widderhielt et dann géint en zweeten Endpunkt op enger ähnlecher Distanz. Alles, wat sech tëschent de Lafe ännert, inklusiv d'Dageszäit, verschmotzt d'Resultat.
Schreift Feeler esou suergfälteg op wéi Erfolleger. Eng Serie, wou dräi Endpunkten funktionéieren an een an en Timeout leeft, ass informatiiver wéi véier Vitesszuelen, well se op e Wee- oder Politikproblem weist an net op e Kapazitéitsproblem. Fuert all Fall mindestens zweemol aus; een eenzege luese Sampel beweist näischt op engem gedeelte Netz.
Schlussendlech behält d'Zuelen, déi Dir gesammelt hutt, zesumme mat der Ausso, déi se stäipen. "Dësen Endpunkt huet den Transfer am selwechte Fënster gepackt, an deem deen aneren hänke bliwwen ass" ass verdeedegbar, während "dësen Endpunkt ass méi séier" zu enger Diskussioun invitéiert, déi Dir mat engem Startsäit-Score net gewënnt. Den OpenVPN 2.6-Handbuch dokumentéiert d'Statusdatei an d'Shaping-Optiounen, wann Dir déi genee Richtlinnen fir d'Host-Säit braucht.