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

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

Ένας πυρήνας ανά ροή στη διαδρομή του χώρου χρήστη

Σε ένα παραδοσιακό παράδειγμα Community OpenVPN το κανάλι δεδομένων επεξεργάζεται στον χώρο χρήστη, και μια πολυάσχολη σύνδεση μπορεί να καρφώσει έναν επεξεργαστή ενώ η συνολική χρήση του μηχανήματος μένει απαρατήρητη. Γι' αυτό η προσθήκη πυρήνων σε έναν φιλοξενητή που έχει ήδη κορεστεί σε μία ροή δεν αλλάζει τίποτα: ο χρονοπρογραμματιστής δεν έχει τρόπο να μοιράσει αυτή την εργασία. Η δομή ενός πελάτη ανά διεργασία περιορίζει τη μεταφορά ενός πελάτη στη χωρητικότητα ενός πυρήνα, όποιος κι αν είναι ο συνολικός αριθμός πυρήνων. Διαβάστε τη χρήση ανά πυρήνα κατά τη διάρκεια μιας δοκιμής αντί για τον συνολικό αριθμό, αλλιώς το σημείο συμφόρησης θα μοιάζει με ελεύθερο περιθώριο.

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

Η άλλη διαδρομή: πακέτα στον πυρήνα

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

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

Τι αποφασίζει στην πραγματικότητα η σύγκριση

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

Μετρήστε τρία σχήματα: έναν πελάτη με μία μεταφορά, έναν πελάτη με πολλές ροές και πολλούς πελάτες μαζί. Ένα υψηλό σύνολο στο τρίτο δεν αποδεικνύει ότι μια μεμονωμένη λήψη μπορεί να το φτάσει, και μια αργή μεμονωμένη μεταφορά δεν αποδεικνύει ότι ο διακομιστής εξάντλησε τη συνολική του χωρητικότητα. Τα αποτελέσματα απαντούν σε διαφορετικά ερωτήματα και τα δύο αξίζουν.

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

Μέτρηση ώστε ο αριθμός να έχει νόημα

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

Στη συνέχεια αφήστε περιθώριο για το κανάλι ελέγχου, για την επαναδιαπραγμάτευση και για όλα τα άλλα που εκτελούνται στον φιλοξενητή.

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

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