Πώς να διαβάζετε την απώλεια πακέτων πριν κατηγορήσετε το καλώδιο
Ένας μικρός αριθμός απώλειας μπορεί να κρύβει μεγάλη αναμονή της εφαρμογής. Συγκρίνετε τις διαφορές των μετρητών, τη συμπεριφορά επαναμετάδοσης και την πραγματική εργασία πριν αντικαταστήσετε υλικό.
Δύο τοις εκατό απώλεια σε μια μεγάλη σειρά ping μοιάζει με αριθμό πάνω στον οποίο μπορείτε να δράσετε, και σπάνια είναι. Δεν λέει πού χάθηκαν οι απαντήσεις, αν χάθηκαν μαζί ή πώς βίωσε αυτό το διάστημα μια συγκεκριμένη εφαρμογή. Απώλεια μοιρασμένη ομοιόμορφα σε ένα λεπτό και απώλεια συγκεντρωμένη μέσα σε μια ανταλλαγή δίνουν πολύ διαφορετικά αποτελέσματα για το ίδιο ποσοστό.
Συγκρίνετε τρεις μετρήσεις αντί να εμπιστεύεστε μία: τι είδε ο αισθητήρας, τι έκαναν οι μετρητές της διεπαφής και τι περίμενε πραγματικά η εφαρμογή.
Τι μετρά στην πραγματικότητα ένα ποσοστό ping
Ένας αισθητήρας ηχού ελέγχει μία κατεύθυνση ενός πρωτοκόλλου με ένα μέγεθος πακέτου, με όποιο ρυθμό επιλέξατε. Μια σήραγγα που μεταφέρει μεγάλο ανέβασμα κάνει κάτι εντελώς διαφορετικό, και ένας σύνδεσμος που ρίχνει μικρούς αισθητήρες δεν είναι απαραίτητα ο σύνδεσμος που βλάπτει τη μεταφορά. Το ποσοστό επίσης συνθλίβει την πληροφορία χρονισμού που έχει τη μεγαλύτερη σημασία, γιατί δέκα χαμένες απαντήσεις σε μια ριπή δεν είναι το ίδιο με δέκα χαμένες απαντήσεις με απόσταση μιας ώρας. Δεν μπορεί να σας πει ούτε ποια πλευρά της σήραγγας έριξε κάτι.
Κρατήστε το αποτέλεσμα του αισθητήρα ως μια ένδειξη για τη διαδρομή. Μετά αναζητήστε τον χρονισμό και το όριο που το παρήγαγαν.
Συγκρίνετε διαφορές μετρητών, όχι συνολικά αθροίσματα ζωής
Πάρτε μετρήσεις με χρονική σφραγίδα πριν και μετά το παράθυρο στο οποίο εμφανίστηκε το σύμπτωμα, και στα δύο άκρα και σε κάθε θύρα μεταγωγέα που ελέγχετε. Καταγράψτε τον όγκο κίνησης μαζί με σφάλματα, απορρίψεις και αλλαγές κατάστασης συνδέσμου, γιατί ένα μη μηδενικό σύνολο που συσσωρεύτηκε επί μήνες περιγράφει ιστορία και όχι αυτό το περιστατικό. Ένας μετρητής που μετακινήθηκε κατά τρία κατά τη διάρκεια της αναμονής είναι διαφορετική παρατήρηση από έναν μετρητή που δείχνει τρεις χιλιάδες και δεν άλλαξε ποτέ.
ip -s link show dev eth0
nstat -az TcpRetransSegs TcpExtTCPTimeouts
date -u +%Y-%m-%dT%H:%M:%SZ
Τα πακέτα που απορρίπτονται λόγω σφαλμάτων λήψης και τα πακέτα που απορρίπτονται για άλλους λόγους ζουν σε ξεχωριστούς μετρητές, και αυτή η διάκριση αλλάζει τη συνέχεια. Οι μετρητές σφαλμάτων δείχνουν στο φυσικό επίπεδο ή στο επίπεδο οδηγού, ενώ η πίεση ουρών και οι απορρίψεις πολιτικής δείχνουν κάπου πιο πάνω. Διατηρήστε και την κατεύθυνση και το όνομα της διεπαφής, γιατί μια αύξηση σφαλμάτων λήψης σε ανερχόμενο σύνδεσμο και ένας μετρητής πακέτων σήραγγας δεν είναι ανταλλάξιμοι.
Αν ένας οδηγός εκθέτει λεπτομερείς φυσικούς μετρητές, διαβάστε τους μέσα από την τεκμηρίωση αυτού του προσαρμογέα. Το να δώσετε μία σημασία σε κάθε πεδίο με όνομα “drop” σε δύο κατασκευαστές είναι ο τρόπος με τον οποίο μια φυσιολογική λογιστική ιδιομορφία γίνεται διάγνωση υλικού.
Πώς ένα χαμένο τμήμα γίνεται μεγάλη αναμονή
Μια εφαρμογή μπορεί να περιμένει πολύ περισσότερο από μία διαδρομή μετ' επιστροφής αφού χάσει ένα τμήμα. Το TCP εκτιμά τον χρόνο μετ' επιστροφής, υπολογίζει χρονοδιακόπτη επαναμετάδοσης από αυτή την εκτίμηση και υποχωρεί όταν αποτύχει και μια επαναμετάδοση, οπότε ένα μόνο χαμένο τμήμα στη λάθος στιγμή μπορεί να σταματήσει ένα αίτημα για αισθητό διάστημα. Ο μηχανισμός αυτός ορίζεται στο RFC 6298, και εξηγεί γιατί ένα ποσοστό απώλειας που φαίνεται ασήμαντο μπορεί παρ' όλα αυτά να γίνει αισθητό.
Δεν είναι όμως κάθε παύση λήξη χρόνου επαναμετάδοσης. Η ίδια αναμονή μπορεί να προέλθει από επίλυση ονομάτων, έναν αργό διακομιστή ή μια εφαρμογή που επαναλαμβάνει το αίτημά της μετά από αποτυχία. Διαχωρίστε αυτές τις περιπτώσεις ευθυγραμμίζοντας την αποτυχημένη λειτουργία με τις παρατηρήσεις μεταφοράς και με τα ίδια τα συμβάντα συνεδρίας της σήραγγας. Μια διακοπή στη διαδρομή δεδομένων χωρίς επανασύνδεση είναι διαφορετικό συμβάν από μια νέα χειραψία και ανταλλαγή διαπιστευτηρίων.
Όπου επιτρέπεται η καταγραφή, κρατήστε την στενή. Αυτό που χρειάζεστε είναι αν τα αναμενόμενα πακέτα ή οι επιβεβαιώσεις σταματούν σε ένα συγκεκριμένο όριο, όχι το γεγονός ότι υπάρχει κάποια επαναμετάδοση κάπου σε ένα πολυάσχολο ίχνος.
Αλλάξτε ένα όριο χωρίς να μετακινήσετε τα άλλα
Αν τα στοιχεία δείχνουν σε τοπικό σύνδεσμο, αντικαταστήστε ένα εγκεκριμένο καλώδιο ή θύρα ως ελεγχόμενη σύγκριση και αφήστε όλα τα άλλα ήσυχα. Κρατήστε το άκρο, την εφαρμογή και το φόρτο εργασίας συγκρίσιμα, και αλλάξτε ακριβώς ένα όριο ανά προσπάθεια. Το να συγκρίνετε ένα φορητό με καλώδιο με ένα ασύρματο ενώ αλλάζετε ταυτόχρονα εξόδους και πρωτόκολλα δεν σας λέει τίποτα που μπορείτε να αποδώσετε.
Οι καθαροί τοπικοί μετρητές δεν πιστοποιούν το υπόλοιπο της διαδρομής. Περιορίζουν το μέρος που βλέπετε, και η έντιμη αναφορά λέει ποια όρια παρατηρήθηκαν και ποια όχι. Αυτό που θέλετε στο τέλος είναι μια δήλωση ότι μια παρατήρηση άλλαξε όταν συνέβη μια παρέμβαση, όχι ένα ανέκδοτο για ένα κακό καλώδιο που αναγορεύτηκε σε καθολικό κανόνα.