Γιατί οι μονάδες SSD επιβραδύνουν καθώς τις γεμίζετε
Τα σημεία αναφοράς είναι σαφή: Οι μονάδες SSD επιβραδύνουν καθώς γεμίζετε. Συμπληρώστε τη μονάδα SSD σε κοντινή χωρητικότητα και η απόδοση εγγραφής της θα μειωθεί δραματικά. Ο λόγος για τον οποίο βρίσκεται στον τρόπο εργασίας SSDs και NAND Flash αποθήκευσης.
Η πλήρωση της μονάδας σε χωρητικότητα είναι ένα από τα πράγματα που δεν πρέπει να κάνετε ποτέ με μια μονάδα SSD. Μια σχεδόν πλήρης μονάδα SSD θα έχει πολύ πιο αργές λειτουργίες εγγραφής, επιβραδύνοντας τον υπολογιστή σας.
Κενά μπλοκ και μερικώς γεμάτα μπλοκ
Όταν γράφετε ένα αρχείο στη μονάδα SSD, αναζητά κενά μπλοκ και τα γεμίζει. Η εγγραφή σε κενό μπλοκ είναι η ταχύτερη δυνατή εγγραφή. Αυτός είναι ο λόγος για τον οποίο τα νέα λειτουργικά συστήματα (Windows 7 και μεταγενέστερα) υποστηρίζουν τη λειτουργία TRIM, η οποία διαγράφει αυτόματα τα δεδομένα ενός αρχείου από τη μονάδα SSD μόλις διαγράψετε το αρχείο στο λειτουργικό σας σύστημα. Αυτό λειτουργεί διαφορετικά από τους μαγνητικούς σκληρούς δίσκους, όπου τα κομμάτια των διαγραμμένων αρχείων κάθονται γύρω από το σκληρό δίσκο.
Δεν κάθονται γύρω από μια μονάδα στερεάς κατάστασης - το TRIM εξασφαλίζει ότι το μπλοκ αδειάζει, ώστε το SSD να μπορεί να γράψει γρήγορα νέα δεδομένα στο κενό μπλοκ στο μέλλον. Η εγγραφή σε έναν ήδη γραπτό τομέα είναι εξίσου γρήγορη με τη γραφή σε έναν κενό τομέα σε έναν μηχανικό σκληρό δίσκο, αλλά μια μονάδα SSD πρέπει να σβήσει ένα μπλοκ πριν γράψει σε αυτό.
Η μνήμη NAND Flash εγγράφει δεδομένα σε 4 KB σελίδες μέσα σε 256 KB μπλοκ. Για να προσθέσετε επιπλέον σελίδες σε ένα μερικώς γεμάτο μπλοκ, η μονάδα SSD πρέπει να διαγράψει ολόκληρο το μπλοκ πριν γράψει τα δεδομένα πίσω σε αυτήν.
Καθώς ο σκληρός σας δίσκος γεμίζει, υπάρχουν όλο και λιγότερες κενές μονάδες. Στη θέση τους είναι μερικά γεμάτα μπλοκ. Η μονάδα SSD δεν μπορεί απλώς να γράψει τα νέα δεδομένα σε αυτά τα μερικώς γεμάτα μπλοκ - που θα διαγράψουν τα υπάρχοντα δεδομένα. Αντί για μια απλή διαδικασία εγγραφής, η μονάδα στερεάς κατάστασης πρέπει να διαβάσει την τιμή του μπλοκ στην κρυφή μνήμη, να τροποποιήσει την τιμή με τα νέα δεδομένα και στη συνέχεια να την γράψει ξανά. Έχετε υπόψη ότι η εγγραφή ενός αρχείου πιθανότατα συνεπάγεται γραφή σε πολλά μπλοκ, οπότε αυτό μπορεί να εισαγάγει ένα σημαντικό ποσό πρόσθετης καθυστέρησης.
Το TRIM δεν ενοποιεί τα μερικώς συμπληρωμένα μπλοκ
Εάν γεμίσετε μια μονάδα δίσκου με χωρητικότητα ή κοντά σε χωρητικότητα, είναι πιθανό ότι θα καταλήξετε με πολλά μερικά γεμάτα μπλοκ αφού διαγράψετε αρχεία. Η εντολή TRIM κατευθύνει απλώς μια μονάδα SSD για να καταργήσει δεδομένα αρχείου όταν διαγραφεί το αρχείο. Δεν αναγκάζει τη μονάδα δίσκου να κάνει οποιαδήποτε λειτουργία καθαρισμού.
Με άλλα λόγια, γεμίστε μια μονάδα SSD στην χωρητικότητα πριν διαγράψετε τα αρχεία και πιθανότατα να καταλήξετε με πολλά μερικά γεμάτα μπλοκ. Η μονάδα δίσκου δεν θα βγει από το δρόμο της για να εδραιώσει αυτά τα μερικώς γεμάτα μπλοκ σε πλήρη μπλοκ, απελευθερώνοντας κενά τεμάχια. Ο δίσκος θα εξακολουθεί να είναι γεμάτος από μερικώς γεμάτα μπλοκ και η απόδοση εγγραφής θα υποβαθμιστεί.
Εξόφληση και συλλογή σκουπιδιών
Για να αποφευχθεί η πλήρωση των στερεών καταστάσεων από τους καταναλωτές και η αποδυνάμωσή τους με σοβαρές υποβαθμισμένες επιδόσεις, οι κατασκευαστές SSD εξαντλούνται.
Οι μονάδες στερεάς κατάστασης των καταναλωτών συχνά αφήνουν στην άκρη περίπου το 7% της συνολικής αποθήκευσης flash και την καθιστούν μη διαθέσιμη στο χρήστη. Αυτό είναι γνωστό ως "overprovisioning" - πρόσθετο υλικό αποθήκευσης προστίθεται στη μονάδα δίσκου αλλά δεν είναι ορατό στον υπολογιστή ως διαθέσιμο αποθηκευτικό χώρο που μπορεί να χρησιμοποιήσει. Η εφεδρική περιοχή εξασφαλίζει ότι η μονάδα δίσκου δεν μπορεί ποτέ να γεμίσει πλήρως - θα υπάρχει πάντα κάποια πλεονάζουσα χωρητικότητα για να διατηρηθεί σταθερή η απόδοση εγγραφής.
Κάθε ελεγκτής μονάδας SSD έχει έναν αλγόριθμο αποκομιδής απορριμμάτων για να προσπαθήσει να μετριάσει αυτό το πρόβλημα. Όταν ο δίσκος γεμίσει, θα ψάξει για μερικά γεμάτα μπλοκ και θα αρχίσει να τα παγιδεύει, απελευθερώνοντας όσο το δυνατόν περισσότερα κενά μπλοκ. Οι διαφορετικές μονάδες SSD εκτελούν αυτές τις λειτουργίες σε διαφορετικούς χρόνους και κατώτατα όρια - αυτό εξαρτάται από τον ελεγκτή της μονάδας.
Στοιχεία συγκριτικής αξιολόγησης
Η Anandtech πραγματοποίησε μια ποικιλία σημείων αναφοράς με διαφορετικούς δίσκους για να υποσκάψει τη σχέση μεταξύ της εφεδρικής περιοχής μιας μονάδας στερεάς κατάστασης και της συνέπειας των επιδόσεων της λειτουργίας εγγραφής. Όταν γεμίζουν μια κενή μονάδα δίσκου, βρήκαν υψηλή απόδοση εγγραφής πολύ νωρίς στη διαδικασία και σημαντική πτώση καθώς οι λειτουργίες εγγραφής συνέχιζαν να γεμίζουν το δίσκο.
Η παρακράτηση περισσότερων εφεδρικών χώρων στους δίσκους βοήθησε την απόδοση να παραμείνει συνεπής, καθώς εξασφάλισε ότι ο οδηγός πρέπει να έχει πάντα έτοιμα κενά τεμάχια.
Διαπίστωσαν ότι "οι ελάχιστες επιδόσεις βελτιώνονται ουσιαστικά όταν χτυπήσετε 25% εφεδρική περιοχή για αυτούς τους οδηγούς [καταναλωτές]". Η τελική τους σύσταση ήταν ότι "πρέπει να σχεδιάσετε να χρησιμοποιήσετε μόνο το 75% της χωρητικότητας [της μονάδας σας] εάν θέλετε μια καλή ισορροπία μεταξύ της συνέπειας και της ικανότητας των επιδόσεων. "
Εάν διαθέτετε μονάδα SSD, θα πρέπει να αποφύγετε τη χρήση περισσότερων από 75% της χωρητικότητάς του. Αγοράστε μια μεγαλύτερη μονάδα δίσκου με μεγαλύτερη χωρητικότητα από ό, τι χρειάζεστε και βεβαιωθείτε ότι έχετε πάντα συνεπή απόδοση εγγραφής. Ευτυχώς, τα SSDs γίνονται σταδιακά πολύ φθηνότερα, οπότε αυτό δεν είναι τόσο ακριβό όσο ήταν κάποτε.
Image Credit: Συλλογή μουσικής στα Wikimedia Commons, Simon Wüllhorst στο Flickr