Бавниот пропусен опсег низ тунел и машината заглавена во чекање случајни броеви даваат многу различно искуство, но сепак се евидентираат под истата жалба. Едното се појавува како пауза пред нешто да проработи. Другото се појавува како врска што работи и бавно пренесува податоци додека ја гледате. Да утврдите кое го имате трае десет минути и штеди една недела погодување.

Два симптоми што изгледаат исто

Услуга што виси по свежо подигање, пред да прифати и една врска, чека нешто. Тунел што брзо се воспоставува и потоа пренесува со дел од очекуваната брзина е ограничен од нешто друго. Зборот шифрирање се појавува во двете приказни, затоа се спојуваат. Одделете ги пред да допрете конфигурациска датотека.

Поставете временски ознаки околу подигањето, автентикацијата, повторното договарање клучеви и самиот пренос. Долгото одложување пред тунелот да стане употреблив не е ниска стабилна стапка, а просекот од двете во еден број ги уништува доказите.

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

Првите две наредби го ставаат работењето при подигање на временска линија. Третата ја печати сметководната вредност на ентропијата во јадрото, која е корисна како една податочна точка и бескорисна како мерач на пропусен опсег.

Како всушност изгледа чекањето случајни броеви

Барањето за безбедни случајни бајти може да блокира додека јадрото не го иницијализира својот случаен извор. Тоа е најважно на виртуелни машини и мали вградени плочи рано при подигање, кога е собрано малку шум од околината. Од тоа не следува дека секој шифриран бајт троши свежа ентропија.

Современите генератори се засејуваат еднаш и потоа произведуваат излез од детерминистичка конструкција, презасејувајќи се по сопствен распоред. Големиот пренос не го празни базенот бајт по бајт, така што ниската вредност на базенот при бавен пренос не докажува ништо за причината.

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

Првата наредба покажува дали процесот стои во повик за случајни броеви додека гледате. Втората ги покажува сопствените пораки за иницијализација на јадрото, и токму таму застојот при рано подигање станува видлив.

Запишете ја верзијата на јадрото и библиотеката со која услугата навистина се поврзува, бидејќи однесувањето се разликува меѓу имплементации и меѓу изданија. Трагата земена по закрепнувањето обично целосно ја пропушта паузата.

Како всушност изгледа постојаната бавност

Тунел што бавно пренесува цело време е ограничен од патеката на податоците. Една заситена нишка, губење на надворешни пакети, повторни преноси или полни редици на сокети секоја ја создава таа шема, и секоја има свое решение. Збирниот процент на CPU крие една зафатена нишка, и тоа е најчестото погрешно читање. Погледнете го времето по нишка пред да го погледнете вкупното оптоварување.

Мерете во двете насоки со споредлива основа и гледајте ги бројачите на интерфејсот наместо извештајот на самата апликација.

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

Првата наредба го покажува состојбата на редот и застојот за еден партнер. Втората и третата известуваат за отфрлања и повторни преноси во стекот и на интерфејсот, каде причината обично се појавува прва.

Изберете ја поправката за измереното тесно грло

Ако доказите упатуваат на иницијализација при рано подигање, погледнете ја поддржаната патека за сеење на платформата, која на виртуелна машина може да вклучува случаен уред обезбеден од домаќинот. Сликата од семе копирана непроменета во многу гости не заменува независна иницијализација.

Ако доказите упатуваат на патеката на податоците, прилагодете го она на што упатуваат бројачите. Големините на баферите помагаат кога редиците се прелеваат и не прават ништо кога една нишка е заситена. Инсталирањето демон за ентропија за да се крене бројач не е поправка на пропусниот опсег, а менувањето на претпоставките за сеење за графиконот да изгледа подобро разменува безбедносно својство за број.

Прифатете ја промената само кога истото мерење се подобрува под истите услови. Поголем бројач не е резултат; пократко измерено чекање или побрз пренос со утврдена причина е резултат.

Поврзани статии