GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Top 25 der besten Linux-Leistungsüberwachungs- und Debugging-Tools

Ich habe 25 Leistungsüberwachungs- und Debugging-Tools zusammengestellt, die hilfreich sein werden, wenn Sie in einer Linux-Umgebung arbeiten. Diese Liste ist in keiner Weise umfassend oder maßgeblich.

Diese Liste enthält jedoch genügend Tools, mit denen Sie herumspielen und dasjenige auswählen können, das für Ihr spezifisches Debugging- und Überwachungsszenario geeignet ist.

1. SAR

Mit dem Dienstprogramm sar können Sie zwei Dinge tun:1) Überwachen Sie die Echtzeitleistung des Systems (CPU, Speicher, E/A usw.) 2) Sammeln Sie fortlaufend Leistungsdaten im Hintergrund und führen Sie Analysen der zu identifizierenden historischen Daten durch Engpässe.

Sar ist Teil des sysstat-Pakets. Im Folgenden sind einige Dinge aufgeführt, die Sie mit dem Dienstprogramm sar tun können.

  • Kollektive CPU-Nutzung
  • Individuelle CPU-Statistiken
  • Speicher belegt und verfügbar
  • Auslagerungsspeicher belegt und verfügbar
  • Gesamt-E/A-Aktivitäten des Systems
  • E/A-Aktivitäten einzelner Geräte
  • Kontextwechselstatistiken
  • Warteschlange ausführen und Durchschnittsdaten laden
  • Netzwerkstatistiken
  • SAR-Daten von einem bestimmten Zeitpunkt melden
  • und vieles mehr...

Der folgende sar-Befehl zeigt die System-CPU-Statistiken 3 Mal (mit 1-Sekunden-Intervall) an.

Der folgende Befehl „sar -b“ meldet E/A-Statistiken. „1 3“ gibt an, dass sar -b alle 1 Sekunde für insgesamt 3 Mal ausgeführt wird.

$ sar -b 1 3
Linux 2.6.18-194.el5PAE (dev-db)        03/26/2011      _i686_  (8 CPU)

01:56:28 PM       tps      rtps      wtps   bread/s   bwrtn/s
01:56:29 PM    346.00    264.00     82.00   2208.00    768.00
01:56:30 PM    100.00     36.00     64.00    304.00    816.00
01:56:31 PM    282.83     32.32    250.51    258.59   2537.37
Average:       242.81    111.04    131.77    925.75   1369.90

Weitere SAR-Beispiele:So installieren/konfigurieren Sie Sar (sysstat) und 10 nützliche Beispiele für Sar-Befehle

2. Tcpdump

tcpdump ist ein Netzwerkpaketanalysator. Mit tcpdump können Sie die Pakete erfassen und auf Leistungsengpässe analysieren.

Das folgende tcpdump-Befehlsbeispiel zeigt erfasste Pakete in ASCII an.

$ tcpdump -A -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:34:50.913995 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 1457239478:1457239594(116) ack 1561461262 win 63652
E.....@.@..]..i...9...*.V...]...P....h....E...>{..U=...g.
......G..7\+KA....A...L.
14:34:51.423640 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 116:232(116) ack 1 win 63652
E.....@.@..\..i...9...*.V..*]...P....h....7......X..!....Im.S.g.u:*..O&....^#Ba...
E..(R.@.|.....9...i.*...]...V..*P..OWp........

Mit tcpdump können Sie Pakete basierend auf mehreren benutzerdefinierten Bedingungen erfassen. Erfassen Sie beispielsweise Pakete, die durch einen bestimmten Port fließen, erfassen Sie die TCP-Kommunikation zwischen zwei bestimmten Hosts, erfassen Sie Pakete, die zu einem bestimmten Protokolltyp gehören usw.

Weitere tcpdump-Beispiele:15 Beispiele für TCPDUMP-Befehle

3. Nagios

Nagios ist eine Open-Source-Überwachungslösung, die so ziemlich alles in Ihrer IT-Infrastruktur überwachen kann. Wenn beispielsweise ein Server ausfällt, kann er eine Benachrichtigung an Ihr Sysadmin-Team senden, wenn eine Datenbank ausfällt, kann er Ihr DBA-Team ausrufen, wenn ein Webserver ausfällt, kann er das entsprechende Team benachrichtigen.

Sie können auch Warnungen und kritische Schwellenwerte für verschiedene Dienste festlegen, um das Problem proaktiv anzugehen. Beispielsweise kann es das Sysadmin-Team benachrichtigen, wenn eine Festplattenpartition zu 80 % voll ist, was dem Sysadmin-Team genügend Zeit gibt, mehr Speicherplatz hinzuzufügen, bevor das Problem kritisch wird.

Nagios hat auch eine sehr gute Benutzeroberfläche, von der aus Sie den Zustand Ihrer gesamten IT-Infrastruktur überwachen können.

