Je vaša brána VPN obmedzená procesorom? Najprv čítajte zaťaženie podľa jadier
Priemery skrývajú vlákno, na ktorom záleží. Čítajte zaťaženie podľa jadier pri kontrolovanom prenose, vylúčte cestu a potom meňte jedno dokumentované nastavenie na beh.
Určte, ktorý z troch limitov ste dosiahli, skôr než kúpite väčšiu inštanciu. Jedno jadro plne vyťažené, ostatné nečinné ukazuje na kryptografickú prácu na tok. Všetky jadrá nasýtené počas prenosu ukazujú na celkovú kapacitu. Nízke CPU s rastúcim počtom opakovaných prenosov ukazuje na cestu. Každý má iný prvý krok a iba jeden z nich rieši väčšia inštancia.
Tri limity, jedna tabuľka, tri opravy
| Limit | Reading during a transfer | First move |
|---|---|---|
| Single thread | one core near 100%, siblings idle | spread flows across workers |
| Aggregate CPU | every core busy, load average climbs | capacity, or less work per byte |
| Path or provider | low CPU, retransmits or steal time high | MTU, loss, host contention |
Čítajte riadky ako diagnózy, nie ako fázy. Jedno vlákno na 100%, kým ostatné sú nečinné, je najčastejší výsledok na bráne s jedným veľkým tunelom, pretože šifrovanie toho toku beží na jednom jadre. Všetky jadrá zaneprázdnené počas prenosu znamená, že stroj už robí toľko práce, koľko môže. Nízke CPU s rastúcimi opakovanými prenosmi znamená, že procesor čaká na sieť, ktorá stále stráca dáta.
Opravte ich v tomto poradí podľa dôkazov. Rozloženie tokov medzi pracovníkov pomáha prvému prípadu a druhému nerobí nič. Väčšia inštancia pomáha druhému a pri prvom plytvá peniazmi. Oprava MTU alebo strát je jediná, ktorá sa dotkne tretieho. Kupovať kapacitu skôr, než zistíte, v ktorom riadku ste je drahá verzia hádania.
Oddeľte pripnuté vlákno od zaneprázdneného hostiteľa
Začnite využitím podľa jadier, aby sa jedno pripnuté jadro nemohlo schovať v priemere. Jeden beh počas prenosu ukáže, či je zaťaženie ploché alebo špičkované. Oba tvary sú poučné a špičkovaný profil často znamená, že okno vzorkovania zachytilo činnosť plánovača, a nie šifrovanie.
mpstat -P ALL 1 5
Priraďte zaneprázdnené jadro procesu a potom vláknu. Nasledujúci beh nižšie drží rodičovské a podriadené vlákna spolu, čo je dôležité, keď sa démon vetví pre každé spojenie:
pidstat -u -t -p $(pgrep -f 'openvpn|wireguard|ipsec') 1 10
Krypto v jadre sa nikdy neobjaví v počítadle používateľského procesu. Vzorkujte vlákna samostatne a porovnajte tento pohľad s účtovaním procesu:
top -H -b -n 1 | head -20
Počítadlá socketov čítajte nakoniec, pretože rozhodujú, či by viac CPU vôbec pomohlo. Rastúce opakované prenosy pri plochom CPU nie sú problém procesora. Nechajte prenos bežať, kým vzorkujete, inak čísla opisujú nečinný stroj:
ss -ti | grep -E 'retrans|cwnd|rtt'
Kontrolovaný prenos, spustený dvakrát
Nečinné počítadlá nič nedokazujú a benchmark proti náhodnému koncovému bodu dokazuje veľmi málo. Vyberte jedného klienta, jeden cieľ a jeden reprezentatívny prenos, ktorý smiete spustiť, potom zachyťte priepustnosť a interaktívne oneskorenie v tom istom okne. Brána sa môže nasýtiť, kým hromadná kópia ešte končí, a krivka oneskorenia je to, čo používatelia naozaj cítia. Napíšte prenos, počet klientov a verziu démona vedľa čísel.
Zopakujte beh s niekoľkými paralelnými tokmi. Rast naprieč tokmi naznačuje okná na tok; plochý priebeh s jedným pripnutým jadrom naznačuje spracovanie.
Potom zopakujte ešte raz so zastavenými voliteľnými záťažami. Záloha, odosielač logov alebo databáza na tom istom hostiteľovi môžu vytvoriť zaneprázdnený priemer, ktorý nemá nič spoločné s tunelmi. Ak je CPU stále pripnuté, kým je hostiteľ inak tichý, dôkazy ukazujú na proces VPN. Ak klesne, merali ste suseda a brána nikdy nebola problém.
Vylúčte cestu skôr, než kúpite hardvér
Rastúce opakované prenosy, zmenšujúce sa okno preťaženia a rastúci čas spiatočnej cesty ukazujú preč od procesora. Porovnajte MTU tunela s MTU cesty, skontrolujte podkladové spojenie na straty a potvrďte, že vlastné vzostupné spojenie klienta nie je limitom. Väčšia brána neopraví spojenie, ktoré stráca pakety, a používatelia oba defekty opisujú rovnakými slovami. Počítadlo opakovaných prenosov ich oddelí v priebehu minút.
Na virtuálnom serveri pridajte metriky poskytovateľa k tým hostovým. Ukradnutý čas je spôsob, akým sa prepredaj stane viditeľným vnútri hosta, a žiadne ladenie vnútri hosta ho neodstráni. Počítadlá hosta nevidia hostiteľa, takže čistý graf hosta nie je dôkazom zdravého hostiteľa.
Jedna zmena, jedno meranie
Vyberte hypotézu, ktorú dôkazy podporujú, a potom zmeňte presne jedno podporované nastavenie: počet pracovníkov, dokumentovanú voľbu odľahčenia alebo veľkosť inštancie. OpenVPN publikuje sprievodcu riešením problémov s výkonom o rovnakom rozdelení medzi spracovaním a transportom: Riešenie problémov s výkonom OpenVPN.
Overte, či je voľba odľahčenia skutočne aktívna, namiesto dôvery v príznak, potom zopakujte identický prenos a porovnajte porovnateľné. To je jediný spôsob, ako rozlíšiť skutočné zlepšenie od tichého popoludnia. Uchovajte kontrolný bod, ktorý viete obnoviť, pretože pri druhej zmene ľudia strácajú prehľad o tom, ktorá pomohla. Jedna premenná na beh je pomalá na deň a rýchla na mesiac.
Nezoslabujte overovanie ani sadu šifier, aby graf vyzeral lepšie. Ak CPU stále nesleduje príznak, vráťte sa ku kontrolám cesty a aplikácie, namiesto toho, aby ste upgradovali na základe dohadu.