Τι είναι η προσωρινή μνήμη στους σκληρούς δίσκους

Με την προσωρινή αποθήκευση εγγραφώνσε μια συσκευή αποθήκευσης ονομάζεται η χρήση ασταθούς μνήμης υψηλής ταχύτητας για τη συγκέντρωση εντολών εγγραφής που αποστέλλονται σε συσκευές αποθήκευσης και την προσωρινή αποθήκευση τους μέχρι να τις χειριστούν πιο αργά μέσα (είτε φυσικοί δίσκοι είτε φθηνή μνήμη flash). Οι περισσότερες συσκευές που χρησιμοποιούν προσωρινή αποθήκευση εγγραφής απαιτούν αδιάλειπτη παροχή ρεύματος.

Για να διαχειριστείτε την προσωρινή αποθήκευση εγγραφής δίσκου, ανοίξτε Πίνακας Ελέγχου - Διαχείριση Συσκευών.

Στο κεφάλαιο Συσκευές δίσκουκάντε διπλό κλικ στη μονάδα δίσκου που θέλετε.

Μεταβείτε στην καρτέλα Πολιτικοί

Γρήγορη αφαίρεση

Αυτή η τιμή είναι συνήθως η καλύτερη επιλογή για συσκευές που μπορεί να χρειάζεται να αφαιρούνται συχνά από το σύστημα, όπως μονάδες flash USB, SD, MMC, Compact Flash ή παρόμοιες κάρτες μνήμης και άλλες εξωτερικές συσκευές αποθήκευσης plug-in.

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

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

Εάν είναι επιλεγμένη η επιλογή Βέλτιστη απόδοση, τότε τα Windows χρησιμοποιούν μια τεχνική που ονομάζεται προσωρινή αποθήκευση εγγραφής. Αυτή η μέθοδος επιτρέπει στη συσκευή αποθήκευσης να προσδιορίσει μόνη της εάν η κρυφή μνήμη υψηλής ταχύτητας θα εξοικονομήσει χρόνο κατά την εκτέλεση εντολών εγγραφής. Εάν ναι, η συσκευή ενημερώνει τον υπολογιστή ότι τα δεδομένα αποθηκεύτηκαν με επιτυχία, παρόλο που τα δεδομένα μπορεί στην πραγματικότητα να μην βρίσκονται στην κύρια συσκευή αποθήκευσης (όπως δίσκος ή μνήμη flash). Αυτή η μέθοδος βελτιώνει δραματικά την απόδοση των λειτουργιών εγγραφής, οι οποίες συχνά αποτελούν το κύριο σημείο συμφόρησης για τη συνολική απόδοση του συστήματος. Αν όμως, για οποιονδήποτε λόγο, χαθεί η τροφοδοσία της συσκευής, τότε όλα τα δεδομένα στη μνήμη cache (τα οποία ο υπολογιστής θεωρεί ότι είναι αποθηκευμένα με ασφάλεια) μπορεί να χαθούν.

Εγγραφή προσωρινής μνήμης στο δίσκο

Με Προεπιλογή των Windowsχρησιμοποιεί την προσωρινή μνήμη εγγραφής στο δίσκο. Αυτό σημαίνει ότι το σύστημα θα δίνει περιοδικά εντολή στη συσκευή αποθήκευσης να στέλνει όλα τα δεδομένα της κρυφής μνήμης στην κύρια συσκευή αποθήκευσης. Η επιλογή αυτής της παραμέτρου απενεργοποιεί αυτές τις περιοδικές εντολές μεταφοράς δεδομένων. Δεν υποστηρίζουν όλες αυτές οι συσκευές όλες αυτές οι δυνατότητες.

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

Πώς μπορώ να αλλάξω τις επιλογές προσωρινής αποθήκευσης εγγραφής για μια συσκευή;

Οι περισσότερες συσκευές αποθήκευσης προσανατολισμένες στον καταναλωτή, όπως μονάδες flash USB, κάρτες SD ή MMC ή Εξωτερικές μονάδες, δεν επιτρέπει την αλλαγή των ρυθμίσεων προσωρινής αποθήκευσης για τη συσκευή. Εσωτερικός σκληροι ΔΙΣΚΟΙμε διεπαφές SATA ή SAS που παρέχονται με τα Windows συνήθως επιτρέπουν την αλλαγή αυτών των παραμέτρων (ανάλογα με τον κατασκευαστή της συσκευής). Για να κατανοήσετε τις δυνατότητες προσωρινής αποθήκευσης μιας συγκεκριμένης συσκευής και να καθορίσετε ποιες επιλογές ταιριάζουν καλύτερα στις ανάγκες σας, ανατρέξτε στην τεκμηρίωση του κατασκευαστή.

Μάθετε περισσότερα σχετικά με την πρόληψη της απώλειας δεδομένων

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

Θα πρέπει επίσης να αφαιρέσετε προσεκτικά αφαιρούμενες συσκευές αποθήκευσης, όπως μονάδες flash USB, κάρτες SD, MMC ή Compact Flash και εξωτερικές μονάδες δίσκου. Όταν χρησιμοποιείτε την παράμετρο Ασφαλής αφαίρεσηΤα Windows θα μπορούν να προστατεύουν τα δεδομένα χρήστη στα περισσότερα σενάρια. Ωστόσο, ορισμένα προγράμματα οδήγησης ή εφαρμογές ενδέχεται να μην είναι συμβατά με το μοντέλο των Windows, γεγονός που μπορεί να οδηγήσει σε απώλεια δεδομένων κατά την κατάργηση τέτοιων συσκευών. Εάν είναι δυνατόν, ανοίξτε την εφαρμογή Safely Remove πριν αφαιρέσετε οποιαδήποτε εξωτερική συσκευή αποθήκευσης από το σύστημα.

Πηγές: Τεκμηρίωση βοήθειας των Windows.

AZPC - Προσωπικός υπολογιστής από το Α έως το Ω. Πύλη Διαδικτύου για υπολογιστές με Windows.

Επιτρέψτε μου να σας υπενθυμίσω ότι το βοηθητικό πρόγραμμα Seagate SeaTools Enterprise επιτρέπει στο χρήστη να διαχειρίζεται την πολιτική προσωρινής αποθήκευσης και, ειδικότερα, να αλλάζει τις πιο πρόσφατες μονάδες SCSI Seagate μεταξύ δύο διαφορετικά μοντέλαπροσωρινή αποθήκευση - Λειτουργία επιφάνειας εργασίας και λειτουργία διακομιστή. Αυτό το στοιχείο στο μενού SeaTools ονομάζεται Λειτουργία απόδοσης (PM) και μπορεί να έχει δύο τιμές - On (Λειτουργία επιφάνειας εργασίας) και Off (Λειτουργία διακομιστή). Οι διαφορές μεταξύ αυτών των δύο λειτουργιών είναι καθαρά λογισμικό - στην περίπτωση του Desktop Mode, προσωρινή μνήμη σκληρός δίσκοςχωρίζεται σε ένα σταθερό αριθμό τμημάτων σταθερού (ίσου) μεγέθους και στη συνέχεια χρησιμοποιούνται για την προσωρινή αποθήκευση προσβάσεων ανάγνωσης και εγγραφής. Επιπλέον, σε ένα ξεχωριστό στοιχείο μενού, ο χρήστης μπορεί ακόμη και να εκχωρήσει ο ίδιος τον αριθμό των τμημάτων (διαχειρίζεται την τμηματοποίηση της κρυφής μνήμης): για παράδειγμα, αντί για τα προεπιλεγμένα 32 τμήματα, ορίστε μια διαφορετική τιμή (σε αυτήν την περίπτωση, ο όγκος κάθε τμήματος θα αναλογικά μείωση).

