Ξεκινά το ανέβασμα ενός αντιγράφου ασφαλείας, ο μετρητής μεταφοράς φαίνεται υγιής και η βιντεοκλήση γίνεται χυλός. Ο σύνδεσμος δεν έχει έλλειψη εύρους ζώνης με την έννοια που υπονοεί αυτός ο αριθμός· τα πακέτα περιμένουν κάπου σε μια ουρά και τα διαδραστικά βρίσκονται πίσω από ογκώδη δεδομένα. Αυτή είναι η καθυστέρηση ουράς, που συνήθως ονομάζεται bufferbloat. Ένα VPN μπορεί να προσθέσει τη δική του ουρά, αλλά σπάνια δημιουργεί το πρόβλημα μόνο του.

Το εύρος ζώνης και η καθυστέρηση είναι διαφορετικές μετρήσεις

Η διεκπεραιωτική ικανότητα απαντά πόσα δεδομένα κινούνται ανά δευτερόλεπτο, ενώ η καθυστέρηση απαντά πόσο χρόνο χρειάζεται ένα πακέτο για να διασχίσει τη διαδρομή. Ένας κορεσμένος σύνδεσμος μπορεί να κρατά μεγάλο υπόλοιπο και να αναφέρει ακόμη καλή διεκπεραιωτική ικανότητα, επειδή η ουρά αδειάζει με την ταχύτητα της γραμμής μόλις τελειώσει η έκρηξη. Η διαδραστική κίνηση υποφέρει πρώτη, καθώς μια κλήση χρειάζεται ένα πακέτο κάθε λίγα χιλιοστά του δευτερολέπτου, όχι ένα μεγάλο αρχείο στο τέλος. Επομένως, η μέτρηση μόνο ενός αποτελέσματος δοκιμής ταχύτητας κρύβει το σύμπτωμα που σας έκανε να κοιτάξετε.

Προσέξτε και την κατεύθυνση υπό φόρτο. Ένα γεμάτο buffer ανεβάσματος μπορεί να καθυστερήσει όλα τα άλλα ενώ η χωρητικότητα λήψης μένει αδρανής.

Μετρήστε τον χρόνο μετάβασης και επιστροφής υπό φόρτο

Πάρτε μια βάση σε ήσυχο σύνδεσμο και επαναλάβετε την ίδια μέτρηση όσο εκτελείται μία ελεγχόμενη μεταφορά. Συγκρίνετε τις δύο εκτελέσεις αντί για τους απόλυτους αριθμούς.

ping -c 20 -i 0.2 203.0.113.5
dd if=/dev/zero bs=1M count=50 | ssh [email protected] "cat > /dev/null"

Η πρώτη εντολή δειγματοληπτεί τον χρόνο μετάβασης και επιστροφής και η δεύτερη δημιουργεί ένα συνεχές ανέβασμα χωρίς ανάγκη υπηρεσίας δοκιμής ταχύτητας. Μια βάση που μένει επίπεδη και στη συνέχεια μια φορτωμένη εκτέλεση που ανεβαίνει κατά εκατοντάδες χιλιοστά του δευτερολέπτου είναι η υπογραφή που ψάχνετε. Μερικά δίκτυα υποβιβάζουν το ICMP, οπότε αντιμετωπίστε το ping ως ένδειξη και επιβεβαιώστε με την ένδειξη καθυστέρησης της ίδιας της εφαρμογής. Κρατήστε τη δοκιμή σύντομη σε συνδέσμους με μετρητή, γιατί μια αναπαραγώγιμη αντίθεση μετράει περισσότερο από έναν μακρύ κορεσμό.

Μετακινήστε την ουρά εκεί όπου είναι το σημείο συμφόρησης

Η διαχείριση ουρών βοηθά μόνο στη συσκευή που κρατά πραγματικά το υπόλοιπο. Εξετάστε τι κάνει η διεπαφή πριν προσθέσετε κανόνες.

tc -s qdisc show dev eth0
tc qdisc replace dev eth0 root fq_codel

Η εντολή show αναφέρει την τρέχουσα πειθαρχία καθώς και μετρητές υπολοίπου και απόρριψης, που σας λέει αν αυτή η διεπαφή είναι το σημείο συμφόρησης ή απλώς περνά κίνηση. Η αντικατάσταση της πειθαρχίας ρίζας με αλγόριθμο δίκαιης ουράς δίνει στις σύντομες ροές τη δική τους σειρά αντί για μία FIFO που μοιράζεται με ογκώδη δεδομένα. Εφαρμόστε την στη διεπαφή WAN του δρομολογητή όταν ο δρομολογητής είναι το σημείο συμφόρησης, όχι στη συσκευή της σήραγγας από συνήθεια. Διατηρήστε την προηγούμενη διαμόρφωση και δοκιμάστε ξανά τόσο την ανταπόκριση υπό φόρτο όσο και τον ρυθμό μεταφοράς, γιατί ένας ελαφρώς χαμηλότερος ρυθμός όγκου είναι καλή ανταλλαγή για χρησιμοποιήσιμες κλήσεις.

Τι αλλάζει η σήραγγα και τι κρύβει

Ένα VPN προσθέτει κρυπτογράφηση και ένα ακόμη άλμα, και επίσης κρύβει τις επιμέρους ροές από εξοπλισμό έξω από τη σήραγγα. Αυτό έχει σημασία όταν μια ανάντη συσκευή προσφέρει προτεραιότητα ανά εφαρμογή, καθώς βλέπει κρυπτογραφημένα πακέτα αντί για τις αρχικές συνομιλίες. Ένας δρομολογητής που τερματίζει ο ίδιος τη σήραγγα έχει διαφορετική εικόνα και φόρτο εργασίας και μπορεί να ταξινομήσει μέσα της. Καμία από τις δύο διατάξεις δεν αφαιρεί την ουρά στον σύνδεσμο πρόσβασης, όπου συνήθως συσσωρεύεται η καθυστέρηση.

Αν η καθυστέρηση δεν ακολουθεί το φόρτο, σταματήστε να ρυθμίζετε ουρές και κοιτάξτε αλλού: συνθήκες Wi-Fi, προβλήματα μεγέθους πακέτου ή μία κακή διαδρομή εξόδου. Οι ρυθμίσεις ουράς που εφαρμόζονται χωρίς μέτρηση απλώς μετακινούν το μυστήριο.

Σχετικά άρθρα