Erfahren Sie, wie viel CPU oder Arbeitsspeicher ein einzelner Prozess oder systemweit verbraucht.
Als Systemadministrator müssen Sie sich häufig mit einem Vorfall befassen, bei dem die Anwendung aufgrund einer hohen CPU-/Speicher-/Netzwerkauslastung langsam ist oder nicht reagiert. Wenn der Server nur einen Prozess hostet, ist es einfach herauszufinden, wann der Prozess alle Ressourcen verbraucht. Stellen Sie sich jedoch einen gemeinsam genutzten Server vor, auf dem mehrere Dienste ausgeführt werden, und Sie müssen herausfinden, welcher alle Ressourcen verbraucht.
Es gibt viele Überwachungssoftware, die dies standardmäßig tun. Aber wenn Sie keine haben oder nach einer befehlsbasierten Lösung suchen, dann sind Sie hier richtig. Sie sind alle KOSTENLOS!
Inhaltsverzeichnis
oben
Möglicherweise möchten Sie zunächst in top oder htop result nachsehen, um die Prozessübersicht anzuzeigen.
Wie Sie unten sehen können, gibt es eine hervorragende Vorstellung davon, was alle Prozesse verwenden. Wenn Sie sich den ersten ansehen, nimmt MySQL 11,9 % der CPU und 2,5 % der CPU ein.
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
Die Spitze ist auf fast allen Linux-Distributionen installiert.
Sobald Sie den Verdächtigen identifiziert haben, möchten Sie sich vielleicht auf diesen Prozess konzentrieren, anstatt auf alles, was Sie oben gesehen haben. Sie können immer noch den Befehl top verwenden, aber mit einigen Argumenten.
Angenommen, Sie kennen die Prozess-ID (PID); Sie können den folgenden Befehl verwenden.
oben -p $PID
Unten ein Beispiel für 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
Sie können auch grep mit top verwenden. Unten ein Beispiel für die Überprüfung der Docker-Nutzung.
[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
Ähnlich wie oben, aber mit mehr Informationen. Wie Sie können, hat es die Befehlsspalte, die praktisch ist, um den Prozesspfad zu identifizieren. Und bunt ist es auch.
htop wird möglicherweise nicht standardmäßig installiert, aber Sie können dies jederzeit wie folgt tun.
Installieren Sie htop auf Ubuntu
apt-get install htop
Installieren Sie htop auf CentOS/RHEL 8.x
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm dnf update dnf install htop
Blicke
Wie der Name schon sagt, erhalten Sie eine Ansicht der Systemauslastung auf einem einzigen Bildschirm. Laufende Prozesse werden nach ihrer CPU-Auslastung sortiert.
Sie können Blicke unter CentOS 8 mit DNF wie folgt installieren.
dnf install glances
für CentOS7 können Sie YUM verwenden
yum install glances
oben auf
Ähnlich wie oben aufgeführt, aber mit einer brillanten Funktion, um die Ausgabe in einer Datei aufzuzeichnen, damit Sie sie später anzeigen können. Stellen Sie sich vor, es gibt ein Muster, bei dem ein Problem zu einem bestimmten Zeitfenster auftritt. Sie können planen, die Ausgabe über crontab oder andere in eine Datei zu schreiben, und später können Sie sie wiedergeben.
So zeichnen Sie die Ausgabe in einer Datei auf:
atop -w filename
und zur Wiedergabe:
atop -r filename
Es unterstützt mehrere Argumente wie Intervall, Samples usw. und ich würde dringend empfehlen, einen Blick auf die Manpage zu werfen.
Wenn Sie nur an Echtzeit-Fehlerbehebung interessiert sind, führen Sie einfach oben aus und Sie sollten wie unten sehen.
Sie können oben wie unten installieren.
dnf install atop
p.s
Lassen Sie uns jetzt den ps-Befehl überprüfen.
Sie können den Befehl ps mit PID verwenden, um ihre CPU- und Speicherauslastung auszudrucken.
ps -p $PID -o %cpu,%mem
Die Ausgabe sollte so aussehen.
[email protected]:~# ps -p 1048 -o %cpu,%mem %CPU %MEM 0.2 3.0 [email protected]:~#
nmon
Interaktives Befehlszeilen-Überwachungstool für CPU-, Speicher-, Festplatten-, Netzwerk-, NFS- und virtuelle Speicherauslastung. Um den obersten Prozess (nach Auslastung) anzuzeigen, können Sie nmon ausführen und die Taste t drücken.
Sie können nmon wie folgt installieren.
dnf install nmon
Monit
Monit ist eine webbasierte und befehlszeilenfähige Open-Source-Lösung zur Überwachung von Serverressourcen, Daemons, Dateien, Verzeichnissen, Dateisystemen usw.
Monit hat auch ein cooles Widget bekommen.
Seine leichte Überwachungssoftware. Aber hier gibt es noch mehr zu entdecken.
Monitorix
Ein leichtes Open-Source-Dienstprogramm zur Überwachung des Linux-Servers. Monitorix hat eingebautes HTTP, damit Sie die Auslastung und andere Dinge im Web überprüfen können. Einige der anderen Nutzungsberichte beinhalten:
- Kern/Temperatur
- Dateisystem und I/O
- Netzwerktraffic
- Apache/Mail/FTP/Nginx
- MySQL/Varnish/Memcached
Monitorix bietet auch eine Warnkonfiguration, damit Sie benachrichtigt werden, wenn etwas nicht stimmt. Es ist eine gute Wahl, wenn Sie Cloud-basierte Server verwalten und nach einer proaktiven Überwachungslösung suchen.
Nettodaten
Nettodaten ist eine Echtzeit-Leistungsüberwachung für Systemressourcen, Anwendungen, Webserver, Datenbanken, DNS, Mail, Hardwaresensoren und vieles mehr. Es ist Open Source und der Einstieg ist einfach. Alle Daten werden gesammelt, gespeichert und gestreamt, damit Sie sie interaktiv visualisieren können. Die Daten werden jede Sekunde erfasst, damit Sie nichts verpassen.
Geliebt von vielen Branchenführern.
Worauf Sie also warten, versuchen Sie, die Kontrolle über Ihre Linux-Server zu übernehmen.
oben
oben ist ein praktischer, vollständig interaktiver Ressourcenmonitor mit einer schönen Benutzeroberfläche, die Ihnen bei der Verwaltung der Linux-Server hilft.
Sie können die Prozesse einfach in einer Baumansicht visualisieren, aus der Prozessliste filtern und die Ressourcenfresser verwalten. btop wird auch mit einem Diagramm mit automatischer Skalierung geliefert, das die Netzwerknutzung anzeigt.
Außerdem können Sie auch die Festplattengeschwindigkeit überprüfen und die E/A-Aktivität abschließen.
Es gibt noch mehr, was Sie unter Linux, FreeBSD und macOS erleben können.
Fazit
Ich hoffe, die oben genannten Tools helfen Ihnen dabei, die Serverauslastung in Echtzeit zu visualisieren, damit Sie die erforderlichen Maßnahmen ergreifen können. Wenn Sie gerade als Systemadministrator angefangen haben und nach praktischen Schulungen suchen, dann schauen Sie sich das an Udemy-Kurs.