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

სამი ზღვარი, ერთი ცხრილი, სამი შესწორება

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

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

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

გამოყავით ჩამაგრებული ნაკადი დაკავებული ჰოსტისგან

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

mpstat -P ALL 1 5

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

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

ბირთვის კრიპტო არასოდეს ჩნდება მომხმარებლის სივრცის პროცესის მრიცხველში. სინჯეთ ნაკადები ცალკე და შეადარეთ ეს ხედი პროცესის აღრიცხვას:

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

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

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

კონტროლირებული გადაცემა, ორჯერ შესრულებული

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

გაიმეორეთ გაშვება რამდენიმე პარალელური ნაკადით. ნაკადებზე ზრდა ნაკადისეულ ფანჯრებზე მიუთითებს; ერთი ჩამაგრებული ბირთვის დროს ბრტყლად დარჩენა დამუშავებაზე მიუთითებს.

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

გამორიცხეთ გზა აპარატურის ყიდვამდე

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

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

ერთი ცვლილება, ერთი გაზომვა

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

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

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

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