Ugotovite, katero od treh meja ste dosegli, preden kupite večjo instanco. Eno jedro polno obremenjeno, druga pa nedejavna kaže na kriptografsko delo na tok. Vsa jedra nasičena med prenosom kažejo na skupno zmogljivost. Nizek CPU z naraščajočim številom ponovnih prenosov kaže na pot. Vsaka ima drugačen prvi korak in le eno reši večja instanca.

Tri meje, ena tabela, tri popravki

LimitReading during a transferFirst move
Single threadone core near 100%, siblings idlespread flows across workers
Aggregate CPUevery core busy, load average climbscapacity, or less work per byte
Path or providerlow CPU, retransmits or steal time highMTU, loss, host contention

Vrstice berite kot diagnoze, ne kot faze. Ena nit pri 100%, medtem ko so druge nedejavne, je najpogostejši rezultat na prehodu z enim velikim tunelom, ker šifriranje tega toka teče na enem jedru. Vsa jedra zasedena med prenosom pomeni, da stroj že opravlja toliko dela, kolikor ga zmore. Nizek CPU z naraščajočimi ponovnimi prenosi pomeni, da procesor čaka na omrežje, ki nenehno izgublja podatke.

Popravite jih v tem vrstnem redu dokazov. Razporeditev tokov med delavce pomaga prvemu primeru in za drugega ne naredi ničesar. Večja instanca pomaga drugemu in zapravlja denar pri prvem. Popravek MTU ali izgube je edini, ki se dotakne tretjega. Nakup zmogljivosti, preden veste, v kateri vrstici ste je draga različica ugibanja.

Ločite pripeto nit od zasedenega gostitelja

Začnite z uporabo po jedrih, da se eno pripeto jedro ne more skriti v povprečju. En zagon med prenosom pokaže, ali je obremenitev ravna ali s konicami. Obe obliki sta poučni, profil s konicami pa pogosto pomeni, da je okno vzorčenja ujelo dejavnost razporejevalnika in ne šifriranja.

mpstat -P ALL 1 5

Pripnite zasedeno jedro procesu, nato niti. Naslednji zagon spodaj drži nadrejene in podrejene niti skupaj, kar je pomembno, ko se demon razveji za vsako povezavo:

pidstat -u -t -p $(pgrep -f 'openvpn|wireguard|ipsec') 1 10

Kriptografija jedra se nikoli ne pojavi v števcu uporabniškega procesa. Vzorčite niti ločeno in primerjajte ta pogled z obračunom procesa:

top -H -b -n 1 | head -20

Števce vtičnic berite nazadnje, ker odločajo, ali bi več CPU sploh pomagalo. Naraščajoči ponovni prenosi ob ravnem CPU niso težava procesorja. Med vzorčenjem pustite prenos v teku, sicer številke opisujejo nedejaven stroj:

ss -ti | grep -E 'retrans|cwnd|rtt'

Nadzorovan prenos, izveden dvakrat

Nedejavni števci ničesar ne dokažejo, primerjava z naključno končno točko pa zelo malo. Izberite enega odjemalca, en cilj in en reprezentativen prenos, ki ga smete izvesti, nato v istem oknu zabeležite prepustnost in interaktivno zakasnitev. Prehod se lahko nasiči, medtem ko se množično kopiranje še končuje, in krivulja zakasnitve je tisto, kar uporabniki resnično občutijo. Zapišite prenos, število odjemalcev in različico demona ob številkah.

Ponovite zagon z več vzporednimi tokovi. Povečanje po tokovih kaže na okna na tok; ostajanje ravno s pripetim jedrom kaže na obdelavo.

Nato ponovite še enkrat z ustavljenimi izbirnimi delovnimi obremenitvami. Varnostna kopija, pošiljatelj dnevnikov ali baza podatkov na istem gostitelju lahko ustvarijo zasedeno povprečje, ki nima nič skupnega s tuneli. Če je CPU še vedno pripet, gostitelj pa sicer tih, dokazi kažejo na proces VPN. Če upade, ste merili soseda in prehod nikoli ni bil težava.

Izključite pot, preden kupite strojno opremo

Naraščajoči ponovni prenosi, krčeče se okno zastoja in naraščajoči povratni čas kažejo stran od procesorja. Primerjajte MTU tunela z MTU poti, preverite osnovno povezavo za izgube in potrdite, da lastna vzvodna povezava odjemalca ni meja. Večji prehod ne popravi povezave, ki izgublja pakete, in uporabniki oba defekta opisujejo z istimi besedami. Števec ponovnih prenosov ju loči v minutah.

Na virtualnem strežniku dodajte meritve ponudnika k tistim pri gostu. Ukradeni čas je način, kako presežna prodaja postane vidna znotraj gosta, in nobena nastavitev znotraj gosta ga ne odpravi. Števci gosta ne vidijo gostitelja, zato čist graf gosta ni dokaz zdravega gostitelja.

Ena sprememba, ena meritev

Izberite hipotezo, ki jo dokazi podpirajo, nato spremenite natanko eno podprto nastavitev: število delavcev, dokumentirano možnost razbremenitve ali velikost instance. OpenVPN objavlja vodnik za odpravljanje težav z zmogljivostjo o isti delitvi med obdelavo in prenosom: Odpravljanje težav z zmogljivostjo OpenVPN.

Preverite, ali je možnost razbremenitve resnično aktivna, namesto da zaupate zastavici, nato ponovite enak prenos in primerjajte primerljivo. To je edini način, da ločite resnično izboljšanje od tihega popoldneva. Ohranite kontrolno točko, ki jo lahko obnovite, ker pri drugi spremembi ljudje izgubijo sled, katera je pomagala. Ena spremenljivka na zagon je počasna za en dan in hitra za en mesec.

Ne oslabite overjanja ali nabora šifer, da bi graf izgledal bolje. Če CPU še vedno ne sledi simptomu, se vrnite k preverjanjem poti in aplikacije, namesto da bi nadgradili na podlagi domneve.

Sorodni članki