Μια χρήσιμη δοκιμή αποθήκευσης ταιριάζει το μέγεθος λειτουργίας, το μοτίβο πρόσβασης, τον παραλληλισμό και τις απαιτήσεις ανθεκτικότητας με την εφαρμογή. Καταγράψτε τις συνθήκες δοκιμής και την κατανομή καθυστέρησης και, στη συνέχεια, επιβεβαιώστε το αποτέλεσμα με μετρήσεις της εφαρμογής.
Ξεκινήστε με ένα ερώτημα αποθήκευσης, όχι με μια βαθμολογία
Αποφασίστε τι πρέπει να γνωρίζετε πριν εκτελέσετε ένα benchmark. Μπορεί να διερευνάτε αργές δεσμεύσεις βάσης δεδομένων, διεκπεραιωτική ικανότητα διανομής αρχείων ή μια διαδικασία δημιουργίας που παράγει πολλά μικρά αρχεία. Αυτοί οι φόρτοι εργασίας δεν ζητούν από τον δίσκο να κάνει το ίδιο πράγμα. Μια μεγάλη διαδοχική αντιγραφή μπορεί να φαίνεται εντυπωσιακή ενώ λέει λίγα για την καθυστέρηση που βιώνει μια υπηρεσία που εκτελεί μικρές τυχαίες αναγνώσεις.
Το NVMe σχεδιάστηκε για μη πτητικά μέσα και αποδοτική παράλληλη I/O, αλλά το όνομα του πρωτοκόλλου του δεν περιγράφει κάθε μέρος μιας φιλοξενούμενης διαδρομής αποθήκευσης. Η εικονικοποίηση, το σύστημα αρχείων, ο ανταγωνισμός πόρων και η εφαρμογή εξακολουθούν να έχουν σημασία. Γράψτε μια υπόθεση δοκιμής, όπως αν η καθυστέρηση αποθήκευσης επιβραδύνει μια συγκεκριμένη λειτουργία, αντί να προσπαθείτε να παραγάγετε έναν αριθμό που αποδεικνύει ότι ολόκληρος ο διακομιστής είναι γρήγορος.
Περιγράψτε τον φόρτο εργασίας με αναπαραγώγιμους όρους
Καταγράψτε το μέγεθος λειτουργίας, το διαδοχικό ή τυχαίο μοτίβο, την αναλογία ανάγνωσης-εγγραφής, τον αριθμό εργασιών και το βάθος ουράς. Συμπεριλάβετε το μέγεθος του συνόλου δεδομένων και τη διάρκεια της δοκιμής. Η τεκμηρίωση του fio εξηγεί αυτούς τους ελέγχους φόρτου εργασίας και τους διαθέσιμους μηχανισμούς I/O. Ένα επιδιωκόμενο βάθος μπορεί να μην επιτυγχάνεται από κάθε μηχανισμό ή ρύθμιση, επομένως διαβάστε την αναφερόμενη συμπεριφορά καθώς και τη διαμόρφωση που ζητήσατε.
Κρατήστε ένα αντίγραφο της περιγραφής της δοκιμής δίπλα στο αποτέλεσμα. Σημειώστε το λειτουργικό σύστημα, το σύστημα αρχείων, τις επιλογές προσάρτησης, τη δραστηριότητα της υπηρεσίας και τη διαθέσιμη χωρητικότητα. Αν συγκρίνετε διαμορφώσεις, αλλάξτε μία σχετική συνθήκη κάθε φορά. Μια δοκιμή με διαφορετικό μοτίβο πρόσβασης ή παραλληλισμό δεν μπορεί να παρουσιαστεί δίκαια σαν να άλλαξε μόνο το μέσο αποθήκευσης.
| Μοτίβο εφαρμογής | Διάσταση δοκιμής προς περιγραφή | Αποτέλεσμα προς εξέταση |
|---|---|---|
| Παράδοση μεγάλων αρχείων | Διαδοχικές αναγνώσεις και ταυτόχρονοι πελάτες | Διατηρούμενη διεκπεραιωτική ικανότητα και χρήση CPU |
| Αναζήτηση εγγραφής | Μικρές τυχαίες αναγνώσεις και αντιπροσωπευτικός παραλληλισμός | Κατανομή καθυστέρησης και ολοκληρωμένες λειτουργίες |
| Ανθεκτική συναλλαγή | Απαιτήσεις εγγραφής και συγχρονισμού | Καθυστέρηση σχετιζόμενη με δέσμευση, όχι μόνο ταχύτητα προσωρινής εγγραφής |
| Δημιουργία ή εξαγωγή | Μικτές λειτουργίες μικρών αρχείων | Διάρκεια εργασίας από άκρο σε άκρο και αναμονές I/O |
Ελέγξτε την προσωρινή αποθήκευση χωρίς να προσποιείστε ότι δεν έχει σημασία
Ένα σύνολο δεδομένων που χωρά στη μνήμη μπορεί να μετρά κυρίως τη συμπεριφορά της προσωρινής αποθήκευσης μετά το πρώτο πέρασμα. Αυτό μπορεί να είναι χρήσιμο αν η εφαρμογή επωφελείται συνήθως από την ίδια προσωρινή αποθήκευση, αλλά δεν θα πρέπει να χαρακτηρίζεται ως απόδοση ακατέργαστης συσκευής. Επιλέξτε σκόπιμα αν η δοκιμή εξετάζει μια θερμή διαδρομή εφαρμογής, ένα ψυχρότερο σύνολο δεδομένων ή μια λειτουργία I/O που προορίζεται να μειώσει την επίδραση της προσωρινής αποθήκευσης του λειτουργικού συστήματος.
Η υποστήριξη άμεσης I/O και η στοίχιση εξαρτώνται από την πλατφόρμα και τον μηχανισμό. Επίσης, δεν εκφράζει αυτόματα τις απαιτήσεις ανθεκτικότητας της εφαρμογής ούτε εξαλείφει κάθε προσωρινή αποθήκευση στη στοίβα. Δηλώστε με σαφήνεια τη λειτουργία που επιλέχθηκε και αποφύγετε τη σύγκριση μιας δοκιμής με προσωρινή αποθήκευση με μια δοκιμή χωρίς προσωρινή αποθήκευση σαν να αντιπροσώπευαν την ίδια εργασία. Κρατήστε τα διαστήματα προθέρμανσης και μέτρησης ξεχωριστά όπου αυτό βοηθά την ερμηνεία.
Διαβάστε τις ουρές καθυστέρησης μαζί με τη διεκπεραιωτική ικανότητα
Η μέση καθυστέρηση μπορεί να αποκρύψει αργές λειτουργίες που επηρεάζουν πραγματικά αιτήματα. Εξετάστε τα αναφερόμενα εκατοστημόρια και τον αριθμό δειγμάτων πίσω από αυτά. Ένα υψηλό εκατοστημόριο περιγράφει το όριο κάτω από το οποίο έπεσε ένα δηλωμένο ποσοστό των παρατηρούμενων λειτουργιών κατά τη διάρκεια αυτής της δοκιμής· δεν αποτελεί μόνιμη εγγύηση υπηρεσίας. Σύντομες ή μη αντιπροσωπευτικές εκτελέσεις παρέχουν περιορισμένα στοιχεία για περιόδους αιχμής στην παραγωγή.
Μεγαλύτερο βάθος ουράς μπορεί να βελτιώσει τη διεκπεραιωμένη ικανότητα ενώ αυξάνει τον χρόνο αναμονής. Αυτή η ανταλλαγή μπορεί να ταιριάζει σε μαζική επεξεργασία και να βλάπτει μια διαδραστική υπηρεσία. Συγκρίνετε αποτελέσματα σε παραλληλισμό που μοιάζει με την εφαρμογή και παρακολουθείτε το CPU και την πίεση I/O ταυτόχρονα. Σταματήστε πριν η δοκιμή δημιουργήσει περιττή διατάραξη για άλλον φόρτο εργασίας που μοιράζεται το περιβάλλον.
Κρατήστε τη δοκιμή εξουσιοδοτημένη και μη καταστροφική
Χρησιμοποιήστε έναν αποκλειστικό κατάλογο δοκιμών ή έναν προετοιμασμένο αναλώσιμο τόμο, με αρκετό ελεύθερο χώρο και σαφές σχέδιο καθαρισμού. Ποτέ μην κατευθύνετε ένα benchmark εγγραφής σε μη επαληθευμένη ακατέργαστη συσκευή ή σύνολο δεδομένων παραγωγής. Ελέγξτε τον στόχο και τη συμπεριφορά εγγραφής του εργαλείου πριν ξεκινήσετε και αρχίστε με περιορισμένη εκτέλεση. Η συνθετική I/O μπορεί να καταναλώσει χωρητικότητα και να παρεμβληθεί σε υπηρεσίες ακόμη και όταν δεν αντικαθιστά χρήσιμα αρχεία.
Για μια αξιολόγηση παρόμοια με παραγωγή, συμφωνήστε ένα παράθυρο συντήρησης και διατηρήστε την παρακολούθηση της εφαρμογής. Χρησιμοποιήστε κατασκευασμένα δεδομένα όταν είναι δυνατόν. Μην συνάγετε την αξιοπιστία αποθήκευσης από μια δοκιμή ταχύτητας: οι έλεγχοι ακεραιότητας, τα αντίγραφα ασφαλείας και η επαναφορά είναι ξεχωριστές εργασίες. Μια συσκευή που ολοκληρώνει ένα benchmark χρειάζεται ακόμη στρατηγική ανάκτησης για διαγραφή, σφάλματα λογισμικού ή απώλεια της μηχανής.
Κλείστε τον κύκλο με στοιχεία από την εφαρμογή
Ας υποθέσουμε ότι μια υπηρεσία αναφορών περνά μεγάλο μέρος του χρόνου της περιμένοντας τυχαίες αναγνώσεις. Η ομάδα δοκιμάζει ένα αντιπροσωπευτικό μοτίβο ανάγνωσης και στη συνέχεια επαναλαμβάνει την πραγματική αναφορά σε συγκρίσιμα δεδομένα. Αν η αναφορά βελτιωθεί ενώ η άλλη εργασία της παραμένει σταθερή, το αποτέλεσμα υποστηρίζει την υπόθεση αποθήκευσης. Αν όχι, διερευνήστε τον σχεδιασμό ερωτημάτων, τη μνήμη ή άλλη εξάρτηση αντί να επαναλαμβάνετε ευρύτερες συνθετικές δοκιμές.
Το Pulse NVMe και επιλεγμένες αποκλειστικές διαμορφώσεις αναφέρουν αποθήκευση NVMe στον κατάλογο SwissOctet. Οι ετικέτες τους είναι προδιαγραφές, όχι δημοσιευμένα benchmarks εφαρμογών. Χρησιμοποιήστε μια ελεγχόμενη μέθοδο για να αξιολογήσετε το παραδοθέν περιβάλλον και διατηρήστε τις συνθήκες μαζί με τα ευρήματα. Η απόφαση γίνεται ισχυρότερη όταν η μέτρηση αποθήκευσης και το ορατό στον χρήστη αποτέλεσμα απαντούν στο ίδιο ερώτημα.
Η πρακτική λίστα ελέγχου σας.
- Ορίστε πρώτα το ερώτημα της εφαρμογής.
- Καταγράψτε μοτίβο, μέγεθος μπλοκ, παραλληλισμό και διάρκεια.
- Δηλώστε τις παραδοχές προσωρινής αποθήκευσης και λειτουργίας I/O.
- Εξετάστε τα εκατοστημόρια καθυστέρησης καθώς και τη διεκπεραιωτική ικανότητα.
- Χρησιμοποιήστε επαληθευμένο αναλώσιμο στόχο και περιορισμένο αρχικό φόρτο.
- Επιβεβαιώστε το εύρημα με δοκιμή εφαρμογής.
Οι λεπτομέρειες που έχουν σημασία.
Αρκεί μια διαδοχική αντιγραφή για τη σύγκριση αποθήκευσης βάσης δεδομένων;+
Συνήθως όχι. Η πρόσβαση στη βάση δεδομένων μπορεί να περιλαμβάνει μικρές τυχαίες αναγνώσεις, εγγραφές και συγχρονισμό. Μοντελοποιήστε το σχετικό μοτίβο και επαληθεύστε την πραγματική εφαρμογή.
Η άμεση I/O αποδεικνύει ανθεκτικές εγγραφές;+
Όχι. Η προσωρινή αποθήκευση και η ανθεκτικότητα είναι ξεχωριστά ζητήματα. Ταιριάξτε τη συμπεριφορά συγχρονισμού που απαιτεί η εφαρμογή.
Μπορώ να δημοσιεύσω μια δοκιμή ως εγγυημένη ταχύτητα προγράμματος;+
Όχι. Δημοσιεύστε τις συνθήκες και το πεδίο εφαρμογής της. Ένα μετρημένο αποτέλεσμα από μία εκτέλεση δεν αποτελεί εγγύηση επιπέδου υπηρεσίας ή μελλοντικής απόδοσης.
Πηγαίνετε στην πηγή.
Αυτές οι αναφορές υποστηρίζουν τις τεχνικές έννοιες σε αυτόν τον οδηγό. Ακολουθήστε την τρέχουσα τεκμηρίωση πριν αλλάξετε ένα σύστημα παραγωγής.
- fio: Τεκμηρίωση ευέλικτου εργαλείου I/O fio.readthedocs.io
- NVM Express: Επισκόπηση προδιαγραφών και συχνές ερωτήσεις nvmexpress.org
- Πυρήνας Linux: Pressure Stall Information docs.kernel.org
Συντακτική καθοδήγηση από SwissOctet. Τα παραδείγματα είναι ενδεικτικά. Οι προδιαγραφές υπηρεσιών, οι διαθέσιμες επιλογές και οι συμβατικοί όροι πρέπει να επαληθεύονται ξεχωριστά.