Στην περίπτωση της λειτουργίας διακομιστή, τα τμήματα προσωρινής μνήμης (cache δίσκου) μπορούν να αντιστοιχιστούν δυναμικά (εκ νέου), αλλάζοντας το μέγεθος και τον αριθμό τους. Ο μικροεπεξεργαστής (και το υλικολογισμικό) του ίδιου του δίσκου βελτιστοποιεί δυναμικά τον αριθμό (και τη χωρητικότητα) των τμημάτων της κρυφής μνήμης ανάλογα με τις εντολές που έρχονται στο δίσκο για εκτέλεση.

Στη συνέχεια, μπορέσαμε να ανακαλύψουμε ότι η χρήση των νέων μονάδων δίσκου Seagate Cheetah σε λειτουργία "Επιτραπέζιου υπολογιστή" (με σταθερό διαμοιρασμό από προεπιλογή - 32 τμήματα) αντί του προεπιλεγμένου "Διακομιστή" με δυναμικό διαμοιρασμό μπορεί να αυξήσει ελαφρώς την απόδοση των μονάδων δίσκου σε έναν αριθμό εργασίες πιο τυπικές για διακομιστές πολυμέσων επιτραπέζιου υπολογιστή. Επιπλέον, αυτή η αύξηση μερικές φορές μπορεί να φτάσει και το 30-100% (!) Ανάλογα με τον τύπο της εργασίας και το μοντέλο του δίσκου, αν και κατά μέσο όρο υπολογίζεται στο 30%, που, βλέπετε, επίσης δεν είναι κακό. Μεταξύ τέτοιων εργασιών είναι η καθημερινή εργασία ενός επιτραπέζιου υπολογιστή (δοκιμές WinBench, PCmark, H2bench), η ανάγνωση και η αντιγραφή αρχείων, η ανασυγκρότηση. Ταυτόχρονα, σε αμιγώς εφαρμογές διακομιστή, η απόδοση των δίσκων δεν πέφτει σχεδόν (αν πέσει, δεν πέφτει αισθητά). Ωστόσο, μπορέσαμε να παρατηρήσουμε ένα αξιοσημείωτο κέρδος από τη χρήση του Desktop Mode μόνο στον δίσκο Cheetah 10K.7, ενώ η μεγαλύτερη αδελφή του Cheetah 15K.4 δεν ενδιαφερόταν σε ποια λειτουργία θα λειτουργούσε σε εφαρμογές επιτραπέζιου υπολογιστή.

Προσπαθώντας να κατανοήσουμε περαιτέρω τον τρόπο διαμοιρασμού της προσωρινής μνήμης αυτών σκληροι ΔΙΣΚΟΙσχετικά με την απόδοση σε διάφορες εφαρμογές και ποιες λειτουργίες τμηματοποίησης (πόσα τμήματα μνήμης) είναι πιο ωφέλιμες κατά την εκτέλεση ορισμένων εργασιών, ερεύνησα την επίδραση του αριθμού των τμημάτων της κρυφής μνήμης στην απόδοση Οδήγηση Seagate Cheetah 15K.4 σε ένα ευρύ φάσμα τιμών - από 4 έως 128 τμήματα (4, 8, 16, 32, 64 και 128). Τα αποτελέσματα αυτών των μελετών παρουσιάζονται στην προσοχή σας σε αυτό το μέρος της ανασκόπησης. Επιτρέψτε μου να τονίσω ότι αυτά τα αποτελέσματα είναι ενδιαφέροντα όχι μόνο για αυτό το μοντέλο δίσκων (ή δίσκους SCSI από τη Seagate γενικά) - η τμηματοποίηση της κρυφής μνήμης και η επιλογή του αριθμού των τμημάτων είναι μία από τις κύριες κατευθύνσεις της βελτιστοποίησης υλικολογισμικού, συμπεριλαμβανομένων των δίσκων επιτραπέζιου υπολογιστή με ATA διεπαφή, τα οποία είναι πλέον εξοπλισμένα με buffer κυρίως 8 MB. Επομένως, τα αποτελέσματα απόδοσης της μονάδας δίσκου που περιγράφονται σε αυτό το άρθρο σε διάφορες εργασίες, ανάλογα με τον διαμοιρασμό της προσωρινής μνήμης της είναι επίσης σχετικά με τον κλάδο των μονάδων ATA επιτραπέζιου υπολογιστή. Και επειδή η μεθοδολογία του τεστ περιγράφηκε στο πρώτο μέρος, ας πάμε απευθείας στα ίδια τα αποτελέσματα.

Ωστόσο, πριν προχωρήσουμε στη συζήτηση των αποτελεσμάτων, ας ρίξουμε μια πιο προσεκτική ματιά στον σχεδιασμό και τη λειτουργία των τμημάτων μνήμης cache του δίσκου Seagate Cheetah 15K.4 για να κατανοήσουμε καλύτερα τι διακυβεύεται. Από τα οκτώ megabyte για την πραγματική μνήμη cache (δηλαδή, για λειτουργίες προσωρινής αποθήκευσης), τα 7077 KB είναι διαθέσιμα εδώ (τα υπόλοιπα είναι η περιοχή εξυπηρέτησης). Αυτή η περιοχή χωρίζεται σε λογικά τμήματα (Mode Select Page 08h, byte 13), τα οποία χρησιμοποιούνται για την ανάγνωση και την εγγραφή δεδομένων (για την εκτέλεση λειτουργιών ανάγνωσης από πλάκες και καθυστερημένης εγγραφής στην επιφάνεια του δίσκου). Για πρόσβαση σε δεδομένα σε μαγνητικές πλάκες, τα τμήματα χρησιμοποιούν τη λογική διευθυνσιοδότηση των μπλοκ κίνησης. Οι μονάδες δίσκου αυτής της σειράς υποστηρίζουν έως και 64 τμήματα κρυφής μνήμης, με το μήκος κάθε τμήματος να είναι ένας ακέραιος αριθμός τομέων δίσκου. Η ποσότητα της διαθέσιμης κρυφής μνήμης κατανέμεται προφανώς εξίσου μεταξύ των τμημάτων, δηλαδή, εάν υπάρχουν, για παράδειγμα, 32 τμήματα, τότε το μέγεθος κάθε τμήματος είναι περίπου 220 KB. Με τη δυναμική τμηματοποίηση (σε λειτουργία PM = off), ο αριθμός των τμημάτων μπορεί να αλλάξει αυτόματα από τον σκληρό δίσκο ανάλογα με τη ροή εντολών από τον κεντρικό υπολογιστή.

