Tuneldən yavaş keçid və təsadüfi ədədləri gözləyərkən donmuş maşın çox fərqli təcrübələr yaradır, lakin onlar eyni şikayət altında qeydə alınır. Biri hər şey işləməzdən əvvəl fasilə kimi görünür. Digəri işləyən və nə qədər baxsanız da məlumatı yavaş ötürən bağlantı kimi görünür. Hansının olduğunu müəyyən etmək on dəqiqə çəkir və bir həftə təxmin etməyə qənaət edir.

Eyni görünən iki simptom

Təzə yükləmədən sonra, bir dənə də olsun bağlantı qəbul etməzdən əvvəl donan xidmət nəyisə gözləyir. Tez qurulan və sonra gözlənilən sürətin bir hissəsi ilə ötürən tunel başqa bir şeylə məhdudlaşır. Şifrələmə sözü hər iki hekayədə görünür, buna görə onları birləşdirirlər. Konfiqurasiya faylına toxunmazdan əvvəl onları ayırın.

Başlanğıc, autentifikasiya, açarın yenidən razılaşdırılması və ötürmənin özü ətrafında vaxt damğaları qoyun. Tunelin istifadəyə yararlı olmasından əvvəlki uzun gecikmə aşağı sabit sürət deyil və ikisini bir ədəddə ortalamaq sübutu məhv edir.

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

İlk iki əmr başlanğıc işini zaman xəttinə qoyur. Üçüncü əmr nüvənin entropiya uçot dəyərini çap edir; bu, tək məlumat nöqtəsi kimi faydalı, buraxılış ölçən kimi isə faydasızdır.

Təsadüfi ədəd gözləməsi əslində nə kimi görünür

Təhlükəsiz təsadüfi baytlar üçün sorğu, nüvə təsadüfi mənbəyini işə salana qədər bloklana bilər. Bu, ən çox virtual maşınlarda və kiçik quraşdırılmış lövhələrdə yükləmənin əvvəlində, az ətraf mühit səsi toplandığı vaxt vacibdir. Bundan hər şifrələnmiş baytın təzə entropiya istehlak etdiyi çıxmır.

Müasir generatorlar bir dəfə toxumlanır və sonra deterministik quruluşdan çıxış yaradır, öz cədvəlləri ilə yenidən toxumlanır. Kütləvi ötürmə hovuzu bayt-bayt boşaltmır, ona görə yavaş ötürmə zamanı aşağı hovuz dəyəri səbəb barədə heç nə sübut etmir.

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

İlk əmr prosesin siz baxarkən təsadüfi ədəd çağırışında oturub-oturmadığını göstərir. İkincisi nüvənin öz işəsalma mesajlarını göstərir və erkən yükləmə dayanması məhz orada görünür.

Nüvə versiyasını və xidmətin həqiqətən əlaqələndiyi kitabxananı qeyd edin, çünki davranış tətbiqlər və buraxılışlar arasında fərqlənir. Bərpadan sonra götürülmüş iz adətən fasiləni tamamilə qaçırır.

Davamlı yavaşlıq əslində nə kimi görünür

Bütün müddət yavaş ötürən tunel məlumat yolu ilə məhdudlaşır. Bir dolu sap, xarici paket itkisi, yenidən ötürmələr və ya dolu soket növbələri hər biri bu nümunəni yaradır və hər birinin öz düzəlişi var. Ümumi CPU faizi bir məşğul sapi gizlədir və bu, ən çox yayılmış yanlış oxunuşdur. Ümumi yükə baxmazdan əvvəl hər sap üzrə vaxta baxın.

Müqayisə oluna bilən baza ilə hər iki istiqamətdə ölçün və tətbiqin öz hesabatına deyil, interfeys sayğaclarına baxın.

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

İlk əmr bir həmkar üçün növbə və tıxanma vəziyyətini göstərir. İkinci və üçüncü yığımda və interfeysdə atmalar və yenidən ötürmələr barədə məlumat verir; səbəb adətən ilk orada görünür.

Ölçdüyünüz darboğaz üçün düzəlişi seçin

Əgər sübutlar erkən yükləmə işəsalmasına işarə edirsə, platformanın dəstəklədiyi toxumlama yoluna baxın; virtual maşında bu, host tərəfindən verilən təsadüfi qurğunu əhatə edə bilər. Dəyişmədən bir çox qonağa köçürülən toxum obrazı müstəqil işəsalmanın əvəzi deyil.

Əgər sübutlar məlumat yoluna işarə edirsə, sayğacların göstərdiyini tənzimləyin. Bufer ölçüləri növbələr daşdıqda kömək edir və bir sap dolu olduqda heç nə etmir. Sayğacı qaldırmaq üçün entropiya demonu quraşdırmaq buraxılış təmiri deyil və qrafiki daha yaxşı göstərmək üçün toxumlama fərziyyələrini dəyişmək təhlükəsizlik xassəsini bir ədədə dəyişir.

Dəyişikliyi yalnız eyni ölçmə eyni şəraitdə yaxşılaşdıqda qəbul edin. Daha böyük sayğac nəticə deyil; daha qısa ölçülmüş gözləmə və ya səbəbi müəyyən edilmiş daha sürətli ötürmə nəticədir.

Əlaqəli məqalələr