ნელი გამტარუნარიანობა გვირაბში და მანქანა, რომელიც შემთხვევითი რიცხვების მოლოდინში გაჩერდა, ძალიან განსხვავებულ გამოცდილებას იძლევა, მაგრამ მაინც ერთი და იმავე ჩივილის ქვეშ აღირიცხება. ერთი ჩნდება როგორც პაუზა, სანამ რაიმე იმუშავებს. მეორე ჩნდება როგორც კავშირი, რომელიც მუშაობს და მონაცემებს ნელა გადაადგილებს, სანამ უყურებთ. იმის დადგენა, რომელი გაქვთ, ათ წუთს იღებს და ერთი კვირის ვარაუდს ზოგავს.

ორი მსგავსად შემჩნეული სიმპტომი

სერვისი, რომელიც ახალი ჩატვირთვის შემდეგ, ერთი კავშირის მიღებამდე, იკიდება, რაღაცას ელოდება. გვირაბი, რომელიც სწრაფად მყარდება და შემდეგ მოსალოდნელი სიჩქარის ნაწილით გადასცემს, სხვა რაღაცით არის შეზღუდული. სიტყვა დაშიფვრა ორივე ისტორიაში ჩნდება, ამიტომაც აერთიანებენ. გაყავით ისინი, სანამ კონფიგურაციის ფაილს შეეხებით.

დროის ნიშნები დასვით გაშვების, ავთენტიფიკაციის, გასაღებების ხელახალი მოლაპარაკების და თავად გადაცემის გარშემო. გრძელი შეყოვნება, სანამ გვირაბი გამოსაყენებელი გახდება, დაბალი სტაბილური სიჩქარე არ არის, და ორივეს საშუალოს ერთ რიცხვში ჩასმა მტკიცებულებას ანადგურებს.

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'

პირველი ბრძანება აჩვენებს რიგისა და გადატვირთულობის მდგომარეობას ერთი პარტნიორისთვის. მეორე და მესამე იუწყებიან ჩამოშლებზე და ხელახალ გადაცემებზე სტეკში და ინტერფეისზე, სადაც მიზეზი ჩვეულებრივ პირველი ჩნდება.

აირჩიეთ შესწორება თქვენ მიერ გაზომილი შევიწროებისთვის

თუ მტკიცებულებები ადრეული გაშვების ინიციალიზაციაზე მიუთითებს, შეხედეთ პლატფორმის მხარდაჭერილ თესვის გზას, რომელიც ვირტუალურ მანქანაში შეიძლება მოიცავდეს ჰოსტის მიერ მოწოდებულ შემთხვევით მოწყობილობას. მრავალ სტუმარში უცვლელად დაკოპირებული თესლის გამოსახულება დამოუკიდებელი ინიციალიზაციის შემცვლელი არ არის.

თუ მტკიცებულებები მონაცემთა გზაზე მიუთითებს, დააყენეთ ის, რაზეც მრიცხველები მიუთითებენ. ბუფერის ზომები ეხმარება, როცა რიგები იჭრება, და არაფერს აკეთებს, როცა ერთი ნაკადი გაჯერებულია. ენტროპიის დემონის დაყენება მრიცხველის ასამაღლებლად გამტარუნარიანობის შეკეთება არ არის, და თესვის დაშვებების შეცვლა იმისთვის, რომ გრაფიკი უკეთ გამოიყურებოდეს, უსაფრთხოების თვისებას ცვლის რიცხვზე.

მიიღეთ ცვლილება მხოლოდ მაშინ, როცა იგივე გაზომვა იმავე პირობებში უმჯობესდება. უფრო დიდი მრიცხველი შედეგი არ არის; უფრო მოკლე გაზომილი ლოდინი ან იდენტიფიცირებული მიზეზით უფრო სწრაფი გადაცემა არის შედეგი.

დაკავშირებული სტატიები