Das Folgende sind einige der Dinge, die Sie mit Nagios überwachen können:

  • Beliebige Hardware (Server, Switches, Router usw.)
  • Linux-Server und Windows-Server
  • Datenbanken (Oracle, MySQL, PostgreSQL usw.)
  • Verschiedene Dienste, die auf Ihrem Betriebssystem ausgeführt werden (Sendmail, nis, nfs, ldap usw.)
  • Webserver
  • Ihre benutzerdefinierte Anwendung
  • usw.

Weitere Nagios-Beispiele:So installieren und konfigurieren Sie Nagios, überwachen entfernte Windows-Rechner und überwachen entfernte Linux-Server.

4. Iostat

iostat meldet CPU-, Festplatten-E/A- und NFS-Statistiken. Im Folgenden finden Sie einige Beispiele für iostat-Befehle.

Iostat zeigt ohne Argumente Informationen über die CPU-Auslastung und E/A-Statistiken über alle Partitionen auf dem System an, wie unten gezeigt.

$ iostat
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.68    0.00    0.52    2.03    0.00   91.76

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             194.72      1096.66      1598.70 2719068704 3963827344
sda1            178.20       773.45      1329.09 1917686794 3295354888
sda2             16.51       323.19       269.61  801326686  668472456
sdb             371.31       945.97      1073.33 2345452365 2661206408
sdb1            371.31       945.95      1073.33 2345396901 2661206408
sdc             408.03       207.05       972.42  513364213 2411023092
sdc1            408.03       207.03       972.42  513308749 2411023092

Standardmäßig zeigt iostat E/A-Daten für alle im System verfügbaren Festplatten an. Um Statistiken für ein bestimmtes Gerät anzuzeigen (z. B. /dev/sda), verwenden Sie die Option -p wie unten gezeigt.

$ iostat -p sda
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.68    0.00    0.52    2.03    0.00   91.76

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             194.69      1096.51      1598.48 2719069928 3963829584
sda2            336.38        27.17        54.00   67365064  133905080
sda1            821.89         0.69       243.53    1720833  603892838

5. Mpstat

mpstat meldet Prozessorstatistiken. Im Folgenden finden Sie einige Beispiele für mpstat-Befehle.

Option -A zeigt alle Informationen an, die mit dem Befehl mpstat angezeigt werden können, wie unten gezeigt. Dies entspricht wirklich dem Befehl „mpstat -I ALL -u -P ALL“.

$ mpstat -A
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011      _x86_64_        (4 CPU)

10:26:34 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
10:26:34 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.99
10:26:34 PM    0    0.01    0.00    0.01    0.01    0.00    0.00    0.00    0.00   99.98
10:26:34 PM    1    0.00    0.00    0.01    0.00    0.00    0.00    0.00    0.00   99.98
10:26:34 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
10:26:34 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

10:26:34 PM  CPU    intr/s
10:26:34 PM  all     36.51
10:26:34 PM    0      0.00
10:26:34 PM    1      0.00
10:26:34 PM    2      0.04
10:26:34 PM    3      0.00

10:26:34 PM  CPU     0/s     1/s     8/s     9/s    12/s    14/s    15/s    16/s    19/s    20/s    21/s    33/s   NMI/s   LOC/s   SPU/s   PMI/s   PND/s   RES/s   CAL/s   TLB/s   TRM/s   THR/s   MCE/s   MCP/s   ERR/s   MIS/s
10:26:34 PM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    7.47    0.00    0.00    0.00    0.00    0.02    0.00    0.00    0.00    0.00    0.00    0.00    0.00
10:26:34 PM    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    4.90    0.00    0.00    0.00    0.00    0.03    0.00    0.00    0.00    0.00    0.00    0.00    0.00
10:26:34 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.04    0.00    0.00    0.00    0.00    0.00    3.32    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
10:26:34 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.

mpstat Option -P ALL, zeigt alle einzelnen CPUs (oder Kerne) zusammen mit ihren Statistiken wie unten gezeigt an.

$ mpstat -P ALL
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011      _x86_64_        (4 CPU)

10:28:04 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
10:28:04 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.99
10:28:04 PM    0    0.01    0.00    0.01    0.01    0.00    0.00    0.00    0.00   99.98
10:28:04 PM    1    0.00    0.00    0.01    0.00    0.00    0.00    0.00    0.00   99.98
10:28:04 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
10:28:04 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

6. VMstat

vmstat meldet Statistiken zum virtuellen Speicher. Im Folgenden finden Sie einige vmstat-Befehlsbeispiele.

vmstat zeigt standardmäßig die Speichernutzung (einschließlich Swap) wie unten gezeigt an.

$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0 305416 260688  29160 2356920    2    2     4     1    0    0  6  1 92  2  0

To execute vmstat every 2 seconds for 10 times, do the following. After executing 10 times, it will stop automatically.
$ vmstat 2 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 537144 182736 6789320    0    0     0     0    1    1  0  0 100  0  0
 0  0      0 537004 182736 6789320    0    0     0     0   50   32  0  0 100  0  0
..

iostat und vmstat sind Teil des Dienstprogramms sar. Sie sollten das sysstat-Paket installieren, damit iostat und vmstat funktionieren.

Weitere Beispiele:24 iostat-, vmstat- und mpstat-Befehlsbeispiele

7. PS-Befehl