Οι εφαρμογές διακομιστή και επιτραπέζιου υπολογιστή απαιτούν διάφορες λειτουργίεςπροσωρινή αποθήκευση από δίσκους για βέλτιστη απόδοση, επομένως είναι δύσκολο να παρασχεθεί μια ενιαία διαμόρφωση για την καλύτερη εκτέλεση αυτών των εργασιών. Σύμφωνα με τη Seagate, οι εφαρμογές "επιτραπέζιου υπολογιστή" απαιτούν τη διαμόρφωση της κρυφής μνήμης ώστε να ανταποκρίνεται γρήγορα σε επαναλαμβανόμενα αιτήματα ένας μεγάλος αριθμόςμικρά τμήματα δεδομένων χωρίς καθυστερήσεις για ανάγνωση γειτονικών τμημάτων. Αντίθετα, οι εργασίες από την πλευρά του διακομιστή απαιτούν τη διαμόρφωση της κρυφής μνήμης ώστε να δέχεται μεγάλες ποσότητες διαδοχικών δεδομένων σε μη επαναλαμβανόμενα αιτήματα. Σε αυτήν την περίπτωση, η ικανότητα της κρυφής μνήμης να αποθηκεύει περισσότερα δεδομένα από συνεχόμενα τμήματα κατά την εκ των προτέρων ανάγνωση είναι πιο σημαντική. Επομένως, για τη λειτουργία επιτραπέζιου υπολογιστή, ο κατασκευαστής συνιστά τη χρήση 32 τμημάτων (στις πρώτες εκδόσεις του Cheetah χρησιμοποιήθηκαν 16 τμήματα) και για τη λειτουργία διακομιστή, ο προσαρμοστικός αριθμός τμημάτων ξεκινά μόνο από τρία για ολόκληρη την κρυφή μνήμη, αν και μπορεί να αυξηθεί κατά τη λειτουργία . Στα πειράματά μας σχετικά με την επίδραση του αριθμού των τμημάτων στην απόδοση σε διάφορες εφαρμογές, θα περιοριστούμε στην περιοχή από 4 τμήματα έως 64 τμήματα και ως δοκιμή θα "τρέξουμε" τον δίσκο επίσης με 128 τμήματα εγκατεστημένα στο Πρόγραμμα SeaTools Enterprise (το πρόγραμμα δεν ενημερώνει ότι αυτός ο αριθμός τμημάτων σε αυτόν τον δίσκο δεν είναι έγκυρος).

Αποτελέσματα φυσικής εξέτασης

Δεν έχει νόημα η εμφάνιση γραφημάτων γραμμικής ταχύτητας ανάγνωσης με διαφορετικούς αριθμούς τμημάτων μνήμης cache - είναι τα ίδια. Αλλά σύμφωνα με την ταχύτητα της διεπαφής Ultra320 SCSI που μετρήθηκε από τις δοκιμές, μπορείτε να παρατηρήσετε μια πολύ περίεργη εικόνα: με 64 τμήματα, ορισμένα προγράμματα αρχίζουν να καθορίζουν εσφαλμένα την ταχύτητα της διεπαφής, μειώνοντάς την κατά περισσότερο από μια τάξη μεγέθους.

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

Μπορείτε να προσπαθήσετε να κρίνετε την αποτελεσματικότητα των αλγορίθμων lazy εγγραφής του υλικολογισμικού δίσκου και της προσωρινής αποθήκευσης των δεδομένων που γράφονται στην προσωρινή μνήμη της μονάδας από τον τρόπο με τον οποίο ο μέσος χρόνος πρόσβασης εγγραφής που μετράται από το λειτουργικό σύστημα πέφτει σε σχέση με την ανάγνωση με ενεργοποιημένη προσωρινή αποθήκευση εγγραφής στη μονάδα δίσκου (ήταν πάντα ενεργοποιημένο στις δοκιμές μας). Για να γίνει αυτό, χρησιμοποιούμε συνήθως τα αποτελέσματα της δοκιμής C "T H2benchW, αλλά αυτή τη φορά θα συμπληρώσουμε την εικόνα με μια δοκιμή στο πρόγραμμα IOmeter, τα μοτίβα ανάγνωσης και εγγραφής για τα οποία χρησιμοποιήθηκαν 100% τυχαία πρόσβαση σε μπλοκ των 512 byte. με ένα μοναδιαίο βάθος της ουράς αιτημάτων. (Φυσικά, δεν πρέπει να πιστεύετε ότι ο μέσος χρόνος πρόσβασης εγγραφής στα δύο παρακάτω διαγράμματα αντικατοπτρίζει πραγματικά αυτό φυσικόςχαρακτηριστικά των δίσκων! Αυτή είναι απλώς μια συγκεκριμένη παράμετρος που μετριέται μέσω προγραμματισμού χρησιμοποιώντας μια δοκιμή, με την οποία μπορεί κανείς να κρίνει την αποτελεσματικότητα της προσωρινής αποθήκευσης εγγραφής στην προσωρινή μνήμη του δίσκου. Ο πραγματικός μέσος χρόνος πρόσβασης εγγραφής που δηλώθηκε από τον κατασκευαστή για το Cheetah 15K.4 είναι 4,0 + 2,0 = 6,0 ms). Παρεμπιπτόντως, προβλέποντας τις ερωτήσεις, σημειώνω ότι σε αυτή την περίπτωση (δηλαδή όταν είναι ενεργοποιημένη η τεμπέλης εγγραφή στο δίσκο), η μονάδα αναφέρει στον κεντρικό υπολογιστή την επιτυχή ολοκλήρωση της εντολής εγγραφής (ΚΑΛΗ κατάσταση) μόλις εγγράφονται στην κρυφή μνήμη και όχι απευθείας στο μαγνητικό μέσο ... Αυτός είναι ο λόγος για τη χαμηλότερη τιμή του μέσου χρόνου πρόσβασης εγγραφής που μετράται από έξω από την ανάλογη παράμετρο κατά την ανάγνωση.

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

Είναι ενδιαφέρον ότι η δοκιμή IOmeter στα απλούστερα μοτίβα για τυχαία πρόσβαση σε μπλοκ των 512 byte δίνει ακριβώς τις ίδιες τιμές κατά την εγγραφή με τη δοκιμή C "T H2BenchW (με ακρίβεια κυριολεκτικά εκατοστών του χιλιοστού του δευτερολέπτου), ενώ κατά την ανάγνωση του IOmeter έδειξε ένα ελαφρώς υπερεκτιμημένο αποτέλεσμα σε όλο το εύρος τμηματοποίησης - πιθανώς 0,1-0,19 ms διαφορά με άλλες δοκιμές για χρόνο τυχαίας πρόσβασης κατά την διάρκεια του διαβάσματοςλόγω κάποιων "εσωτερικών" λόγων για το IOmeter (ή το μέγεθος του μπλοκ είναι 512 byte αντί για 0 ​​byte, όπως απαιτείται ιδανικά για τέτοιες μετρήσεις). Ωστόσο, τα αποτελέσματα ανάγνωσης του IOmeter πρακτικά συμπίπτουν με αυτά του τεστ δίσκου του προγράμματος AIDA32.

