Stadige deurset deur 'n tonnel en 'n masjien wat vasgehaak is terwyl dit op ewekansige getalle wag, lewer baie verskillende ervarings, en tog word hulle onder dieselfde klag ingedien. Die een wys as 'n pouse voordat enigiets werk. Die ander wys as 'n verbinding wat werk en data stadig beweeg solank jy dit dophou. Om te besluit watter een jy het, neem tien minute en spaar 'n week se raaiwerk.

Twee simptome wat dieselfde lyk

'n Diens wat ná 'n vars herbegin hang, voordat dit 'n enkele verbinding aanvaar, wag vir iets. 'n Tonnel wat vinnig vestig en dan teen 'n fraksie van die verwagte tempo data oordra, word deur iets anders beperk. Die woord enkripsie verskyn in albei verhale, en daarom word hulle saamgevoeg. Skei hulle voordat jy aan 'n konfigurasielêer raak.

Plaas tydstempels rondom die opstart, verifikasie, sleutelheronderhandeling en die oordrag self. 'n Lang vertraging voordat die tonnel bruikbaar is, is nie 'n lae bestendige tempo nie, en om die twee in een getal te vermiddel, verwoes die bewyse.

systemd-analyze blame | head -10
journalctl -u [email protected] -o short-precise | head -40
cat /proc/sys/kernel/random/entropy_avail

Die eerste twee opdragte plaas opstartwerk op 'n tydlyn. Die derde druk die kernel se entropie-rekeningwaarde, wat nuttig is as 'n enkele datapunt en nutteloos as 'n bandwydtemeter.

Hoe 'n wag op ewekansige getalle werklik lyk

'n Versoek om veilige ewekansige grepe kan blokkeer totdat die kernel sy ewekansige bron geïnitialiseer het. Dit maak die meeste saak op virtuele masjiene en klein ingebedde borde vroeg in die opstart, wanneer min omgewingsgeraas ingesamel is. Dit volg nie dat elke geënkripteerde greep vars entropie verbruik nie.

Moderne opwekkers saai een keer en produseer dan uitset uit 'n deterministiese konstruksie, en hersaai volgens hul eie skedule. Bulk-oordrag dreineer nie 'n poel greep vir greep nie, so 'n lae poelwaarde tydens 'n stadige oordrag bewys niks oor die oorsaak nie.

strace -f -e trace=getrandom -p $(pidof openvpn) 2>&1 | head -20
dmesg | grep -i 'random\|crng'

Die eerste opdrag wys of die proses in 'n ewekansige-getal-oproep sit terwyl jy kyk. Die tweede wys die kernel se eie initialiseringsboodskappe, en dit is waar 'n vroeë opstartvriesing sigbaar word.

Teken die kernelweergawe en die biblioteek aan waarteen die diens werklik skakel, want die gedrag verskil tussen implementerings en tussen uitgawes. 'n Spoor wat ná herstel geneem is, mis gewoonlik die pouse heeltemal.

Hoe volgehoue traagheid werklik lyk

'n Tonnel wat deurgaans stadig oordra, word deur die datapad beperk. Een versadigde draad, verlies van buitenste pakkette, hertransmissies of vol socket-waglyste produseer elkeen daardie patroon, en elkeen het sy eie oplossing. Geaggregeerde CPU-persentasie verberg 'n enkele besige draad, wat die mees algemene verkeerde lesing is. Kyk na tyd per draad voordat jy na totale las kyk.

Meet in albei rigtings met 'n vergelykbare basislyn, en dophou die koppelvlaktellers eerder as die toepassing se eie verslag.

ss -tin dst 203.0.113.10
nstat -az | grep -i 'drop\|retrans'
ethtool -S eth0 | grep -i 'drop\|error'

Die eerste opdrag wys die tou- en oorladingstoestand vir een portuur. Die tweede en derde rapporteer weglatings en hertransmissies by die stapel en by die koppelvlak, en dit is waar die oorsaak gewoonlik eerste verskyn.

Kies die regstelling vir die bottelnek wat jy gemeet het

As die bewyse na vroeë opstartinitialisering wys, kyk na die platform se ondersteunde saadverskaffingspad, wat op 'n virtuele masjien 'n gasheerverskafte ewekansige toestel kan insluit. 'n Saadbeeld wat onveranderd in baie gaste gekopieer word, is nie 'n plaasvervanger vir onafhanklike initialisering nie.

As die bewyse na die datapad wys, stel dit wat die tellers impliseer in. Buffergroottes help wanneer rye oorloop en doen niks wanneer een draad versadig is nie. Om 'n entropie-daemon te installeer om 'n teller te verhoog, is nie 'n deursetherstelling nie, en om saadverskaffingsaannames te verander om 'n grafiek beter te laat lyk, ruil 'n sekuriteitseienskap vir 'n getal.

Aanvaar die verandering slegs wanneer dieselfde meting onder dieselfde toestande verbeter. 'n Groter teller is nie 'n resultaat nie; 'n korter gemete wag of 'n vinniger oordrag met 'n geïdentifiseerde oorsaak is.

Verwante artikels