Ein Prozess ist eine laufende Instanz eines Programms. Linux ist ein Multitasking-Betriebssystem, was bedeutet, dass mehr als ein Prozess gleichzeitig aktiv sein kann. Verwenden Sie den Befehl ps, um herauszufinden, welche Prozesse auf Ihrem System ausgeführt werden.

ps-Befehl gibt Ihnen auch viele zusätzliche Informationen über den laufenden Prozess, die Ihnen helfen werden, Leistungsengpässe auf Ihrem System zu identifizieren.

Im Folgenden finden Sie einige Beispiele für ps-Befehle.

Verwenden Sie die Option -u, um den Prozess anzuzeigen, der zu einem bestimmten Benutzernamen gehört. Wenn Sie mehrere Benutzernamen haben, trennen Sie diese durch ein Komma. Das folgende Beispiel zeigt alle Prozesse, die dem Benutzer wwwrun oder postfix.

gehören
$ ps -f -u wwwrun,postfix
UID        PID  PPID  C STIME TTY          TIME CMD
postfix   7457  7435  0 Mar09 ?        00:00:00 qmgr -l -t fifo -u
wwwrun    7495  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7496  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7497  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7498  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun    7499  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   10078  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun   10082  7491  0 Mar09 ?        00:00:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
postfix  15677  7435  0 22:23 ?        00:00:00 pickup -l -t fifo -u

Das folgende Beispiel zeigt die Prozess-ID und Befehle in einer Hierarchie. –forest ist ein Argument für den Befehl ps, der die ASCII-Art des Prozessbaums anzeigt. Anhand dieses Baums können wir den Elternprozess und die Kindprozesse, die rekursiv geforkt wurden, identifizieren.

$ ps -e -o pid,args --forest
  468  \_ sshd: root@pts/7
  514  |   \_ -bash
17484  \_ sshd: root@pts/11
17513  |   \_ -bash
24004  |       \_ vi ./790310__11117/journal
15513  \_ sshd: root@pts/1
15522  |   \_ -bash
 4280  \_ sshd: root@pts/5
 4302  |   \_ -bash

Weitere ps-Beispiele:7 praktische Beispiele für PS-Befehle zur Prozessüberwachung

8. Kostenlos

Der Befehl Free zeigt Informationen über den physischen (RAM) und Swap-Speicher Ihres Systems an.

Im folgenden Beispiel beträgt der physische Gesamtspeicher auf diesem System 1 GB. Die unten angezeigten Werte sind in KB angegeben.

# free
       total   used    free   shared  buffers  cached
Mem: 1034624   1006696 27928  0       174136   615892
-/+ buffers/cache:     216668      817956
Swap:    2031608       0    2031608

Das folgende Beispiel zeigt den Gesamtspeicher Ihres Systems einschließlich RAM und Swap.

Im folgenden Befehl:

  • Option m zeigt die Werte in MB an
  • Option t zeigt die „Gesamt“-Zeile an, die die Summe der physikalischen und Auslagerungsspeicherwerte ist
  • Option o ist, die Buffer/Cache-Zeile aus dem obigen Beispiel auszublenden.
# free -mto
                  total       used      free     shared    buffers     cached
Mem:          1010        983         27              0         170           601
Swap:          1983            0    1983
Total:          2994        983     2011

9. OBEN

Der oberste Befehl zeigt alle laufenden Prozesse im System an, die nach bestimmten Spalten geordnet sind. Dies zeigt die Informationen in Echtzeit an.

Sie können einen Prozess beenden, ohne ihn von oben zu verlassen. Sobald Sie einen Prozess gefunden haben, der beendet werden muss, drücken Sie „k“, um nach der Prozess-ID zu fragen und ein Signal zum Senden zu senden. Wenn Sie die Berechtigung haben, diese bestimmte PID zu beenden, wird sie erfolgreich beendet.

PID to kill: 1309
Kill PID 1309 with signal [15]:
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1309 geek   23   0 2483m 1.7g  27m S    0 21.8  45:31.32 gagent
 1882 geek   25   0 2485m 1.7g  26m S    0 21.7  22:38.97 gagent
 5136 root    16   0 38040  14m 9836 S    0  0.2   0:00.39 nautilus

Verwenden Sie top -u, um einen bestimmten Benutzerprozess nur in der obersten Befehlsausgabe anzuzeigen.

$ top -u geek

Während der Unix-Befehl top ausgeführt wird, drücken Sie u, wodurch Sie nach dem Benutzernamen gefragt werden, wie unten gezeigt.

Which user (blank for all): geek
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1309 geek   23   0 2483m 1.7g  27m S    0 21.8  45:31.32 gagent
 1882 geek   25   0 2485m 1.7g  26m S    0 21.7  22:38.97 gagent

Weitere Top-Beispiele:15 praktische Linux-Top-Befehlsbeispiele

10. Pmap

Der Befehl pmap zeigt die Speicherzuordnung eines bestimmten Prozesses an. Sie müssen die PID als Argument an den pmap-Befehl übergeben.