Απόδοση σε εφαρμογές

Ας προχωρήσουμε στα σημεία αναφοράς απόδοσης αποθήκευσης σε εφαρμογές. Και πρώτα απ 'όλα, ας προσπαθήσουμε να μάθουμε πόσο καλά είναι βελτιστοποιημένοι οι δίσκοι για multithreading. Για να το κάνω αυτό, χρησιμοποιώ παραδοσιακά δοκιμές στο πρόγραμμα NBench 2.4, όπου 100 MB αρχεία εγγράφονται και διαβάζονται από τον δίσκο σε πολλά ταυτόχρονα νήματα.

Αυτό το διάγραμμα μας επιτρέπει να κρίνουμε την αποτελεσματικότητα των αλγορίθμων για πολυνηματική τεμπέλικη εγγραφή σκληρών δίσκων σε πραγματικές (και όχι συνθετικές, όπως ήταν στο διάγραμμα με τον μέσο χρόνο πρόσβασης) συνθήκες όταν το λειτουργικό σύστημα δουλεύει με αρχεία. Η ηγεσία και των δύο δίσκων Maxtor SCSI κατά την εγγραφή με πολλές ταυτόχρονες ροές είναι αναμφισβήτητη, αλλά στην Chita παρατηρούμε ήδη ένα ορισμένο βέλτιστο στην περιοχή μεταξύ 8 και 16 τμημάτων, ενώ σε υψηλότερες και χαμηλότερες τιμές η ταχύτητα του δίσκου μειώνεται για αυτές τις εργασίες . Για τη λειτουργία διακομιστή, ο αριθμός των τμημάτων είναι προφανώς 32 (με καλή ακρίβεια :)) και τα τμήματα "128" είναι στην πραγματικότητα 64.

Για αναγνώσεις πολλαπλών νημάτων, οι μονάδες δίσκου Seagate βελτιώνονται σαφώς σε σχέση με τις μονάδες Maxtor. Όσον αφορά την επιρροή της τμηματοποίησης, τότε, όπως και με την εγγραφή, παρατηρούμε ένα ορισμένο βέλτιστο πιο κοντά σε 8 τμήματα (κατά την εγγραφή ήταν πιο κοντά στα 16 τμήματα), και με πολύ υψηλή τμηματοποίηση (64), η ταχύτητα του δίσκου μειώνεται σημαντικά (όπως σε ηχογράφηση)... Είναι ευχάριστο το γεγονός ότι η λειτουργία διακομιστή "παρακολουθεί το παζάρι" του κεντρικού υπολογιστή εδώ και αλλάζει τον διαμοιρασμό από 32 κατά την εγγραφή σε ~ 8 κατά την ανάγνωση.

Ας δούμε τώρα πώς συμπεριφέρονται οι δίσκοι στις "παλιές", αλλά ακόμα δημοφιλείς δοκιμές Disk WinMark 99 από το πακέτο WinBench 99. Επιτρέψτε μου να σας υπενθυμίσω ότι πραγματοποιούμε αυτές τις δοκιμές όχι μόνο για την "αρχή", αλλά και για τη "μέση" (από άποψη όγκου) φυσικά μέσα για τα δύο συστήματα αρχείων και τα διαγράμματα δείχνουν τα μέσα αποτελέσματα. Φυσικά, αυτές οι δοκιμές δεν είναι "προφίλ" για μονάδες SCSI και παρουσιάζουμε τα αποτελέσματά τους εδώ μάλλον αποτίουμε φόρο τιμής στην ίδια τη δοκιμή και σε όσους έχουν συνηθίσει να κρίνουν την ταχύτητα του δίσκου από τις δοκιμές WinBench 99. Ως "παρηγοριά", ας Σημειώστε ότι αυτές οι δοκιμές θα μας δείξουν με κάποιο βαθμό βεβαιότητας ποια είναι η απόδοση αυτών των εταιρικών μονάδων δίσκου κατά την εκτέλεση εργασιών πιο χαρακτηριστικών ενός επιτραπέζιου υπολογιστή.

