Πώς να εκκαθαρίσετε την προσωρινή μνήμη RAM, την προσωρινή μνήμη και την εναλλαγή στο Linux


Όπως κάθε άλλο λειτουργικό σύστημα, το GNU/Linux έχει εφαρμόσει αποτελεσματικά τη διαχείριση μνήμης και ακόμη περισσότερο. Ωστόσο, εάν κάποια διαδικασία κατατρώει τη μνήμη σας και θέλετε να τη διαγράψετε, το Linux παρέχει έναν τρόπο για να ξεπλύνετε ή να καθαρίσετε την προσωρινή μνήμη RAM.

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

Κατανόηση της μνήμης RAM Cache, Buffer και Swap Space

Ας εξερευνήσουμε την κρυφή μνήμη RAM, την προσωρινή μνήμη και ανταλλάξουμε χώρο σε ένα σύστημα Linux.

Μνήμη RAM Cache

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

Ρυθμιστής

Όπως και η cache, το buffer διατηρεί δεδομένα προσωρινά αλλά διαφέρει ως προς τον σκοπό του. Τα buffer αποθηκεύουν δεδομένα που μεταφέρονται μεταξύ στοιχείων όπως η CPU και ο σκληρός δίσκος, διευκολύνοντας την ομαλή επικοινωνία. Ωστόσο, η περίσσεια δεδομένων προσωρινής αποθήκευσης μπορεί να εμποδίσει την ταχύτητα του συστήματος.

Ανταλλαγή χώρου

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

Εκκαθάριση προσωρινής μνήμης, προσωρινής μνήμης και εναλλαγής χώρου στο Linux

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

Πώς να διαγράψετε την προσωρινή μνήμη RAM στο Linux;

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

Εκκαθάριση της προσωρινής μνήμης σελίδας

1. Για να διαγράψετε μόνο την PageCache, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή, η οποία θα διαγράψει συγκεκριμένα την PageCache, βοηθώντας στην απελευθέρωση πόρων μνήμης.

sudo sync; echo 1 > /proc/sys/vm/drop_caches

Εκκαθάριση Οδοντοστοιχιών και Ινόδων

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

sudo sync; echo 2 > /proc/sys/vm/drop_caches

Εκκαθάριση PageCache, Dentries και Inodes

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

sudo sync; echo 3 > /proc/sys/vm/drop_caches 

Ακολουθεί μια εξήγηση για κάθε μέρος της παραπάνω εντολής:

  • Το sudo χρησιμοποιείται για την εκτέλεση της εντολής ως υπερχρήστης.
  • Το sync θα ξεπλύνει την προσωρινή μνήμη του συστήματος αρχείων.
  • Ο “; Το ερωτηματικό " χρησιμοποιείται για τον διαχωρισμό πολλαπλών εντολών σε μία γραμμή.
  • Η εντολή echo 3 > /proc/sys/vm/drop_caches χρησιμοποιείται για την απόρριψη της προσωρινής μνήμης της σελίδας, μιας προσωρινής περιοχής αποθήκευσης για αρχεία στα οποία προσπελάσατε πρόσφατα.

Σημείωση: Το αρχείο drop_caches ελέγχει ποιος τύπος αποθηκευμένων δεδομένων θα πρέπει να διαγραφεί και οι τιμές είναι οι εξής:

  • 1 – Διαγράφει μόνο την προσωρινή μνήμη της σελίδας.
  • 2 – Καθαρίζει οδοντοστοιχίες και ινωδίες.
  • 3 – Εκκαθαρίζει την προσωρινή μνήμη σελίδας, τις οδοντοστοιχίες και τα ινώδη.

Όπως αναφέρεται στην τεκμηρίωση του πυρήνα, η εγγραφή στο drop_caches θα καθαρίσει τη μνήμη cache χωρίς να σκοτώσει καμία εφαρμογή/υπηρεσία, η εντολή echo κάνει τη δουλειά της εγγραφής στο αρχείο.

Εάν πρέπει να καθαρίσετε την προσωρινή μνήμη του δίσκου, η πρώτη εντολή είναι ασφαλέστερη στην επιχείρηση και την παραγωγή ως “...echo 1 > …. " θα διαγράψει μόνο την PageCache.