Das folgende Beispiel zeigt die Speicherzuordnung der aktuellen Bash-Shell. In diesem Beispiel ist 5732 die PID der Bash-Shell.

$ pmap 5732
5732:   -bash
00393000    104K r-x--  /lib/ld-2.5.so
003b1000   1272K r-x--  /lib/libc-2.5.so
00520000      8K r-x--  /lib/libdl-2.5.so
0053f000     12K r-x--  /lib/libtermcap.so.2.0.8
0084d000     76K r-x--  /lib/libnsl-2.5.so
00c57000     32K r-x--  /lib/libnss_nis-2.5.so
00c8d000     36K r-x--  /lib/libnss_files-2.5.so
b7d6c000   2048K r----  /usr/lib/locale/locale-archive
bfd10000     84K rw---    [ stack ]
 total     4796K

pmap -x gibt einige zusätzliche Informationen über die Speicherzuordnungen.

$  pmap -x 5732
5732:   -bash
Address   Kbytes     RSS    Anon  Locked Mode   Mapping
00393000     104       -       -       - r-x--  ld-2.5.so
003b1000    1272       -       -       - r-x--  libc-2.5.so
00520000       8       -       -       - r-x--  libdl-2.5.so
0053f000      12       -       -       - r-x--  libtermcap.so.2.0.8
0084d000      76       -       -       - r-x--  libnsl-2.5.so
00c57000      32       -       -       - r-x--  libnss_nis-2.5.so
00c8d000      36       -       -       - r-x--  libnss_files-2.5.so
b7d6c000    2048       -       -       - r----  locale-archive
bfd10000      84       -       -       - rw---    [ stack ]
-------- ------- ------- ------- -------
total kB    4796       -       -       -

Um die Geräteinformationen der Prozessabbildungen anzuzeigen, verwenden Sie „pamp -d pid“.

11. Netstat

Der Befehl Netstat zeigt verschiedene netzwerkbezogene Informationen wie Netzwerkverbindungen, Routing-Tabellen, Schnittstellenstatistiken, Masquerade-Verbindungen, Multicast-Mitgliedschaften usw. an,

Im Folgenden finden Sie einige Beispiele für netstat-Befehle.

Listen Sie alle Ports (sowohl lauschende als auch nicht lauschende) mit netstat -a auf, wie unten gezeigt.

# netstat -a | more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 localhost:30037         *:*                     LISTEN
udp        0      0 *:bootpc                *:*                                

Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     6135     /tmp/.X11-unix/X0
unix  2      [ ACC ]     STREAM     LISTENING     5140     /var/run/acpid.socket

Verwenden Sie den folgenden netstat-Befehl, um herauszufinden, auf welchem ​​Port ein Programm läuft.

# netstat -ap | grep ssh
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        1      0 dev-db:ssh           101.174.100.22:39213        CLOSE_WAIT  -
tcp        1      0 dev-db:ssh           101.174.100.22:57643        CLOSE_WAIT  -

Verwenden Sie den folgenden netstat-Befehl, um herauszufinden, welcher Prozess einen bestimmten Port verwendet.

# netstat -an | grep ':80'

Weitere Netstat-Beispiele:10 Beispiele für Netstat-Befehle

12. IPTraf

IPTraf ist eine IP-Netzwerküberwachungssoftware. Im Folgenden sind einige der Hauptfunktionen von IPTraf aufgeführt:

  • Es ist ein konsolenbasiertes (textbasiertes) Dienstprogramm.
  • Hier wird IP-Verkehr angezeigt, der Ihr Netzwerk durchquert. Dies zeigt TCP-Flag, Paket- und Byte-Anzahl, ICMP, OSPF-Pakettypen usw.
  • Zeigt erweiterte Schnittstellenstatistiken an (einschließlich IP, TCP, UDP, ICMP, Paketgröße und -anzahl, Prüfsummenfehler usw.)
  • LAN-Modul erkennt Hosts automatisch und zeigt deren Aktivitäten an
  • Protokollanzeigefilter zum Anzeigen von selektivem Protokolldatenverkehr
  • Erweiterte Protokollierungsfunktionen
  • Neben der Ethernet-Schnittstelle unterstützt es auch FDDI, ISDN, SLIP, PPP und Loopback
  • Sie können das Dienstprogramm auch im Vollbildmodus ausführen. Dies hat auch ein textbasiertes Menü.

Weitere Informationen: IPTraf-Startseite. IPTraf-Screenshot.

13. Spur

Strace wird zum Debuggen und Beheben von Fehlern bei der Ausführung einer ausführbaren Datei in einer Linux-Umgebung verwendet. Es zeigt die vom Prozess verwendeten Systemaufrufe und die vom Prozess empfangenen Signale an.

Strace überwacht die Systemaufrufe und Signale eines bestimmten Programms. Es ist hilfreich, wenn Sie den Quellcode nicht haben und die Ausführung eines Programms debuggen möchten. strace liefert Ihnen die Ausführungsreihenfolge einer Binärdatei von Anfang bis Ende.

Verfolgen Sie einen bestimmten Systemaufruf in einer ausführbaren Datei mit der Option -e