Προφανώς, υπάρχει μια βέλτιστη τμηματοποίηση εδώ, και με έναν μικρό αριθμό τμημάτων ο δίσκος φαίνεται ανέκφραστος και με 32 τμήματα - ο καλύτερος τρόπος(ίσως γι' αυτό οι προγραμματιστές της Seagate "μετατόπισαν" την προεπιλεγμένη ρύθμιση Desktop Mode από 16 σε 32 τμήματα). Ωστόσο, για τη λειτουργία διακομιστή σε εργασίες γραφείου (Business), η τμηματοποίηση δεν είναι απολύτως βέλτιστη, ενώ για την επαγγελματική απόδοση (High-End), η τμηματοποίηση είναι κάτι παραπάνω από βελτιστοποιημένη, ξεπερνώντας αισθητά ακόμη και τη βέλτιστη "σταθερή" τμηματοποίηση. Προφανώς, κατά τη διάρκεια της εκτέλεσης της δοκιμής αλλάζει ανάλογα με τη ροή των εντολών και λόγω αυτού, προκύπτει ένα κέρδος στη συνολική απόδοση.

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

Και στα δύο (ή μάλλον, σε 10 διαφορετικά) "κομμάτια δραστηριότητας" η ευφυΐα της λειτουργίας διακομιστή είναι αισθητά κατώτερη από τη βέλτιστη σταθερή τμηματοποίηση, η οποία για το PCmark04 είναι περίπου 8 τμήματα και για το H2benchW - 16 τμήματα.

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

Σε αντίθεση με αυτά, φυσικά, όλα τα ίδια συνθετικά (αν και πολύ παρόμοια με την πραγματικότητα) δοκιμές - μια εντελώς "πραγματική" δοκιμή της ταχύτητας των δίσκων με ένα προσωρινό αρχείο Προγράμματα της Adobe Photoshop. Εδώ η κατάσταση είναι πολύ πιο ζοφερή - όσο περισσότερα τμήματα, τόσο το καλύτερο! Και το Server Mode σχεδόν το «έπιασε», χρησιμοποιώντας 32 τμήματα για τη δουλειά του (αν και το 64 θα ήταν έστω και λίγο καλύτερο).

Σημεία αναφοράς Intel Iometer

Ας προχωρήσουμε σε εργασίες που είναι πιο τυπικές για τα προφίλ χρήσης μονάδων δίσκου SCSI - τη λειτουργία διαφόρων διακομιστών (Βάση δεδομένων, Διακομιστής αρχείων, Διακομιστής Ιστού) και σταθμού εργασίας (Σταθμός εργασίας) σύμφωνα με τα αντίστοιχα μοτίβα στην έκδοση Intel IOmeter 2003.5.10.

Το Maxtor είναι το καλύτερο στην προσομοίωση ενός διακομιστή βάσης δεδομένων, ενώ η λειτουργία διακομιστή είναι η πιο κερδοφόρα για τη Seagate, αν και στην πραγματικότητα η τελευταία είναι πολύ κοντά στα 32 μόνιμα τμήματα (περίπου 220 KB το καθένα). Λιγότερη ή μεγαλύτερη τμηματοποίηση είναι χειρότερη σε αυτήν την περίπτωση. Ωστόσο, αυτό το μοτίβο είναι πολύ απλό όσον αφορά τον τύπο των αιτημάτων - ας δούμε τι συμβαίνει για πιο σύνθετα μοτίβα.

Κατά τη μίμηση διακομιστή αρχείωνκαι πάλι, η προσαρμοστική τμηματοποίηση προηγείται, αν και η υστέρηση κατά 16 σταθερά τμήματα είναι αμελητέα (32 τμήματα είναι λίγο χειρότερα εδώ, αν και είναι επίσης αρκετά). Με μια μικρή τμηματοποίηση, υπάρχει μια επιδείνωση σε μια μεγάλη ουρά εντολών και με πολύ μεγάλη (64) οποιαδήποτε ουρά γενικά αντενδείκνυται - προφανώς, σε αυτήν την περίπτωση, το μέγεθος των τομέων της κρυφής μνήμης αποδεικνύεται πολύ μικρό (λιγότερο από 111 KB, δηλαδή μόνο 220 μπλοκ στα μέσα) για την αποτελεσματική προσωρινή αποθήκευση Ποσοτήτων δεδομένων λογικού μεγέθους.

Τέλος, για τον διακομιστή Web, βλέπουμε μια ακόμη πιο διασκεδαστική εικόνα - με μια ουρά εντολών NON-ONE, η λειτουργία διακομιστή είναι ισοδύναμη όποιοςεπίπεδο τμηματοποίησης, εκτός από το 64, αν και στο single είναι ελαφρώς καλύτερο από όλους τους άλλους.

Ως αποτέλεσμα του γεωμετρικού μέσου όρου των φορτίων του διακομιστή που εμφανίζονται παραπάνω από μοτίβα και ουρές αιτημάτων (χωρίς βάρη), διαπιστώνουμε ότι η προσαρμοστική κοινή χρήση είναι η καλύτερη για τέτοιες εργασίες, αν και 32 επίμονα τμήματα υστερούν ελαφρά και 16 τμήματα φαίνονται επίσης καλά συνολικά. Σε γενικές γραμμές, η επιλογή της Seagate είναι αρκετά κατανοητή.

Όσο για το μοτίβο" σταθμός εργασίας», Ότι εδώ η λειτουργία διακομιστή είναι σαφώς η καλύτερη.

Και το βέλτιστο για μόνιμη τμηματοποίηση είναι στο επίπεδο των 16 τμημάτων.

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

Η ανάγνωση μεγάλων αρχείων είναι και πάλι καλύτερη για τη λειτουργία διακομιστή, εκτός από μια ακατανόητη πτώση στο QD = 4. Ωστόσο, ένας μικρός αριθμός μεγάλων τμημάτων είναι σαφώς προτιμότερος για το δίσκο σε αυτές τις λειτουργίες (ο οποίος, καταρχήν, είναι προβλέψιμος και συμφωνεί άριστα με τα αποτελέσματα για ανάγνωση αρχείων πολλαπλών νημάτων, βλέπε παραπάνω).

Σποραδικός εγγραφήΤα μεγάλα αρχεία, από την άλλη πλευρά, εξακολουθούν να είναι πολύ δύσκολα για την ευφυΐα της λειτουργίας διακομιστή και εδώ η συνεχής τμηματοποίηση σε επίπεδο 8-16 τμημάτων είναι πιο συμφέρουσα, όπως με την εγγραφή αρχείων πολλαπλών νημάτων, βλέπε παραπάνω. Ξεχωριστά, σημειώνουμε ότι σε αυτές τις λειτουργίες, η μεγάλη τμηματοποίηση της κρυφής μνήμης είναι εξαιρετικά επιβλαβής - σε επίπεδο 64 τμημάτων. Ωστόσο, αποδεικνύεται χρήσιμο για λειτουργίες ανάγνωσης μικρών αρχείων με μεγάλη ουρά αιτημάτων:

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

Ταυτόχρονα, όταν γράφετε μικρά αρχεία σε τυχαίες διευθύνσεις, 64 τμήματα αποτυγχάνουν ξανά και η λειτουργία διακομιστή είναι κατώτερη εδώ από τη σταθερή τμηματοποίηση με επίπεδο 8-16 τμημάτων ανά κρυφή μνήμη, αν και οι προσπάθειες του διακομιστή Λειτουργία να χρησιμοποιήσει βέλτιστες ρυθμίσεις(μόνο με 32-64 τμήματα στην ουρά 64 κακή τύχη βγήκε;)).

Η αντιγραφή μεγάλων αρχείων είναι μια ξεκάθαρη αποτυχία της λειτουργίας διακομιστή! Εδώ, ο θρυμματισμός με το επίπεδο 16 είναι σαφώς πιο πλεονεκτικός (αυτό είναι το βέλτιστο, αφού το 8 και το 32 είναι χειρότερα στην ουρά 4).

Όσον αφορά την αντιγραφή μικρών αρχείων, τα τμήματα 8-16-32 είναι πρακτικά ίσα εδώ, ξεπερνώντας τα 64 τμήματα (παραδόξως) και η λειτουργία διακομιστή είναι λίγο "περίεργη".

Με βάση τα αποτελέσματα του γεωμετρικού μέσου όρου δεδομένων για τυχαία ανάγνωση, εγγραφή και αντιγραφή μεγάλων και μικρών αρχείων, διαπιστώνουμε ότι το καλύτερο αποτέλεσμα κατά μέσο όρο δίνεται από σταθερή τμηματοποίηση με επίπεδο μόνο 4 τμημάτων ανά κρυφή μνήμη (δηλαδή, μεγέθη τμημάτων περισσότερα από 1,5 MB!), Ενώ τα 8 και τα 16 τμήματα είναι περίπου ίσα και σχεδόν δεν υστερούν σε σχέση με 4 τμήματα, αλλά 64 τμήματα σαφώς αντενδείκνυνται. Κατά μέσο όρο, η λειτουργία Adaptive Server Mode απέδιδε ελάχιστα σε σταθερή κατάτμηση - μια απώλεια ενός τοις εκατό δύσκολα μπορεί να θεωρηθεί αισθητή.

