Διαβάστε το 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 υπολογίζεται ως χρησιμοποιημένη μνήμη.