Είναι η πύλη VPN σας περιορισμένη από την CPU; Διαβάστε πρώτα το φορτίο ανά πυρήνα
Οι μέσοι όροι κρύβουν το νήμα που μετράει. Διαβάστε το φορτίο ανά πυρήνα σε μια ελεγχόμενη μεταφορά, αποκλείστε τη διαδρομή και μετά αλλάξτε μία τεκμηριωμένη ρύθμιση ανά εκτέλεση.
Προσδιορίστε ποιο από τα τρία όρια έχετε φτάσει πριν αγοράσετε μεγαλύτερο στιγμιότυπο. Ένας πυρήνας στο μέγιστο ενώ οι υπόλοιποι είναι αδρανείς δείχνει κρυπτογραφική εργασία ανά ροή. Όλοι οι πυρήνες κορεσμένοι κατά τη μεταφορά δείχνουν συνολική χωρητικότητα. Χαμηλή CPU με αυξανόμενο αριθμό επαναμεταδόσεων δείχνει τη διαδρομή. Κάθε περίπτωση έχει διαφορετική πρώτη κίνηση και μόνο μία λύνεται με μεγαλύτερο στιγμιότυπο.
Τρία όρια, ένας πίνακας, τρεις διορθώσεις
| Limit | Reading during a transfer | First move |
|---|---|---|
| Single thread | one core near 100%, siblings idle | spread flows across workers |
| Aggregate CPU | every core busy, load average climbs | capacity, or less work per byte |
| Path or provider | low CPU, retransmits or steal time high | MTU, 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'
Μια ελεγχόμενη μεταφορά, εκτελεσμένη δύο φορές
Οι αδρανείς μετρητές δεν αποδεικνύουν τίποτα, και ένα benchmark απέναντι σε τυχαίο τελικό σημείο αποδεικνύει ελάχιστα. Επιλέξτε έναν πελάτη, έναν προορισμό και μία αντιπροσωπευτική μεταφορά που επιτρέπεται να εκτελέσετε, και μετά καταγράψτε τη διεκπεραίωση και την διαδραστική καθυστέρηση στο ίδιο παράθυρο. Μια πύλη μπορεί να κορεστεί ενώ μια μαζική αντιγραφή ακόμη ολοκληρώνεται, και η καμπύλη καθυστέρησης είναι αυτό που πραγματικά αισθάνονται οι χρήστες. Γράψτε τη μεταφορά, τον αριθμό πελατών και την έκδοση του δαίμονα δίπλα στους αριθμούς.
Επαναλάβετε την εκτέλεση με πολλαπλές παράλληλες ροές. Η κλιμάκωση με τις ροές υποδηλώνει παράθυρα ανά ροή· η σταθερότητα με έναν καρφιτσωμένο πυρήνα υποδηλώνει επεξεργασία.
Μετά επαναλάβετε μία ακόμη φορά με σταματημένα τα προαιρετικά φορτία εργασίας. Ένα αντίγραφο ασφαλείας, ένας αποστολέας αρχείων καταγραφής ή μια βάση δεδομένων στον ίδιο κεντρικό υπολογιστή μπορούν να δώσουν ένα απασχολημένο μέσο όρο που δεν έχει καμία σχέση με σήραγγες. Αν η CPU παραμένει καρφιτσωμένη ενώ ο υπολογιστής είναι κατά τα άλλα ήσυχος, οι αποδείξεις δείχνουν στη διεργασία VPN. Αν πέσει, μετρούσατε τον γείτονα, και η πύλη δεν ήταν ποτέ το πρόβλημα.
Αποκλείστε τη διαδρομή πριν αγοράσετε υλικό
Οι αυξανόμενες επαναμεταδόσεις, το συρρικνούμενο παράθυρο συμφόρησης και ο αυξανόμενος χρόνος μετάβασης δείχνουν όλα μακριά από τον επεξεργαστή. Συγκρίνετε το MTU της σήραγγας με το MTU της διαδρομής, ελέγξτε τον υποκείμενο σύνδεσμο για απώλειες και επιβεβαιώστε ότι το δικό του uplink του πελάτη δεν είναι το όριο. Μια μεγαλύτερη πύλη δεν επιδιορθώνει σύνδεσμο που χάνει πακέτα, και οι χρήστες περιγράφουν και τα δύο σφάλματα με τις ίδιες λέξεις. Ο μετρητής επαναμεταδόσεων τα ξεχωρίζει σε λεπτά.
Σε εικονικό διακομιστή, προσθέστε τις μετρήσεις του παρόχου σε αυτές του φιλοξενούμενου. Ο κλεμμένος χρόνος είναι το πώς η υπερδέσμευση γίνεται ορατή μέσα στον φιλοξενούμενο, και καμία ρύθμιση μέσα στον φιλοξενούμενο δεν τον αφαιρεί. Οι μετρητές του φιλοξενούμενου δεν βλέπουν τον κεντρικό υπολογιστή, οπότε ένα καθαρό γράφημα του φιλοξενούμενου δεν είναι απόδειξη υγιούς υπολογιστή.
Μία αλλαγή, μία μέτρηση
Επιλέξτε την υπόθεση που στηρίζουν οι αποδείξεις και μετά αλλάξτε ακριβώς μία υποστηριζόμενη ρύθμιση: αριθμό εργατών, μια τεκμηριωμένη επιλογή εκφόρτωσης ή το μέγεθος του στιγμιότυπου. Η OpenVPN δημοσιεύει οδηγό αντιμετώπισης προβλημάτων απόδοσης για τον ίδιο διαχωρισμό μεταξύ επεξεργασίας και μεταφοράς: Αντιμετώπιση προβλημάτων απόδοσης OpenVPN.
Επιβεβαιώστε ότι η επιλογή εκφόρτωσης είναι πράγματι ενεργή αντί να εμπιστεύεστε τη σημαία, και μετά επαναλάβετε την ίδια μεταφορά και συγκρίνετε όμοια με όμοια. Είναι ο μόνος τρόπος να ξεχωρίσετε μια πραγματική βελτίωση από ένα ήσυχο απόγευμα. Κρατήστε ένα σημείο ελέγχου που μπορείτε να επαναφέρετε, γιατί στη δεύτερη αλλαγή οι άνθρωποι χάνουν την αίσθηση του ποια βοήθησε. Μία μεταβλητή ανά εκτέλεση είναι αργή για μια μέρα και γρήγορη για ένα μήνα.
Μην αποδυναμώσετε τον έλεγχο ταυτότητας ή τη σουίτα κρυπτογράφησης για να φαίνεται καλύτερο το γράφημα. Αν η CPU εξακολουθεί να μην ακολουθεί το σύμπτωμα, επιστρέψτε σε ελέγχους διαδρομής και εφαρμογής αντί να αναβαθμίσετε με εικασία.