Μάθετε πόσο μια μεμονωμένη διεργασία ή σε όλο το σύστημα καταναλώνει CPU ή μνήμη.
Ως sysadmin, συχνά πρέπει να αντιμετωπίσετε ένα περιστατικό όπου η εφαρμογή είναι αργή ή δεν ανταποκρίνεται λόγω υψηλής χρήσης CPU/μνήμης/δικτύου. Εάν ο διακομιστής φιλοξενεί μόνο μία διαδικασία, τότε είναι εύκολο να μάθετε πότε η διαδικασία καταναλώνει όλους τους πόρους. Ωστόσο, φανταστείτε έναν κοινόχρηστο διακομιστή όπου εκτελούνται πολλές υπηρεσίες και πρέπει να βρείτε ποιος τρώει όλους τους πόρους.
Υπάρχουν πολλά λογισμικά παρακολούθησης που το κάνουν αυτό από το κουτί. Αλλά αν δεν έχετε ένα ή ψάχνετε για μια λύση που βασίζεται σε εντολές, τότε ορίστε. Είναι όλα ΔΩΡΕΑΝ!
Πίνακας περιεχομένων
μπλουζα
Μπορεί να θέλετε να ξεκινήσετε κοιτάζοντας το κορυφαίο ή το htop αποτέλεσμα για να δείτε την επισκόπηση των διαδικασιών.
Όπως μπορείτε να δείτε παρακάτω, δίνει μια εξαιρετική ιδέα για το τι χρησιμοποιούν όλες οι διαδικασίες. Αν κοιτάξετε το πρώτο, που είναι ότι η MySQL παίρνει το 11,9% της CPU και το 2,5% της CPU.
top - 11:57:33 up 0 min, 1 user, load average: 3.69, 0.96, 0.32 Tasks: 165 total, 2 running, 113 sleeping, 0 stopped, 0 zombie %Cpu(s): 21.0 us, 5.5 sy, 0.0 ni, 70.5 id, 1.7 wa, 0.0 hi, 1.3 si, 0.0 st KiB Mem : 7637308 total, 5802888 free, 849512 used, 984908 buff/cache KiB Swap: 0 total, 0 free, 0 used. 6495648 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1986 netdata 20 0 1738856 191560 22948 S 11.6 2.5 0:02.30 mysqld 3021 www-data 20 0 255288 78420 55484 S 6.6 1.0 0:01.55 php-fpm 3138 www-data 20 0 253096 79780 59228 S 6.6 1.0 0:00.92 php-fpm 3153 www-data 20 0 255116 79088 56472 S 5.0 1.0 0:00.70 php-fpm 3037 www-data 20 0 257200 81088 56216 S 4.3 1.1 0:01.50 php-fpm 3048 www-data 20 0 257088 78740 55380 S 4.3 1.0 0:01.46 php-fpm 3054 www-data 20 0 254160 72168 52108 S 3.7 0.9 0:01.32 php-fpm 3135 www-data 20 0 255084 75912 54836 S 3.7 1.0 0:00.91 php-fpm 3051 www-data 20 0 254096 73804 51964 S 3.0 1.0 0:01.38 php-fpm 2962 www-data 20 0 45280 7284 3488 R 2.0 0.1 0:00.22 openresty 1062 netdata 20 0 338748 76144 6720 S 1.0 1.0 0:01.31 netdata 1702 netdata 20 0 21852 4232 2352 S 1.0 0.1 0:00.34 apps.plugin 1729 netdata 20 0 18636 3280 2764 S 0.7 0.0 0:00.05 bash 1980 netdata 20 0 62008 12896 5796 S 0.7 0.2 0:00.14 redis-server 11 root 20 0 0 0 0 I 0.3 0.0 0:00.14 rcu_sched 1007 root 20 0 1347424 74524 38872 S 0.3 1.0 0:00.92 dockerd 1857 root 20 0 10600 5564 4276 S 0.3 0.1 0:00.03 containerd-shim 2045 root 20 0 9948 6028 5016 S 0.3 0.1 0:00.14 forego 2934 root 20 0 13616 8760 5928 S 0.3 0.1 0:00.07 docker-gen 2966 systemd+ 20 0 25784 7924 2340 S 0.3 0.1 0:00.06 nginx
Η κορυφή είναι εγκατεστημένη σε όλες σχεδόν τις διανομές Linux.
Μόλις εντοπίσετε τον ύποπτο, τότε μπορεί να θέλετε να εστιάσετε σε αυτή τη διαδικασία αντί σε όλα όσα είδατε παραπάνω. Μπορείτε ακόμα να χρησιμοποιήσετε την κορυφαία εντολή αλλά με κάποιο όρισμα.
Ας υποθέσουμε ότι γνωρίζετε το αναγνωριστικό διαδικασίας (PID). μπορείτε να χρησιμοποιήσετε την παρακάτω εντολή.
top -p $PID
Παρακάτω ένα παράδειγμα top -p 3102
top - 11:59:56 up 3 min, 1 user, load average: 0.72, 0.70, 0.31 Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie %Cpu(s): 7.1 us, 2.9 sy, 0.0 ni, 89.1 id, 0.3 wa, 0.0 hi, 0.7 si, 0.0 st KiB Mem : 7637308 total, 5802024 free, 783672 used, 1051612 buff/cache KiB Swap: 0 total, 0 free, 0 used. 6555636 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3102 www-data 20 0 329500 82376 60640 S 0.0 1.1 0:03.35 php-fpm
Μπορείτε επίσης να χρησιμοποιήσετε το grep with top. Παρακάτω ένα παράδειγμα ελέγχου χρήσης Docker.
[email protected]:~# top | grep docker 1007 root 20 0 1347424 74524 38872 S 0.3 1.0 0:01.38 dockerd 2934 root 20 0 14676 9652 5928 S 0.3 0.1 0:00.54 docker-gen 1007 root 20 0 1347424 74524 38872 S 0.3 1.0 0:01.39 dockerd 1007 root 20 0 1347424 74524 38872 S 1.0 1.0 0:01.42 dockerd 2934 root 20 0 14740 9652 5928 S 0.3 0.1 0:00.55 docker-gen 2934 root 20 0 14740 9652 5928 S 0.3 0.1 0:00.56 docker-gen
htop
Παρόμοια με την κορυφή αλλά με περισσότερες πληροφορίες. Όπως μπορείτε, έλαβε τη στήλη εντολών, η οποία είναι χρήσιμη για τον προσδιορισμό της διαδρομής της διαδικασίας. Και επίσης είναι πολύχρωμο.
Το htop μπορεί να μην είναι εγκατεστημένο από προεπιλογή, αλλά μπορείτε πάντα να το κάνετε όπως παρακάτω.
Εγκαταστήστε το htop στο Ubuntu
apt-get install htop
Εγκαταστήστε το htop σε CentOS/RHEL 8.x
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm dnf update dnf install htop
ματιές
Όπως λέει και το όνομα, λαμβάνετε μια προβολή χρήσης συστήματος σε μία οθόνη. Οι διεργασίες που εκτελούνται ταξινομούνται ανάλογα με τη χρήση της CPU.
Μπορείτε να εγκαταστήσετε Glances στο CentOS 8 χρησιμοποιώντας DNF όπως παρακάτω.
dnf install glances
για το CentOS7, μπορείτε να χρησιμοποιήσετε το YUM
yum install glances
κορυφή
Παρόμοιο με το παραπάνω, αλλά με εξαιρετική δυνατότητα εγγραφής της εξόδου σε ένα αρχείο, ώστε να μπορείτε να τα προβάλετε αργότερα. Φανταστείτε ότι υπάρχει ένα μοτίβο να αντιμετωπίζετε ένα πρόβλημα σε ένα συγκεκριμένο χρονικό παράθυρο. Μπορείτε να προγραμματίσετε την εγγραφή της εξόδου σε ένα αρχείο μέσω του crontab ή άλλου, και αργότερα μπορείτε να κάνετε αναπαραγωγή.
Για να καταγράψετε την έξοδο σε ένα αρχείο:
atop -w filename
και για αναπαραγωγή:
atop -r filename
Υποστηρίζει πολλαπλά ορίσματα όπως διάστημα, δείγματα κ.λπ. και θα συνιστούσα ανεπιφύλακτα να ρίξετε μια ματιά στη σελίδα man.
Εάν σας ενδιαφέρει απλώς η αντιμετώπιση προβλημάτων σε πραγματικό χρόνο, τότε απλώς εκτελέστε το από πάνω και θα δείτε όπως παρακάτω.
Μπορείτε να εγκαταστήσετε στο επάνω μέρος όπως παρακάτω.
dnf install atop
ΥΣΤΕΡΟΓΡΑΦΟ
Ας ελέγξουμε την εντολή ps τώρα.
Μπορείτε να χρησιμοποιήσετε την εντολή ps με το PID για να εκτυπώσετε τη χρήση της CPU και της μνήμης τους.
ps -p $PID -o %cpu,%mem
Η έξοδος πρέπει να μοιάζει με αυτό.
[email protected]:~# ps -p 1048 -o %cpu,%mem %CPU %MEM 0.2 3.0 [email protected]:~#
nmon
Διαδραστικό εργαλείο παρακολούθησης γραμμής εντολών για χρήση CPU, μνήμης, δίσκων, δικτύου, NFS και εικονικής μνήμης. Για να δείτε την κορυφαία διαδικασία (κατά χρήση), μπορείτε να εκτελέσετε nmon και να πατήσετε το κουμπί t.
Μπορείτε να εγκαταστήσετε το nmon όπως παρακάτω.
dnf install nmon
Monit
Monit είναι μια λύση ανοιχτού κώδικα βασισμένη στον ιστό και γραμμή εντολών για την παρακολούθηση πόρων διακομιστών, δαιμόνων, αρχείων, καταλόγων, συστημάτων αρχείων κ.λπ.
Η Monit απέκτησε επίσης ένα ωραίο widget.
Το ελαφρύ λογισμικό παρακολούθησης του. Όμως, υπάρχουν περισσότερα για εξερεύνηση εδώ.
Monitorix
Ένα ελαφρύ βοηθητικό πρόγραμμα ανοιχτού κώδικα για την παρακολούθηση του διακομιστή Linux. Monitorix έλαβε ενσωματωμένο HTTP ώστε να μπορείτε να ελέγχετε τη χρήση και άλλα πράγματα στον ιστό. Μερικές από τις άλλες αναφορές χρήσης περιλαμβάνουν:
- Πυρήνα/θερμοκρασία
- Σύστημα αρχείων και I/O
- Κυκλοφορία δικτύου
- Apache/Mail/FTP/Nginx
- MySQL/Varnish/Memcached
Το Monitorix προσφέρει επίσης διαμόρφωση ειδοποίησης, ώστε να μπορείτε να λαμβάνετε ειδοποιήσεις όταν τα πράγματα δεν είναι καλά. Θα είναι μια καλή επιλογή όταν διαχειρίζεστε διακομιστές που βασίζονται σε σύννεφο και αναζητάτε μια προληπτική λύση παρακολούθησης.
Netdata
Netdata είναι μια παρακολούθηση απόδοσης σε πραγματικό χρόνο για πόρους συστήματος, εφαρμογές, διακομιστές ιστού, βάσεις δεδομένων, DNS, αλληλογραφία, αισθητήρες υλικού και πολλά άλλα. Είναι ανοιχτού κώδικα και είναι εύκολο να ξεκινήσετε. Όλα τα δεδομένα συλλέγονται, αποθηκεύονται και μεταδίδονται σε ροή για να τα οπτικοποιήσετε διαδραστικά. Τα δεδομένα συλλέγονται κάθε δευτερόλεπτο, ώστε να μην χάνετε ποτέ τίποτα.
Αγαπήθηκε από πολλούς ηγέτες του κλάδου.
Αυτό που περιμένετε λοιπόν, προσπαθήστε να πάρετε τον έλεγχο των διακομιστών σας Linux.
btop
btop είναι μια εύχρηστη οθόνη πόρων πλήρως διαδραστική με ένα όμορφο περιβάλλον χρήστη που σας βοηθά να διαχειρίζεστε τους διακομιστές Linux.
Μπορείτε εύκολα να οπτικοποιήσετε τις διεργασίες σε μια προβολή δέντρου, να φιλτράρετε από τη λίστα διεργασιών και να διαχειριστείτε τους πόρους. Το btop τροφοδοτείται επίσης με ένα γράφημα αυτόματης κλιμάκωσης που δείχνει τη χρήση του δικτύου.
Επιπλέον, μπορείτε επίσης να ελέγξετε την ταχύτητα του δίσκου και να ολοκληρώσετε τη δραστηριότητα I/O.
Υπάρχουν περισσότερα σε αυτό που μπορείτε να ζήσετε σε Linux, FreeBSD και macOS.
συμπέρασμα
Ελπίζω τα παραπάνω εργαλεία να σας βοηθήσουν να οπτικοποιήσετε τη χρήση του διακομιστή σε πραγματικό χρόνο, ώστε να μπορείτε να κάνετε τις απαραίτητες ενέργειες. Αν μόλις ξεκινήσατε ως διαχειριστής συστήματος και θέλετε να λάβετε πρακτική εκπαίδευση, τότε ρίξτε μια ματιά σε αυτό Μάθημα Udemy.