Μένει να σημειωθεί ότι κατά την προσομοίωση της ανασυγκρότησης, παρατηρούμε μια κατά προσέγγιση ισότητα όλων των επιπέδων σταθερής κατάτμησης και ένα μικρό πλεονέκτημα της λειτουργίας διακομιστή (κατά το ίδιο 1%).

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

συμπεράσματα

Έχοντας πραγματοποιήσει στο δεύτερο μέρος της ανασκόπησής μας μια πιο λεπτομερή μελέτη του αντίκτυπου του διαμοιρασμού της μνήμης cache στην απόδοση της μονάδας Seagate Cheetah 15K.4 σε διάφορες εργασίες, θα ήθελα να σημειώσω ότι οι προγραμματιστές δεν κατονόμασαν τις λειτουργίες προσωρινής αποθήκευσης όπως τους αποκαλούσαν για έναν λόγο: στη λειτουργία διακομιστή, η τμηματοποίηση προσαρμόζεται συχνά στη μνήμη cache για την εργασία που εκτελείται, και αυτό μερικές φορές οδηγεί σε πολύ καλά αποτελέσματα - ειδικά όταν εκτελείτε "βαριές" εργασίες, συμπεριλαμβανομένων των μοτίβων διακομιστή στο Intel IOmeter και Δίσκος High-End WinMark 99 δοκιμή και τυχαία ανάγνωση μικρών μπλοκ σε όλο το δίσκο ... Ταυτόχρονα, συχνά η επιλογή του επιπέδου διαμοιρασμού της μνήμης cache στη λειτουργία διακομιστή αποδεικνύεται ότι δεν είναι βέλτιστη (και απαιτεί περαιτέρω εργασία για τη βελτίωση τα κριτήρια για την ανάλυση της ροής εντολών του κεντρικού υπολογιστή) και, στη συνέχεια, η Λειτουργία επιφάνειας εργασίας εμφανίζεται με σταθερό διαμοιρασμό στο επίπεδο των 8, 16 ή 32 τμημάτων ανά κρυφή μνήμη. Επιπλέον, ανάλογα με τον τύπο της εργασίας, μερικές φορές είναι πιο κερδοφόρο να χρησιμοποιείτε 16 και 32, και μερικές φορές - 8 ή μόνο 4 τμήματα μνήμης! Οι τελευταίες περιλαμβάνουν αναγνώσεις και εγγραφές πολλαπλών νημάτων (και τυχαίες και διαδοχικές), δοκιμές παρακολούθησης όπως το PCMark04 και εργασίες ροής με ταυτόχρονη ανάγνωση και γραφή. Αν και το "συνθετικό" για τυχαία πρόσβαση εγγραφής δείχνει ξεκάθαρα ότι η αποτελεσματικότητα των lazy εγγραφών (σε τυχαίες διευθύνσεις) μειώνεται σημαντικά με τη μείωση του αριθμού των τμημάτων. Δηλαδή, υπάρχει αγώνας μεταξύ δύο τάσεων - και γι' αυτό, κατά μέσο όρο, είναι πιο αποτελεσματικό να χρησιμοποιείτε 16 ή 32 τμήματα ανά buffer 8 MB. Εάν το μέγεθος του buffer διπλασιαστεί, μπορεί να προβλεφθεί ότι είναι πιο κερδοφόρο να διατηρηθεί ο αριθμός των τμημάτων στο επίπεδο 16-32, αλλά αυξάνοντας αναλογικά τη χωρητικότητα κάθε τμήματος, η μέση απόδοση του δίσκου μπορεί να αυξηθεί σημαντικά. Προφανώς, ακόμη και αναποτελεσματική τώρα στις περισσότερες εργασίες, η τμηματοποίηση μιας κρυφής μνήμης με 64 τμήματα κατά τον διπλασιασμό του μεγέθους της προσωρινής μνήμης μπορεί να αποδειχθεί πολύ χρήσιμη, ενώ η χρήση 4 ή και 8 τμημάτων σε αυτήν την περίπτωση θα καταστεί αναποτελεσματική. Ωστόσο, αυτά τα συμπεράσματα εξαρτώνται επίσης σε μεγάλο βαθμό από τα μπλοκ του λειτουργικού συστήματος και των εφαρμογών που προτιμούν να λειτουργούν με τη μονάδα δίσκου και ποια αρχεία χρησιμοποιούνται σε αυτήν την περίπτωση. Είναι πολύ πιθανό όταν αλλάζει το περιβάλλον, η βέλτιστη κοινή χρήση της προσωρινής μνήμης μπορεί να μετατοπιστεί προς τη μία ή την άλλη κατεύθυνση. Λοιπόν, ευχόμαστε στη Seagate επιτυχία στη βελτιστοποίηση της «έξυπνης» λειτουργίας διακομιστή, η οποία, σε κάποιο βαθμό, μπορεί να εξομαλύνει αυτήν την «εξάρτηση συστήματος» και την «εξάρτηση εργασιών» μαθαίνοντας πώς να επιλέγει την βέλτιστη τμηματοποίηση ανάλογα με τη ροή εντολών του κεντρικού υπολογιστή. ο καλύτερος τρόπος.

Η πιο διάσημη Alyosha Runet μοιράζεται συγκλονιστικές πληροφορίες.
http://www.exler.ru/blog/item/12406/?25

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

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

Αρχικά, ας ορίσουμε τι είναι η προσωρινή μνήμη δίσκου υλικού.
Σε γενικές γραμμές, αυτό είναι ένα μικρό κομμάτι λειτουργικού, "ραμμένο" στα ηλεκτρονικά του σκληρού δίσκου.

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

Εάν ένα αρχείο χρησιμοποιείται συχνά από το σύστημα, τότε θα τοποθετηθεί στην κρυφή μνήμη του δίσκου προκειμένου 1) να μην τραβήξει τον δίσκο άσκοπα και 2) να επιταχύνει την πρόσβαση σε αυτό το αρχείο. Σκότωσε δύο πουλιά με μια πέτρα.

Γενικά, δεν είναι ένα αρχείο που τοποθετείται στην κρυφή μνήμη, αλλά οποιοδήποτε περιεχόμενο των μπλοκ του σκληρού δίσκου που διαβάζεται συχνά. Για παράδειγμα, δεδομένα υπηρεσίας σύστημα αρχείων... Ή MBR. Ή 12 kilobyte από τη μέση ενός αρχείου βάσης δεδομένων gigabyte. Ο δίσκος δεν κάνει διάκριση μεταξύ του περιεχομένου του, δεν τον ενδιαφέρει.
Η κατάσταση με το αρχείο δίνεται για σαφήνεια.

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

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

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

Επιπλέον, στα λειτουργικά συστήματα Unix, η "επιπλέον" (αχρησιμοποίητη) RAM λειτουργεί ως πρόσθετη κρυφή μνήμη. Τα λεγόμενα, κρυφή μνήμη δίσκου λογισμικού... Μερικές φορές αναφέρεται ως "προσωρινή προσωρινή μνήμη", αλλά αυτό είναι κάπως διαφορετικό.

