Latency: τι είναι η καθυστέρηση δικτύου και πώς μειώνεται
Latency ονομάζουμε τον χρόνο που χρειάζεται μια πληροφορία για να μετακινηθεί από ένα σημείο σε άλλο ή για να ολοκληρωθεί ένα συγκεκριμένο βήμα επεξεργασίας. Στα δίκτυα, η έννοια συνδέεται με το πόσο γρήγορα ανταποκρίνεται μια υπηρεσία μετά από ένα αίτημα, όχι με το πόσα δεδομένα μπορεί να μεταφέρει συνολικά. Μια σύνδεση με υψηλή ονομαστική ταχύτητα μπορεί επομένως να καθυστερεί αισθητά σε βιντεοκλήσεις, παιχνίδια ή αλληλεπιδραστικές εφαρμογές. Η διάγνωση απαιτεί να εντοπίσουμε αν ο χρόνος χάνεται στη διαδρομή, στον εξυπηρετητή, στη βάση δεδομένων ή στον ίδιο τον υπολογιστή του χρήστη.
Μονή διαδρομή και χρόνος μετ' επιστροφής
Η καθυστέρηση μονής διαδρομής μετρά τον χρόνο από αποστολέα προς παραλήπτη. Στην καθημερινή διάγνωση χρησιμοποιείται συχνά ο χρόνος μετ' επιστροφής, δηλαδή το διάστημα για να φύγει ένα μικρό αίτημα και να επιστρέψει η απάντηση. Οι δύο μετρήσεις δεν είναι ταυτόσημες και η δεύτερη δεν ισούται υποχρεωτικά με δύο φορές την πρώτη, γιατί οι διαδρομές και οι χρόνοι επεξεργασίας μπορεί να διαφέρουν. Μια εφαρμογή διαδικτύου χρειάζεται συνήθως πολλές αλληλεπιδράσεις πριν εμφανίσει ολοκληρωμένο αποτέλεσμα. Αν κάθε βήμα περιμένει το προηγούμενο, ακόμη και μικρές καθυστερήσεις αθροίζονται και γίνονται αισθητές στον χρήστη.
Διαφορά από εύρος ζώνης και πραγματική μεταφορά
Το εύρος ζώνης εκφράζει τη θεωρητική δυνατότητα μεταφοράς δεδομένων σε μια διαδρομή, ενώ ο πραγματικός ρυθμός μεταφοράς δείχνει τι επιτυγχάνεται υπό τις συγκεκριμένες συνθήκες. Ο χρόνος απόκρισης αφορά άλλη διάσταση: πόσο περιμένουμε πριν αρχίσει ή ολοκληρωθεί μια ενέργεια. Σκεφτείτε έναν αυτοκινητόδρομο με πολλές λωρίδες, αλλά πολύ μακρινό προορισμό. Πολλά οχήματα μπορούν να κινούνται παράλληλα, χωρίς το πρώτο να φτάνει ακαριαία. Αντίστοιχα, ένα μεγάλο αρχείο μπορεί να μεταφέρεται γρήγορα σε μια ισχυρή σύνδεση, ενώ μια διαδραστική εντολή να φαίνεται αργή λόγω της απόστασης και των διαδοχικών ανταλλαγών μηνυμάτων.
Τι αυξάνει τη χρονική καθυστέρηση
Η φυσική απόσταση είναι μόνο ένας παράγοντας. Κάθε διαδρομή περιλαμβάνει σημεία μετάδοσης, δρομολογητές, πιθανές ουρές αναμονής και συστήματα ασφαλείας. Όταν υπάρχει συμφόρηση, τα πακέτα μπορεί να καθυστερούν, να απορρίπτονται ή να χρειάζονται επανάληψη. Η ασύρματη πρόσβαση προσθέτει πιθανές παρεμβολές, ενώ μια φορτωμένη συσκευή δυσκολεύεται να επεξεργαστεί έγκαιρα τα δεδομένα. Σε διαδικτυακή υπηρεσία μπορεί να φταίει μια αργή αναζήτηση στη βάση δεδομένων ή μια εξωτερική διεπαφή, παρότι η σύνδεση προς τον εξυπηρετητή είναι άριστη. Γι' αυτό κάθε επίδοση χρειάζεται να συνδέεται με το συγκεκριμένο σημείο μέτρησης.
Γιατί χρειάζονται περισσότερες από μία μετρήσεις
Ένα στιγμιαίο αποτέλεσμα μπορεί να αποκρύπτει τις διακυμάνσεις. Εκτός από μέση τιμή, παρατηρούμε τη διάμεσο, τις πιο αργές αποκρίσεις και τη σταθερότητα σε ώρες αιχμής. Η διακύμανση μεταξύ διαδοχικών χρόνων άφιξης ονομάζεται συχνά jitter, δηλαδή μεταβολή της καθυστέρησης. Σε ζωντανή συνομιλία, μεγάλη διακύμανση μπορεί να προκαλεί διακοπές παρότι ο μέσος χρόνος είναι αποδεκτός. Χρειάζεται επίσης να καταγράφεται η απώλεια πακέτων. Δεν συγκρίνουμε μετρήσεις διαφορετικών ωρών, δικτύων και συσκευών σαν να προέρχονταν από το ίδιο πείραμα. Μια αξιόπιστη αναφορά περιγράφει προορισμό, ώρα, μέθοδο και πλήθος δοκιμών.
Πρακτική διάγνωση σε οικιακή ή επαγγελματική σύνδεση
Ξεκινάμε με δοκιμή μέσω καλωδίου, ώστε να διαχωρίσουμε την ασύρματη πρόσβαση από την υπόλοιπη σύνδεση. Συγκρίνουμε καθυστέρηση προς τον τοπικό δρομολογητή και προς μερικούς διαφορετικούς εξωτερικούς προορισμούς. Αν το πρόβλημα εμφανίζεται ήδη στο πρώτο βήμα, εξετάζουμε το τοπικό δίκτυο και την κατάσταση της συσκευής. Αν εμφανίζεται μόνο σε έναν απομακρυσμένο προορισμό, μπορεί να αφορά την υπηρεσία ή τη συγκεκριμένη διαδρομή. Η ιχνηλάτηση δικτύου δίνει ενδείξεις για ενδιάμεσα σημεία, αλλά δεν αποδεικνύει από μόνη της τον υπαίτιο, καθώς ορισμένοι δρομολογητές περιορίζουν τις διαγνωστικές απαντήσεις.
Μείωση καθυστέρησης σε ιστοσελίδες
Στις εφαρμογές ιστού, κάθε περιττό αίτημα δημιουργεί επιπλέον αναμονή. Η χρήση προσωρινής αποθήκευσης για περιεχόμενο που δεν αλλάζει, η αποφυγή αλληλουχιών εξαρτημένων αιτημάτων και η σωστή συμπίεση πόρων μπορούν να βοηθήσουν. Εξίσου σημαντική είναι η τοποθέτηση υπηρεσιών κοντά στους χρήστες όταν αυτό έχει μετρήσιμο όφελος. Ένα δίκτυο διανομής περιεχομένου μπορεί να εξυπηρετεί στατικά αρχεία από κοντινότερα σημεία, χωρίς να επιταχύνει αυτόματα τη δυναμική επεξεργασία που παραμένει στον κεντρικό εξυπηρετητή. Έτσι, δεν αρκεί η ενεργοποίηση μιας επιπλέον υπηρεσίας: πρέπει να μετρήσουμε ποιο μέρος του χρόνου άλλαξε.
Καθυστέρηση από εφαρμογές και βάσεις δεδομένων
Μια γρήγορη σύνδεση δεν αποκαθιστά έναν αργό αλγόριθμο. Αν η ιστοσελίδα εκτελεί επανειλημμένα την ίδια ερώτηση στη βάση ή περιμένει εξωτερική υπηρεσία, ο χρήστης συνεχίζει να βλέπει καθυστέρηση. Ελέγχουμε καταγραφές αιτημάτων, χρόνους επεξεργασίας και αργές ερωτήσεις. Η επιλογή κατάλληλων ευρετηρίων στη βάση, η ομαδοποίηση εργασιών και η μεταφορά μη επείγουσας επεξεργασίας εκτός της άμεσης απάντησης μπορούν να αλλάξουν ουσιαστικά την εμπειρία. Αποφεύγουμε όμως να γεμίζουμε το σύστημα με προσωρινές αποθηκεύσεις χωρίς κανόνες ενημέρωσης: η ταχύτητα που επιστρέφει λανθασμένα ή παλιά δεδομένα δεν αποτελεί επιτυχία.
Ποια βελτίωση έχει νόημα ανά εφαρμογή
| Εφαρμογή | Τι παρατηρούμε | Πρώτη ενέργεια |
|---|---|---|
| Βιντεοκλήση | Διακύμανση και απώλειες | Έλεγχος τοπικής πρόσβασης και σταθερότητας |
| Παιχνίδι σε πραγματικό χρόνο | Χρόνο μετ' επιστροφής προς τον εξυπηρετητή | Μέτρηση κατάλληλης περιοχής σύνδεσης |
| Διαδραστική ιστοσελίδα | Καθυστέρηση πρώτης απάντησης και διαδοχικά αιτήματα | Ανάλυση υπηρεσίας και προσωρινής αποθήκευσης |
| Μεγάλο αρχείο | Πραγματικό ρυθμό μεταφοράς | Έλεγχος χωρητικότητας και συμφόρησης |
Το ζητούμενο δεν είναι ένας ενιαίος «ιδανικός» αριθμός για όλες τις χρήσεις. Κάθε εργασία έχει διαφορετική ανοχή στον χρόνο αναμονής και χρειάζεται αντίστοιχη μέθοδο παρατήρησης. Πριν πληρώσουμε για ακριβότερη πρόσβαση, αποδεικνύουμε ποιο τμήμα της αλυσίδας μπορεί πράγματι να βελτιωθεί.
Η αντιληπτή ταχύτητα δεν εξαντλείται στο δίκτυο
Όταν ο επισκέπτης ανοίγει μια σελίδα, προηγούνται αναζήτηση διεύθυνσης, σύνδεση, ανταλλαγές ασφαλείας, απόκριση της εφαρμογής και εμφάνιση των στοιχείων στην οθόνη. Ορισμένα βήματα επικαλύπτονται, άλλα εκτελούνται διαδοχικά. Η καθυστέρηση δικτύου επηρεάζει μέρος της συνολικής εμπειρίας, όχι κάθε πτυχή της. Αν ο εξυπηρετητής απαντά γρήγορα αλλά ο φυλλομετρητής εκτελεί βαριά δέσμη εντολών, ο χρήστης μπορεί να βλέπει ακόμη αργή αλληλεπίδραση. Αντίστοιχα, μια άρτια σχεδιασμένη σελίδα δεν μπορεί να εξαλείψει την απόσταση προς έναν απομακρυσμένο προορισμό. Χρειάζονται συνεπώς συνδυασμένες μετρήσεις δικτύου και εφαρμογής.
Πώς ορίζουμε στόχο απόκρισης που έχει νόημα
Αποφεύγουμε να επιλέγουμε αυθαίρετα ένα ενιαίο κατώφλι για κάθε υπηρεσία. Καταγράφουμε πρώτα τις κρίσιμες ενέργειες: υποβολή φόρμας, εύρεση ακινήτου, αναζήτηση προϊόντος ή πραγματοποίηση κλήσης. Για καθεμία μετρούμε κατανομή χρόνων και εντοπίζουμε τι περιμένει ο χρήστης. Η βελτίωση μιας ελάχιστα χρησιμοποιούμενης δευτερεύουσας λειτουργίας μπορεί να προσφέρει μικρότερο όφελος από την αποκατάσταση μιας αργής κεντρικής διαδικασίας. Η αποτελεσματική βελτιστοποίηση συνδυάζει τεχνική μέτρηση με παρατήρηση πραγματικών ενεργειών, χωρίς να θυσιάζει την ορθότητα της απάντησης.
Συχνές ερωτήσεις
Μικρότερη καθυστέρηση σημαίνει πάντα μεγαλύτερη ταχύτητα;
Όχι. Η απόκριση και η συνολική μεταφερόμενη ποσότητα δεδομένων περιγράφουν διαφορετικές ιδιότητες μιας σύνδεσης.
Γιατί χειροτερεύει μόνο το βράδυ;
Πιθανή αιτία είναι η αυξημένη κίνηση, αλλά απαιτούνται επαναλαμβανόμενες μετρήσεις για να αποκλειστεί η τοπική συμφόρηση ή πρόβλημα υπηρεσίας.
Βοηθά η αλλαγή εξυπηρετητή;
Μπορεί, αν ο νέος προορισμός έχει καλύτερη διαδρομή και επαρκή επεξεργαστική ισχύ. Η γεωγραφική εγγύτητα από μόνη της δεν αρκεί.
Τι είναι σημαντικότερο για μια κλήση;
Η σταθερότητα του χρόνου άφιξης και η περιορισμένη απώλεια δεδομένων είναι συχνά εξίσου σημαντικές με τον μέσο χρόνο απόκρισης.
Ποιο είναι το πρώτο λάθος στη διάγνωση;
Να αποδίδουμε κάθε καθυστέρηση στον πάροχο πρόσβασης χωρίς να εξετάζουμε ασύρματο δίκτυο, συσκευή, υπηρεσία και ενδιάμεση διαδρομή.