Standardmäßig zeigt strace alle Systemaufrufe für die angegebene ausführbare Datei an. Das folgende Beispiel zeigt die Ausgabe von strace für den Linux-Befehl ls.

$ strace ls
execve("/bin/ls", ["ls"], [/* 21 vars */]) = 0
brk(0)                                  = 0x8c31000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb78c7000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=65354, ...}) = 0

Um nur einen bestimmten Systemaufruf anzuzeigen, verwenden Sie die Option strace -e wie unten gezeigt.

$ strace -e open ls
open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/lib/libselinux.so.1", O_RDONLY)  = 3
open("/lib/librt.so.1", O_RDONLY)       = 3
open("/lib/libacl.so.1", O_RDONLY)      = 3
open("/lib/libc.so.6", O_RDONLY)        = 3
open("/lib/libdl.so.2", O_RDONLY)       = 3
open("/lib/libpthread.so.0", O_RDONLY)  = 3
open("/lib/libattr.so.1", O_RDONLY)     = 3
open("/proc/filesystems", O_RDONLY|O_LARGEFILE) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3

Weitere Strace-Beispiele:7 Strace-Beispiele zum Debuggen der Ausführung eines Programms unter Linux

14. Lsof

Lsof steht für ls open files, was alle offenen Dateien im System auflistet. Zu den geöffneten Dateien gehören Netzwerkverbindung, Geräte und Verzeichnisse. Die Ausgabe des lsof-Befehls hat die folgenden Spalten:

  • COMMAND-Prozessname.
  • PID-Prozess-ID
  • USER Benutzername
  • FD-Dateideskriptor
  • TYPE Knotentyp der Datei
  • DEVICE Gerätenummer
  • SIZE Dateigröße
  • NODE-Knotennummer
  • NAME vollständiger Pfad des Dateinamens.

Um alle geöffneten Dateien des Systems anzuzeigen, führen Sie den Befehl lsof ohne Parameter aus, wie unten gezeigt.

# lsof | more
COMMAND     PID       USER   FD      TYPE     DEVICE      SIZE       NODE NAME
init          1       root  cwd       DIR        8,1      4096          2 /
init          1       root  rtd       DIR        8,1      4096          2 /
init          1       root  txt       REG        8,1     32684     983101 /sbin/init
init          1       root  mem       REG        8,1    106397     166798 /lib/ld-2.3.4.so
init          1       root  mem       REG        8,1   1454802     166799 /lib/tls/libc-2.3.4.so
init          1       root  mem       REG        8,1     53736     163964 /lib/libsepol.so.1
init          1       root  mem       REG        8,1     56328     166811 /lib/libselinux.so.1
init          1       root   10u     FIFO       0,13                  972 /dev/initctl
migration     2       root  cwd       DIR        8,1      4096          2 /
skipped..

Um geöffnete Dateien eines bestimmten Benutzers anzuzeigen, verwenden Sie die Option lsof -u, um alle Dateien anzuzeigen, die von einem bestimmten Benutzer geöffnet wurden.

# lsof -u ramesh
vi      7190 ramesh  txt    REG        8,1   474608   475196 /bin/vi
sshd    7163 ramesh    3u  IPv6   15088263               TCP dev-db:ssh->abc-12-12-12-12.

Um Benutzer einer bestimmten Datei aufzulisten, verwenden Sie lsof wie unten gezeigt. In diesem Beispiel werden alle Benutzer angezeigt, die derzeit vi verwenden.

# lsof /bin/vi
COMMAND  PID  USER    FD   TYPE DEVICE   SIZE   NODE NAME
vi      7258  root   txt    REG    8,1 474608 475196 /bin/vi
vi      7300  ramesh txt    REG    8,1 474608 475196 /bin/vi

15. Ntop

Ntop ist genau wie top, aber für Netzwerkverkehr. ntop ist ein Netzwerkverkehrsmonitor, der die Netzwerknutzung anzeigt.

Sie können auch über den Browser auf ntop zugreifen, um Verkehrsinformationen und den Netzwerkstatus abzurufen.

Im Folgenden sind einige der Hauptfunktionen von ntop aufgeführt:

  • Zeigen Sie den Netzwerkverkehr aufgeschlüsselt nach Protokollen an
  • Sortieren Sie die Ausgabe des Netzwerkverkehrs nach mehreren Kriterien
  • Netzwerkverkehrsstatistiken anzeigen
  • Fähigkeit, die Netzwerkverkehrsstatistiken mit RRD zu speichern
  • Identifizieren Sie die Identität der Benutzer und des Host-Betriebssystems
  • Fähigkeit zur Analyse und Anzeige des IT-Verkehrs
  • Fähigkeit, als NetFlow/sFlow-Sammler für Router und Switches zu arbeiten
  • Zeigt ähnlich wie RMON Netzwerkverkehrsstatistiken an
  • Funktioniert unter Linux, MacOS und Windows

Weitere Informationen:Ntop-Homepage

16. GkrellM

