Linux monitoring tools: Πόση μνήμη καταναλώνει κάθε process και εφαρμογή

dimitris | Παρ, 08/30/2013 - 02:19 | 5' | 3

Θέλετε να δείτε που καταναλώνεται η μνήμη RAM του υπολογιστή σας και ποια διεργασία ή εφαρμογή σας τρώει συστηματικά τους πόρους; Υπάρχουν διάφορες λύσεις είτε από το γραφικό περιβάλλον είτε από τη γραμμή εντολών (bash).

Γραφικό περιβάλλον

Στο KDE, αρκεί να πατήσετε Ctrl+Esc για να εμφανιστεί το System Activity, το οποίο δείχνει όλες τις εφαρμογές/processes που τρέχετε. Εκεί σορτάρετε με ότι θέλετε και φυσικά τη μνήμη (shared mem). Tip: Με δεξί κλικ > End Process ή με Del σκοτώνετε μια διεργασία

Αντίστοιχα στο Gnome/Unity υπάρχει το GNOME System Monitor, που δείχνει τα ίδια αλλά επιπλέον έχει γραφικές απεικονίσεις και για την κατανάλωση χώρου, μνήμης κοκ. Το τρέχετε με Alt+F2 και γράφετε gnome-system-monitor ή από το μενού System Tools > System Monitor. Και πάλι μπορείτε να ταξινομήσετε τις εφαρμογές που τρέχουν ανά κατανάλωση μνήμης (Memory), επεξεργαστή (%CPU) καθώς και να δειτε την κατάστασή και το processid τους. Στο πάνω μέρος εμφανίζεται το load average τα τελευταία λεπτά.

Τερματικό / Γραμμή εντολών

Τα παραπάνω γραφικά εργαλεία είναι μια χαρά, αλλά δεν συγκρίνονται μπροστά στο πανταχού παρών top. Το table of processes είναι πολύ περισσότερα από ένας απλός πίνακας των προγραμμάτων που τρέχουμε. Ανανεώνεται συνεχώς και μας δείχνει uptime, κατανάλωση μνήμης, cpu load, αριθμό διεργασιών, κατανάλωση swap και αναλυτική περιγραφή κάθε διεργασίας που τρέχουμε (μνήμη, %cpu, share, niceness, user, pid, πόση ώρα τρέχει και ποια εντολή είναι!). Και όλα αυτά sortable. Για παράδειγμα για να σορτάρετε τις διεργασίες που σας δείχνει ώστε να εμφανίζονται ανάλογα με την κατανάλωση μνήμης πατάτε το πλήκτρο Μ.

Μια άλλη χρήσιμη εντολή για την κονσόλα/τερματικό είναι η ps. Η process snapshot δείχνει ένα στιγμιότυπο μόνο των διεργασιών που τρέχετε. Παίζει να είναι η εντολή του Linux με τις περισσότερες επιλογές σε παραμέτρους. Μάλιστα αναγνωρίζει δύο διαφορετικά είδη επιλογών: επιλογές κατά Unix (που ξεκινούν πάντα με μια παύλα) και επιλογές κατά BSD (που δεν ξεκινούν με παύλα). Με συνδυασμό αυτών των παραμέτρων έχουμε τις παρακάτω εντολές που κάνουν σχεδόν το ίδιο πράγμα: μας δείχνουν τις 10 ή 20 διεργασίες που "τρώνε" την περισσότερη μνήμη στο σύστημα ή στον server μας:

Οι 10 πιο μνημοβόρες διεργασίες (Unix style):

ps -auxf | sort -nr -k 4 | head -10

To ίδιο με πιο λιτό output:

ps aux | awk '{print $2, $4, $11}' | sort -k2r | head -n 10

Ολες οι διεργασίες από την λιγότερη στην περισσότερο μνημοβόρα (Unix style):

ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS

Οι 20 πιο μνημοβόρες διεργασίες (BSD style):

ps aux | awk '{print $2, $4, $11}' | sort -k2rn | head -n 20

To ίδιο περίπου αλλά με πιο λιτό output (BSD style). Η πρώτη στήλη είναι το ποσοστό της μνήμης που καταναλώνει η εκάστοτε εφαρμογή:

ps axo %mem,comm,pid,euser | sort -nr | head -n 20

 

Φόρουμ
Δώσε αστέρια!

MO: 5 (ψήφοι: 1)

Σχόλια

manolos]

Δυο must-have: htop για διεργασιες και iftop για δικτυο.

+1

Θα προσθέσω και το mytop για να κλείσει το καρέ (top, htop, iotop, mytop).

Α, υπάρχει και το powertop αλλά αυτό είναι για διαχείριση ενέργειας...