Το έχουν και τα Windows, αλλά όλα τα πλεονεκτήματά του αντισταθμίζονται πλήρως από την ανεπαρκή χρήση του αρχείου σελιδοποίησης.
Η κανονική κατάσταση του συστήματος είναι ότι τα περιεχόμενα της μνήμης RAM βρίσκονται στο δίσκο (pagefile.sys) και τα περιεχόμενα του δίσκου βρίσκονται στη μνήμη RAM (cache μαλακού δίσκου). Σχιζοφρένεια.

Όχι πολύ καιρό πριν, αυτοί οι ελεγκτές προσωρινής μνήμης άρχισαν να επιστρέφουν, αλλά ήδη με τη μορφή δίσκων SSD. Πρώτον, εμφανίστηκαν οι λεγόμενοι υβριδικοί δίσκοι - συνηθισμένοι σκληροί δίσκοι, στους οποίους ενσωματώθηκε επίσης ένας ξεχωριστός μικρός SSD (16-32 GB), ο οποίος χρησιμοποιήθηκε αποκλειστικά για προσωρινή αποθήκευση.

Ο συγγραφέας δεν καταλαβαίνει ότι τίποτα δεν έχει πάει πουθενά, ώστε τώρα να επιστρέψει με πυροτεχνήματα και φανφάρες.
Και ότι οι υβριδικοί δίσκοι είναι ένα τέχνασμα μάρκετινγκ (για κάποιο λόγο, ένας SSD 16 gig τοποθετήθηκε σε μια κανονική βίδα, και μάλιστα με μειωμένη λειτουργικότητα).
Και τι πιο λογικό, πιο εύκολο και σωστό είναι να χρησιμοποιήσετε δύο βίδες: ένα γρήγορο SSD για το σύστημα και μια κανονική βίδα για δεδομένα. Για μια κρυφή μνήμη 16 συναυλιών είναι μια μαγευτική ανοησία (με μια προειδοποίηση: στο αυτή τη στιγμή ).

Και τώρα άρχισαν να παράγουν ξεχωριστούς SSD, οι οποίοι χρησιμοποιούνται επίσης ειδικά για την προσωρινή αποθήκευση.

Ανάγνωση - κανονικοί SSD με κόκκινα γράμματα "Μόνο Cache".

Χειρότερο από ένα lamer είναι μόνο ένας lamer με μεγάλο κοινό. ©

Σήμερα, η κοινή αποθήκευση πληροφοριών είναι μαγνητική HDD... Διαθέτει μια συγκεκριμένη ποσότητα μνήμης αφιερωμένη στην αποθήκευση βασικών δεδομένων. Διαθέτει επίσης buffer μνήμη, σκοπός της οποίας είναι η αποθήκευση ενδιάμεσων δεδομένων. Οι επαγγελματίες αποκαλούν το buffer του σκληρού δίσκου με τον όρο "cache memory" ή απλά "cache". Ας μάθουμε γιατί χρειάζεται το buffer του σκληρού δίσκου, τι επηρεάζει και πόσο μεγάλο είναι.

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

Το ίδιο το buffer του σκληρού δίσκου δεν είναι ξεχωριστός τομέας, όπως πιστεύουν οι ανίκανοι χρήστες υπολογιστών. Είναι ένα ειδικό τσιπ μνήμης που βρίσκεται στην εσωτερική πλακέτα του σκληρού δίσκου. Τέτοια μικροκυκλώματα είναι σε θέση να λειτουργούν πολύ πιο γρήγορα από την ίδια τη μονάδα. Ως αποτέλεσμα, προκαλούν αύξηση (κατά αρκετά τοις εκατό) στην απόδοση του υπολογιστή που παρατηρείται κατά τη λειτουργία.

Θα πρέπει να σημειωθεί ότι το μέγεθος της «cache memory» εξαρτάται από το συγκεκριμένο μοντέλο δίσκου. Προηγουμένως, ήταν περίπου 8 megabyte και ο αριθμός αυτός θεωρούνταν ικανοποιητικός. Ωστόσο, με την πρόοδο της τεχνολογίας, οι κατασκευαστές μπόρεσαν να παράγουν τσιπ με περισσότερη μνήμη. Επομένως, οι περισσότεροι σύγχρονοι σκληροί δίσκοι διαθέτουν buffer, το μέγεθος του οποίου κυμαίνεται από 32 έως 128 megabyte. Φυσικά, η μεγαλύτερη "cache" εγκαθίσταται σε ακριβά μοντέλα.

Πώς η προσωρινή μνήμη του σκληρού δίσκου επηρεάζει την απόδοση

Τώρα ας σας πούμε γιατί το μέγεθος του buffer του σκληρού δίσκου επηρεάζει την απόδοση του υπολογιστή. Θεωρητικά, όσο περισσότερες πληροφορίες θα υπάρχουν στην "cache memory", τόσο λιγότερο συχνά το λειτουργικό σύστημα θα έχει πρόσβαση στον σκληρό δίσκο. Αυτό ισχύει ιδιαίτερα για ένα σενάριο εργασίας όταν ένας πιθανός χρήστης επεξεργάζεται μεγάλο αριθμό μικρών αρχείων. Απλώς μετακινούνται στο buffer του σκληρού δίσκου και περιμένουν τη σειρά τους εκεί.

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

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

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

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

Στο σύγχρονο υπολογιστικά συστήματαμπορούν να χρησιμοποιηθούν πολλαπλά επίπεδα προσωρινής αποθήκευσης. V αυτό το μάθημαη κρυφή μνήμη υλικού του επεξεργαστή δεν λαμβάνεται υπόψη, γεγονός που επιτρέπει τη μείωση του αριθμού προσβάσεων στην κύρια μνήμη λόγω της χρήσης καταχωρητών υψηλής ταχύτητας. Η προσωρινή αποθήκευση λογισμικού συσκευών τυχαίας πρόσβασης (μονάδες δίσκου) σχετίζεται πιο άμεσα με τη λειτουργία του ΛΣ. Σε αυτήν την περίπτωση, η υπόθεση σχετικά με την εντοπιότητα των συνδέσμων μπορεί να αναδιατυπωθεί πιο συγκεκριμένα: εάν το πρόγραμμα διαβάζει ή γράφει δεδομένα από ένα συγκεκριμένο μπλοκ του δίσκου, τότε είναι πολύ πιθανό ότι στο εγγύς μέλλον θα υπάρξουν περισσότερες λειτουργίες ανάγνωσης ή εγγραφής δεδομένων από το ίδιο μπλοκ.

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

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