GKrellM steht für GNU Krell Monitors oder GTK Krell Meters. Es ist ein auf dem GTK+-Toolkit basierendes Überwachungsprogramm, das verschiedene Systemressourcen überwacht. Die Benutzeroberfläche ist stapelbar. d.h. Sie können beliebig viele Überwachungsobjekte übereinander legen. Genau wie alle anderen Desktop-UI-basierten Überwachungstools kann es CPU, Speicher, Dateisystem, Netzwerknutzung usw. überwachen. Aber mit Plugins können Sie externe Anwendungen überwachen.

Weitere Informationen:GkrellM-Homepage

17. w und Betriebszeit

Während die Systemleistung überwacht wird, hilft der w-Befehl zu wissen, wer beim System angemeldet ist.

$ w
09:35:06 up 21 days, 23:28,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM          LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     :0            24Oct11  21days 1:05   1:05 /usr/bin/Xorg :0 -nr -verbose
ramesh   pts/0    192.168.1.10  Mon14    0.00s  15.55s 0.26s sshd: localuser [priv]
john     pts/0    192.168.1.11  Mon07    0.00s  19.05s 0.20s sshd: localuser [priv]
jason    pts/0    192.168.1.12  Mon07    0.00s  21.15s 0.16s sshd: localuser [priv]

Für jeden angemeldeten Benutzer werden die folgenden Informationen angezeigt:

  • Benutzername
  • tty-Info
  • Remote-Host-IP-Adresse
  • Anmeldezeit des Benutzers
  • Wie lange der Benutzer inaktiv war
  • JCPU und PCUP
  • Der Befehl des aktuellen Prozesses, den der Benutzer ausführt

Zeile 1 der w-Befehlsausgabe ähnelt der uptime-Befehlsausgabe. Es zeigt Folgendes an:

  • Aktuelle Uhrzeit
  • Wie lange das System in Betrieb ist
  • Gesamtzahl der Benutzer, die derzeit beim System angemeldet sind
  • Lastdurchschnitt der letzten 1, 5 und 15 Minuten

Wenn Sie nur die Verfügbarkeitsinformationen wünschen, verwenden Sie den Befehl uptime.

$ uptime
 09:35:02 up 106 days, 28 min,  2 users,  load average: 0.08, 0.11, 0.05

Bitte beachten Sie, dass sowohl der w- als auch der uptime-Befehl die Informationen aus der /var/run/utmp-Datendatei beziehen.

18. /proc

/proc ist ein virtuelles Dateisystem. Wenn Sie beispielsweise ls -l /proc/stat ausführen, werden Sie feststellen, dass es eine Größe von 0 Bytes hat, aber wenn Sie „cat /proc/stat“ ausführen, sehen Sie einige Inhalte in der Datei.

Führen Sie ein ls -l /proc aus, und Sie werden viele Verzeichnisse mit nur Zahlen sehen. Diese Nummern stellen die Prozess-IDs dar, die Dateien in diesem nummerierten Verzeichnis entsprechen dem Prozess mit dieser bestimmten PID.

Die folgenden wichtigen Dateien befinden sich unter jedem nummerierten Verzeichnis (für jeden Prozess):

  • cmdline – Befehlszeile des Befehls.
  • environ – Umgebungsvariablen.
  • fd – Enthält die Dateideskriptoren, die mit den entsprechenden Dateien verknüpft sind.
  • limits – Enthält Informationen zu den spezifischen Limits des Prozesses.
  • mounts – Mount-bezogene Informationen

Das Folgende sind die wichtigen Links unter jedem nummerierten Verzeichnis (für jeden Prozess):

  • cwd – Link zum aktuellen Arbeitsverzeichnis des Prozesses.
  • exe – Link zur ausführbaren Datei des Prozesses.
  • root – Link zum Stammverzeichnis des Prozesses.

Weitere /proc-Beispiele:Untersuchen Sie das /proc-Dateisystem von Linux

19. KDE-Systemwächter

Dies wird auch als KSysGuard bezeichnet. Auf Linux-Desktops, auf denen KDE ausgeführt wird, können Sie dieses Tool verwenden, um Systemressourcen zu überwachen. Neben der Überwachung des lokalen Systems kann dies auch entfernte Systeme überwachen.

Wenn Sie den KDE-Desktop ausführen, gehen Sie zu Anwendungen -> System -> Systemmonitor, wodurch KSysGuard gestartet wird. Sie können auch ksysguard in der Befehlszeile eingeben, um es zu starten.

Dieses Tool zeigt die folgenden zwei Registerkarten an:

  • Prozesstabelle – Zeigt alle aktiven Prozesse an. Sie können von hier aus die Priorität der Prozesse sortieren, beenden oder ändern
  • Systemlast – Zeigt Diagramme für CPU-, Speicher- und Netzwerknutzung an. Diese Diagramme können angepasst werden, indem Sie mit der rechten Maustaste auf eines dieser Diagramme klicken.

Um eine Verbindung zu einem Remote-Host herzustellen und ihn zu überwachen, klicken Sie auf das Menü Datei -> Remote-Computer überwachen -> geben Sie die IP-Adresse des Hosts und die Verbindungsmethode (z. B. ssh) an. Dadurch werden Sie nach dem Benutzernamen/Passwort auf dem Remote-Computer gefragt. Sobald die Verbindung hergestellt ist, wird die Systemnutzung des Remote-Computers in den Registerkarten „Prozesstabelle“ und „Systemlast“ angezeigt.