Δεν συνιστάται η χρήση της τρίτης επιλογής πάνω από “...echo 3 > ” στην παραγωγή μέχρι να μάθετε τι κάνετε, καθώς θα διαγράψει την pagecache, οδοντοστοιχίες, και ινόδες.

Πώς να καθαρίσετε το χώρο ανταλλαγής στο Linux;

Για να εκκαθαρίσετε χώρο εναλλαγής, μπορείτε να χρησιμοποιήσετε την εντολή swapoff με την επιλογή -a, η οποία θα απενεργοποιήσει όλα τα διαμερίσματα ανταλλαγής.

sudo swapoff -a

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

sudo swapon -a

Συνιστάται η δωρεάν προσωρινή μνήμη, η προσωρινή μνήμη και η εναλλαγή στο Linux;

Γενικά, δεν είναι καλή ιδέα να ελευθερώσετε με μη αυτόματο τρόπο Buffer και Cache στο Linux που μπορεί να χρησιμοποιούνται από τον πυρήνα του Linux, ο οποίος έχει σχεδιαστεί για να διαχειρίζεται αποτελεσματικά αυτούς τους πόρους, και η μη αυτόματη εκκαθάρισή τους μπορεί να διαταράξει την απόδοση του συστήματος.

Ωστόσο, μπορεί να υπάρχουν σπάνιες περιπτώσεις όπου πρέπει να διαγράψετε το Buffer και την Cache, όπως εάν αντιμετωπίζετε έντονη πίεση στη μνήμη και δεν μπορείτε να ελευθερώσετε μνήμη με άλλα μέσα. Σε αυτές τις περιπτώσεις, θα πρέπει να προχωρήσετε με προσοχή και να γνωρίζετε τις πιθανές επιπτώσεις στην απόδοση.

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

Αυτοματοποίηση βελτιστοποίησης μνήμης

Για να αυτοματοποιήσετε τη διαδικασία και να καθαρίσετε τακτικά τη μνήμη, μπορείτε να ρυθμίσετε μια εργασία cron για να εκτελούνται οι εντολές σε καθορισμένα χρονικά διαστήματα.

Ανοίξτε τη διαμόρφωση crontab.

crontab -e

Προσθέστε τις ακόλουθες γραμμές για να διαγράψετε την προσωρινή μνήμη, την προσωρινή μνήμη και την εναλλαγή χώρου καθημερινά τα μεσάνυχτα:

0 0 * * * sudo sync; echo 3 > /proc/sys/vm/drop_caches
0 0 * * * sudo echo 1 > /proc/sys/vm/drop_caches
0 0 * * * sudo sync; echo 2 > /proc/sys/vm/drop_caches
0 0 * * * sudo swapoff -a && sudo swapon -a

Για πρόσθετες πληροφορίες σχετικά με τον προγραμματισμό μιας εργασίας με τη cron, ίσως θελήσετε να ανατρέξετε στο άρθρο μας με τίτλο «11 Εργασίες Προγραμματισμού Cron».

Συνιστάται η εκκαθάριση της προσωρινής μνήμης RAM σε έναν διακομιστή παραγωγής Linux;

Οχι, δεν είναι. Σκεφτείτε ένα σενάριο όπου έχετε προγραμματίσει ένα σενάριο για την εκκαθάριση της προσωρινής μνήμης RAM κάθε μέρα στις 2 π.μ. Κάθε μέρα στις 2 π.μ., το σενάριο εκτελείται, ξεπλένοντας την κρυφή μνήμη RAM. Ωστόσο, μια μέρα, απροσδόκητα μεγάλοι αριθμοί χρηστών είναι online στον ιστότοπό σας, θέτοντας σημαντική ζήτηση στους πόρους του διακομιστή σας.

Ταυτόχρονα, το προγραμματισμένο σενάριο εκτελείται και διαγράφει τα πάντα στη μνήμη cache. Τώρα, όλοι οι χρήστες ανακτούν δεδομένα από το δίσκο, οδηγώντας ενδεχομένως σε κατάρρευση διακομιστή και καταστροφή της βάσης δεδομένων. Επομένως, είναι απαραίτητο να διαγράψετε τη μνήμη RAM μόνο όταν είναι απαραίτητο, έχοντας υπόψη τις ενέργειές σας. Διαφορετικά, κινδυνεύετε να γίνετε διαχειριστής συστήματος Cargo Cult.

συμπέρασμα

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

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