Εάν το απαιτούμενο μπλοκ δίσκου δεν βρεθεί στη μνήμη cache, τότε πρέπει να εκχωρηθεί ένα buffer για αυτό. Το πρόβλημα είναι ότι ο συνολικός αριθμός των buffer της κρυφής μνήμης είναι περιορισμένος. Για να δώσετε ένα από αυτά για το απαιτούμενο μπλοκ, ένα από τα μπλοκ που ήταν αποθηκευμένα εκεί πρέπει να "μετατοπιστεί" από την κρυφή μνήμη. Επιπλέον, εάν το προκαταρκτικό μπλοκ είναι "βρώμικο", τότε πρέπει να "καθαριστεί", π.χ. γραμμένο στο δίσκο. Όταν ένα "καθαρό" μπλοκ είναι προκαταρκτικό, δεν χρειάζεται να εκτελεστούν λειτουργίες δίσκου.

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

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

Μεταξύ των αλγορίθμων που χρησιμοποιούνται στην πράξη, ο καλύτερος είναι αυτός LRU (Last Recently Used, χαλαρά μεταφρασμένο "δεν χρησιμοποιείται για μεγάλο χρονικό διάστημα"). Συνίσταται στα εξής: το μπλοκ στο οποίο δεν έχει προσπελαστεί για το μεγαλύτερο χρονικό διάστημα θα πρέπει να επιλεγεί για μετατόπιση. Εδώ, χρησιμοποιείται η αρχή της τοπικότητας των συνδέσμων: δεδομένου ότι δεν υπήρξαν κλήσεις για μεγάλο χρονικό διάστημα, τότε, πιθανότατα, δεν θα γίνουν στο εγγύς μέλλον.

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

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

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

Στο σχ. Το 2-3 δείχνει μια σειρά από buffer συνδεδεμένα σε μια λίστα.

Τώρα για τα βρώμικα buffer. Σε ποιες περιπτώσεις πρέπει να «καθαρίζονται», δηλ. γράφοντας ένα μπλοκ δεδομένων από την προσωρινή μνήμη στο δίσκο; Υπάρχουν τρεις τέτοιες περιπτώσεις.

· Επιλογή μπλοκ για αποβολή από την κρυφή μνήμη.

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

· Λειτουργία αναγκαστικής εκκαθάρισης όλων των buffer ή μόνο των buffer που σχετίζονται με ένα συγκεκριμένο αρχείο. Μια παρόμοια λειτουργία μπορεί να πραγματοποιηθεί για τη βελτίωση της αξιοπιστίας της αποθήκευσης δεδομένων, ως ασφάλιση από πιθανές βλάβες. Στο λειτουργικό σύστημα UNIX, για παράδειγμα, η έκπλυση όλων των buffer εκτελείται παραδοσιακά κάθε 30 δευτερόλεπτα.

Θα πρέπει να αναγνωριστεί ότι η προσωρινή αποθήκευση των λειτουργιών εγγραφής στο δίσκο, σε αντίθεση με την προσωρινή αποθήκευση των αναγνώσεων, ενέχει πάντα έναν ορισμένο κίνδυνο απώλειας δεδομένων. Σε περίπτωση τυχαίας βλάβης του συστήματος, διακοπής ρεύματος κ.λπ. μπορεί να αποδειχθεί ότι σημαντικές πληροφορίεςπου θα έπρεπε να είχε γραφτεί στο δίσκο κόλλησε σε βρώμικα buffers cache και ως εκ τούτου χάθηκε. Αυτό είναι το αναπόφευκτο τίμημα που πρέπει να πληρωθεί για τη σημαντική βελτίωση της απόδοσης του συστήματος. Τα προγράμματα που απαιτούν υψηλή αξιοπιστία για την εργασία με δεδομένα (για παράδειγμα, τραπεζικά προγράμματα) συνήθως γράφουν δεδομένα απευθείας στο δίσκο. Σε αυτήν την περίπτωση, η κρυφή μνήμη είτε δεν χρησιμοποιείται καθόλου, είτε ένα αντίγραφο των δεδομένων εγγράφεται στην προσωρινή μνήμη προσωρινής αποθήκευσης, το οποίο μπορεί να είναι χρήσιμο για επακόλουθες λειτουργίες ανάγνωσης.

Το σημείο συμφόρησης της προσωρινής αποθήκευσης δίσκου είναι η εύρεση του απαιτούμενου μπλοκ δεδομένων στη μνήμη cache. Όπως περιγράφεται παραπάνω, το σύστημα εξετάζει τις κεφαλίδες buffer για αυτό. Εάν η κρυφή μνήμη αποτελείται από πολλές εκατοντάδες buffer, ο χρόνος αναζήτησης θα είναι εμφανής. Ένα από τα πιθανά κόλπα επιτάχυνσης αναζήτησης UNIX φαίνεται στην Εικ. 2-4.

Στο UNIX, κάθε προσωρινή προσωρινή μνήμη μπορεί να εμφανίζεται ταυτόχρονα σε δύο γραμμικές λίστες. Ένα από αυτά, που ονομάζεται "δωρεάν λίστα", είναι η γνωστή λίστα LRU που χρησιμοποιείται για τον προσδιορισμό του μπλοκ προς έξωση. Δωρεάν δεν σημαίνει άδειο. Σε αυτήν την περίπτωση, αυτή η λέξη σημαίνει ένα μπλοκ που δεν καταλαμβάνεται αυτήν τη στιγμή από μια λειτουργία ανάγνωσης/εγγραφής που εκτελείται από κάποια διεργασία. Μια άλλη λίστα ονομάζεται "hash chain" και χρησιμοποιείται για να επιταχύνει την αναζήτηση του επιθυμητού μπλοκ.

Κατά την εγγραφή δεδομένων στο buffer που αντιστοιχεί σε ένα συγκεκριμένο μπλοκ του δίσκου, ο αριθμός της αλυσίδας κατακερματισμού, στην οποία θα τοποθετηθεί αυτή η προσωρινή μνήμη, προσδιορίζεται ως το υπόλοιπο της διαίρεσης του αριθμού μπλοκ με το Ν - τον αριθμό των αλυσίδων κατακερματισμού. Για λόγους σαφήνειας, στο σχήμα, υποτίθεται η τιμή N = 10. Έτσι, τα μπλοκ με αριθμούς 120, 40, 90 εμπίπτουν στην αλυσίδα 0, τα μπλοκ 91, 1, 71 - στην αλυσίδα 1 κ.λπ. Όταν το σύστημα αναζητά στην κρυφή μνήμη ένα μπλοκ με έναν ορισμένο αριθμό, πρώτα απ 'όλα, από τον αριθμό μπλοκ, καθορίζει σε ποια από τις αλυσίδες κατακερματισμού θα πρέπει να βρίσκεται αυτό το μπλοκ. Εάν το μπλοκ δεν βρίσκεται σε αυτήν την αλυσίδα, τότε δεν βρίσκεται καθόλου στην κρυφή μνήμη. Με αυτόν τον τρόπο, είναι δυνατό να συντομεύσετε την αναζήτηση κατά έναν παράγοντα N στην καλύτερη περίπτωση (αυτό συμβαίνει εάν όλες οι αλυσίδες έχουν το ίδιο μήκος).

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

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