20. GNOME-Systemmonitor

Auf Linux-Desktops, auf denen GNOME ausgeführt wird, können Sie dieses Tool verwenden, um Prozesse, Systemressourcen und Dateisysteme über eine grafische Oberfläche zu überwachen. Abgesehen von der Überwachung können Sie dieses UI-Tool auch verwenden, um einen Prozess zu beenden oder die Priorität eines Prozesses zu ändern.

Wenn Sie den GNOME-Desktop ausführen, gehen Sie zu System -> Verwaltung -> Systemmonitor, wodurch der GNOME-Systemmonitor gestartet wird. Sie können auch gnome-system-monitor in der Befehlszeile eingeben, um es zu starten.

Dieses Tool hat die folgenden vier Registerkarten:

  • System – Zeigt die Systeminformationen an, einschließlich Linux-Distributionsversion, Systemressourcen und Hardwareinformationen.
  • Prozesse – Zeigt alle aktiven Prozesse an, die nach verschiedenen Feldern sortiert werden können
  • Ressourcen – Zeigt CPU-, Speicher- und Netzwerknutzung an
  • Dateisysteme – Zeigt Informationen über aktuell gemountete Dateisysteme an

Weitere Informationen:Homepage von GNOME System Monitor

21. Conky

Conky ist ein Systemmonitor oder X. Conky zeigt Informationen in der Benutzeroberfläche mithilfe von Objekten an. Standardmäßig gibt es mehr als 250 Objekte, die mit conky gebündelt sind, das verschiedene Überwachungsinformationen (CPU, Speicher, Netzwerk, Festplatte usw.) anzeigt. Es unterstützt IMAP, POP3, mehrere Audioplayer.

Sie können jede externe Anwendung überwachen und anzeigen, indem Sie Ihre eigenen Objekte mithilfe von Skripten erstellen. Die Überwachungsinformationen können in verschiedenen Formaten angezeigt werden:Text, Grafiken, Fortschrittsbalken usw. Dieses Dienstprogramm ist extrem konfigurierbar.

Weitere Informationen:Conky-Screenshots

22. Kakteen

Cacti ist ein PHP-basiertes UI-Frontend für das RRDTool. Cacti speichert die zum Generieren des Diagramms erforderlichen Daten in einer MySQL-Datenbank.

Im Folgenden sind einige High-Level-Features von Cacti aufgeführt:

  • Fähigkeit, die Datenerfassung durchzuführen und sie in einer MySQL-Datenbank (oder Round-Robin-Archiven) zu speichern
  • Mehrere erweiterte Grafikfunktionen sind verfügbar (Gruppierung von GPRINT-Grafikelementen, automatisches Auffüllen von Grafiken, Bearbeiten von Grafikdaten mit CDEF-Mathematikfunktion, alle RRDTool-Grafikelemente werden unterstützt)
  • Die Datenquelle kann lokale oder entfernte Daten für das Diagramm sammeln
  • Möglichkeit, die Einstellungen für Round-Robin-Archive (RRA) vollständig anzupassen
  • Benutzer können benutzerdefinierte Skripte zum Sammeln von Daten definieren
  • SNMP-Unterstützung (php-snmp, ucd-snmp oder net-snmp) für die Datenerfassung
  • Integrierter Poller hilft beim Ausführen benutzerdefinierter Skripte, Abrufen von SNMP-Daten, Aktualisieren von RRD-Dateien usw.
  • Hochflexible Funktionen für Diagrammvorlagen
  • Benutzerfreundliche und anpassbare Anzeigeoptionen für Diagramme
  • Erstellen Sie verschiedene Benutzer mit verschiedenen Berechtigungssätzen, um auf das Cacti-Frontend zuzugreifen
  • Granulare Berechtigungsstufen können für den einzelnen Benutzer festgelegt werden
  • und vieles mehr...

Weitere Informationen:Kakteen-Homepage

23. Vnstat

vnstat ist ein Befehlszeilendienstprogramm, das den Netzwerkverkehr der Schnittstellen auf Ihren Systemen anzeigt und protokolliert. Dies hängt von den vom Kernel bereitgestellten Netzwerkstatistiken ab. vnstat fügt Ihrem System also keine zusätzliche Last für die Überwachung und Protokollierung des Netzwerkverkehrs hinzu.

vnstat ohne Argumente gibt Ihnen eine kurze Zusammenfassung mit den folgenden Informationen:

  • Das letzte Mal, als die unter /var/lib/vnstat/ befindliche vnStat-Datenbank aktualisiert wurde
  • Seit Beginn der Erfassung der Statistiken für eine bestimmte Schnittstelle
  • Die Netzwerkstatistikdaten (übertragene Bytes, empfangene Bytes) für die letzten zwei Monate und die letzten zwei Tage.
