CH-J Server Managerδιαχείριση διακομιστή πάνω από SSH
Μενού
Όλοι οι οδηγοί και τα άρθρα →

Πώς να διαβάζετε τις ενδείξεις RAM, κρυφής μνήμης και swap σε διακομιστή Linux

Τι σημαίνουν οι στήλες του free, γιατί η υψηλή χρήση μνήμης συχνά είναι φυσιολογική και ποια σημάδια δείχνουν πραγματική έλλειψη μνήμης.

Διαβάστε το available, όχι το free

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

free -h
grep -E 'MemAvailable|Shmem:|SReclaimable' /proc/meminfo

Τι μπορεί και τι δεν μπορεί να αποδεσμευτεί από την κρυφή μνήμη

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

df -h -t tmpfs
sudo slabtop -o | head -15

Η χρήση swap δεν είναι αυτομάτως πρόβλημα

Ένας διακομιστής μπορεί να διατηρεί σπάνια χρησιμοποιούμενες σελίδες στο swap για εβδομάδες χωρίς αρνητικές συνέπειες. Το πρόβλημα είναι η συνεχής μετακίνηση. Παρακολουθήστε τις στήλες si και so στο vmstat: τιμές που παραμένουν πάνω από το μηδέν σημαίνουν ότι το σύστημα μεταφέρει ενεργά σελίδες από και προς το swap, ένδειξη πραγματικής έλλειψης μνήμης.

swapon --show
vmstat 1 5

Βρείτε τι χρησιμοποιεί τη μνήμη

Ταξινομήστε τις διεργασίες κατά τη μνήμη που παραμένει στη RAM. Το RSS μετρά τις σελίδες που μοιράζονται πολλές διεργασίες σε καθεμία από αυτές, επομένως οι τιμές πολλών διεργασιών δεν μπορούν απλώς να αθροιστούν. Εργαλεία με PSS, όπως το smem, δίνουν πιο αντιπροσωπευτικό άθροισμα, αν είναι εγκατεστημένα.

ps -eo pid,user,rss,comm --sort=-rss | head -15

Αναγνωρίστε μια πραγματική έλλειψη

Τα σημάδια είναι λίγη διαθέσιμη μνήμη, συνεχής μεταφορά από και προς το swap και διεργασίες που τερματίζονται από τον μηχανισμό out-of-memory killer. Ελέγξτε το αρχείο καταγραφής του πυρήνα. Μην εκτελείτε drop_caches για να φαίνονται καλύτερα οι αριθμοί: απλώς αναγκάζει τον διακομιστή να διαβάσει ξανά από τον δίσκο και δεν λύνει τίποτα.

sudo journalctl -k --no-pager | grep -iE 'out of memory|oom-kill'

Μνήμη στο CH-J Server Manager

Το System Monitor διαβάζει αυτές τις τιμές μέσω SSH. Στο Linux ορίζει το used ως MemTotal − MemFree − Buffers − Cached − SReclaimable και το available ως την εκτίμηση του πυρήνα. Η κοινόχρηστη μνήμη περιλαμβάνεται στο Cached και δεν μπορεί να αποδεσμευτεί, ενώ οι κατηγορίες στη ράβδο δεν επικαλύπτονται. Επειδή ο τύπος διαφέρει από ορισμένες εκδόσεις του free, οι αριθμοί μπορεί να μη συμφωνούν ακριβώς. Εμφανίζει επίσης το swap με το ιστορικό χρήσης του. Το ZFS ARC δεν αντιμετωπίζεται ξεχωριστά, οπότε σε συστήματα με ZFS υπολογίζεται ως χρησιμοποιημένη μνήμη.

Λεπτομερής τεκμηρίωση

man: free →

man: proc_meminfo →

Βιομετρική ξεκλείδωμα και ασφάλεια →