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

Υπάρχουν πολλά διαθέσιμα εργαλεία για την παρακολούθηση της χρήσης της μνήμης σε ένα σύστημα Linux, συμπεριλαμβανομένου του κορυφαίου, το οποίο συζητήσαμε. Το Smem είναι ένα άλλο εργαλείο που χρησιμοποιείται για την παρακολούθηση της χρήσης της μνήμης. Εκτός από την εμφάνιση της χρήσης μνήμης των διαδικασιών στη γραμμή εντολών, η smem μπορεί επίσης να εμφανίσει μια χρωματισμένη κωδίκευση πίτας ή / και ένα διάγραμμα ράβδων. Με smem, μπορείτε εύκολα να απεικονίσετε τη χρήση μνήμης στο σύστημα Linux.

Εγκατάσταση

Στα συστήματα Debian και Ubuntu, το smem μπορεί να εγκατασταθεί από τις αποθήκες με την εντολή

 sudo apt-get install smem 

Ελέγξτε τη χρήση μνήμης

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

 smem 

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

RSS

Το RSS (Resident set size) είναι η συνολική μνήμη που διατηρείται στη μνήμη RAM για μια διαδικασία. Αυτό περιλαμβάνει τη μνήμη που κατανέμεται σε κοινές βιβλιοθήκες που χρησιμοποιούνται από τη διαδικασία, παρόλο που οι κοινές βιβλιοθήκες μπορούν να χρησιμοποιηθούν από πολλαπλές διεργασίες, ενώ φορτώνονται μόνο μία φορά στη μνήμη. Επομένως, το RSS δεν είναι ακριβής αναπαράσταση της μνήμης που χρησιμοποιείται από μια συγκεκριμένη διαδικασία.

PSS

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

USS

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

Η εκτέλεση του smem ως root δείχνει όλες τις διαδικασίες για όλους τους χρήστες του συστήματος.

 sudo smem 

Οπτικοποίηση χρήσης μνήμης

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

Για να προβάλετε ένα γράφημα γραμμών για τα PSS, USS και RSS των διαδικασιών του τρέχοντος χρήστη, εκτελέστε την ακόλουθη εντολή:

 smem -bar όνομα -c "pss uss rss" 

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

 smem -pie όνομα 

Για να δείτε ένα διάγραμμα πίτας RSS που φέρει το όνομα:

 smem -pie όνομα-s rss 

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