# vnstat
Database updated: Sat Oct 15 11:54:00 2011

   eth0 since 10/01/11

          rx:  12.89 MiB      tx:  6.94 MiB      total:  19.82 MiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       Sep '11     12.90 MiB |    6.90 MiB |   19.81 MiB |    0.14 kbit/s
       Oct '11     12.89 MiB |    6.94 MiB |   19.82 MiB |    0.15 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated        29 MiB |      14 MiB |      43 MiB |

	 daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     yesterday      4.30 MiB |    2.42 MiB |    6.72 MiB |    0.64 kbit/s
         today      2.03 MiB |    1.07 MiB |    3.10 MiB |    0.59 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated         4 MiB |       2 MiB |       6 MiB |

Verwenden Sie „vnstat -t“ oder „vnstat –top10“, um die Top-10-Traffic-Tage aller Zeiten anzuzeigen.

$ vnstat --top10

 eth0  /  top 10

    #      day          rx      |     tx      |    total    |   avg. rate
   -----------------------------+-------------+-------------+---------------
    1   10/12/11       4.30 MiB |    2.42 MiB |    6.72 MiB |    0.64 kbit/s
    2   10/11/11       4.07 MiB |    2.17 MiB |    6.24 MiB |    0.59 kbit/s
    3   10/10/11       2.48 MiB |    1.28 MiB |    3.76 MiB |    0.36 kbit/s
    ....
   -----------------------------+-------------+-------------+---------------

Weitere vnstat-Beispiele:Wie man den Netzwerkverkehr mit VNStat überwacht und protokolliert

24. Htop

htop ist ein ncurses-basierter Prozessbetrachter. Dies ist ähnlich wie oben, aber flexibler und benutzerfreundlicher. Sie können mit der Maus mit dem htop interagieren. Sie können vertikal scrollen, um die vollständige Prozessliste anzuzeigen, und horizontal scrollen, um die vollständige Befehlszeile des Prozesses anzuzeigen.

Die htop-Ausgabe besteht aus drei Abschnitten:1) Kopfzeile, 2) Hauptteil und 3) Fußzeile.

Kopfzeile zeigt die folgenden drei Balken und einige wichtige Systeminformationen an. Sie können diese im Setup-Menü von htop ändern.

  • CPU-Auslastung:Zeigt die %used im Text am Ende des Balkens an. Der Balken selbst zeigt verschiedene Farben. Niedrige Priorität in Blau, Normal in Grün, Kernel in Rot.
  • Speichernutzung
  • Swap-Nutzung

Körper zeigt die Liste der Prozesse sortiert nach %CPU-Auslastung an. Verwenden Sie die Pfeiltasten, die Bild-auf- und Bild-ab-Taste, um durch die Prozesse zu blättern.

Fußzeile Zeigt htop-Menübefehle an.

Weitere Informationen:HTOP Screenshot und Beispiele

25. Socket-Statistik – SS

ss steht für Socket-Statistiken. Dies zeigt Informationen an, die dem netstat-Befehl ähneln.

Um alle Listening-Sockets anzuzeigen, führen Sie ss -l wie unten gezeigt aus.

$ ss -l
Recv-Q Send-Q   Local Address:Port     Peer Address:Port
0      100      :::8009                :::*
0      128      :::sunrpc              :::*
0      100      :::webcache            :::*
0      128      :::ssh                 :::*
0      64       :::nrpe                :::*

Im Folgenden wird nur die hergestellte Verbindung angezeigt.

$ ss -o state established
Recv-Q Send-Q   Local Address:Port   Peer Address:Port
0      52       192.168.1.10:ssh   192.168.2.11:55969    timer:(on,414ms,0)

Im Folgenden werden zusammenfassende Socket-Statistiken angezeigt. Hier wird die Gesamtzahl der Sockets aufgeschlüsselt nach Typ angezeigt.

$ ss -s
Total: 688 (kernel 721)
TCP:   16 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 11

Transport Total     IP        IPv6
*         721       -         -
RAW       0         0         0
UDP       13        10        3
TCP       16        7         9
INET      29        17        12
FRAG      0         0         0

Welches Tool verwenden Sie, um die Leistung Ihrer Linux-Umgebung zu überwachen? Habe ich eines Ihrer bevorzugten Tools zur Leistungsüberwachung verpasst? Hinterlasse einen Kommentar.


Linux
  1. 4 CLI-basierte Linux-Leistungsüberwachungstools:top, htop, ps und vmstat

  2. Die 5 besten Terminal-basierten Linux-Überwachungstools

  3. Beste Tools zum Aufnehmen und Bearbeiten von Screenshots unter Linux

  4. Top 5 der besten Systemüberwachungstools

  5. Die 20 besten Red Hat Linux-Zertifizierungen und -Kurse

Top 10 der besten Farbauswahl-Tools für Linux-Systeme

Top 10 der besten Scan-Tools für Linux-Systeme

Top 10 der besten Wetter-Tools für Linux-Systeme

Top 10 der besten Linux-Hardware- und Systeminfo-Tools

8 beste Tools zur Messung der Leistung von Linux-Stresstests

Bester Linux-Code-Editor:Top 11 überprüft und verglichen