Damit der Befehl sar verwendet werden kann, muss sadc (system activity data collector) ausgeführt werden. Überprüfen Sie den Status oder starten Sie ihn mit dem Befehl rcsysstat {start|status}.
Mit sar können umfangreiche Berichte zu fast alle wichtigen Systemaktivitäten generiert werden, darunter CPU-, Speicher-, IRQ-Auslastung, EA oder Netzwerk. Da dieser Befehl über zahlreiche Optionen verfügt, wird er an dieser Stelle nicht näher erläutert. Eine umfassende Dokumentation mit entsprechenden Beispielen finden Sie auf der man-Seite.
iostat überwacht das Laden von Geräten im System. Es erzeugt Berichte, die für eine bessere Auslastung des Ladevorgangs zwischen mit Ihrem System verbundenen physischen Datenträgern nützlich sind.
Der erste iostat-Bericht zeigt Statistiken, die seit dem Systemboot gesammelt wurden. Nachfolgende Berichte umfassen die Zeit seit dem vorherigen Bericht.
tux@mercury:~> iostat Linux 2.6.27.19-3.2-default (geeko@buildhost) 23.3.2009 _x86_64_ avg-cpu: %user %nice %system %iowait %steal %idle 0,49 0,01 0,10 0,31 0,00 99,09 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 1,34 5,59 25,37 1459766 6629160 sda1 0,00 0,01 0,00 1519 0 sda2 0,87 5,11 17,83 1335365 4658152 sda3 0,47 0,47 7,54 122578 1971008
Beim Aufruf über die Option -n fügt iostat Statistiken zum Laden von Netzwerkdateisystemen (NFS) hinzu. Die Option -x zeigt erweiterte Statistikinformationen.
Sie können auch angeben, welches Gerät in welchen Zeitintervallen überwacht werden soll. Beispiel: iostat -p sda 3 5 zeigt fünf Berichte in 3-Sekunden-Intervallen für das Gerät "sda" an.
Das Dienstprogramm mpstat prüft Aktivitäten von jedem verfügbaren Prozessor. Wenn Ihr System nur über einen Prozessor verfügt, wird die Statistik über den globalen Durchschnitt angelegt.
Mit der Option -P können Sie die Anzahl der zu überwachenden Prozessoren angeben. (Beachten Sie, dass 0 den ersten Prozessor angibt.) Die Zeitargumente funktionieren auf dieselbe Weise wie beim Kommando iostat. Durch Eingabe von mpstat -P 1 2 5 werden fünf Berichte für den zweiten Prozessor (Nummer 1) in 2-Sekunden-Intervallen gedruckt.
tux@mercury:~> mpstat -P 1 2 5 Linux 2.6.27.19-5-default (geeko@buildhost) 03/23/2009 _x86_64_ 08:57:10 AM CPU %usr %nice %sys %iowait %irq %soft %steal \ %guest %idle 08:57:12 AM 1 4.46 0.00 5.94 0.50 0.00 0.00 0.00 \ 0.00 89.11 08:57:14 AM 1 1.98 0.00 2.97 0.99 0.00 0.99 0.00 \ 0.00 93.07 08:57:16 AM 1 2.50 0.00 3.00 0.00 0.00 1.00 0.00 \ 0.00 93.50 08:57:18 AM 1 14.36 0.00 1.98 0.00 0.00 0.50 0.00 \ 0.00 83.17 08:57:20 AM 1 2.51 0.00 4.02 0.00 0.00 2.01 0.00 \ 0.00 91.46 Average: 1 5.17 0.00 3.58 0.30 0.00 0.90 0.00 \ 0.00 90.05
Wenn Sie wissen müssen, welche Belastung eine bestimmte Aufgabe auf Ihr System ausübt, verwenden Sie das Kommando pidstat. Es druckt die Aktivität jeder ausgewählten Aufgabe bzw. aller Aufgaben, die vom Linux-Kernel verwaltet werden (sofern keine Aufgabe angegeben wird). Sie können auch die Anzahl der anzuzeigenden Berichte sowie das dazwischen liegende Zeitintervall festlegen.
Beispiel: pidstat -C top 2 3 druckt die Ladestatistik für Aufgaben, deren Kommandoname die Zeichenkette top
enthält. Es werden drei Berichte in 2-Sekunden-Intervallen gedruckt.
tux@mercury:~> pidstat -C top 2 3 Linux 2.6.27.19-5-default (geeko@buildhost) 03/23/2009 _x86_64_ 09:25:42 AM PID %usr %system %guest %CPU CPU Command 09:25:44 AM 23576 37.62 61.39 0.00 99.01 1 top 09:25:44 AM PID %usr %system %guest %CPU CPU Command 09:25:46 AM 23576 37.00 62.00 0.00 99.00 1 top 09:25:46 AM PID %usr %system %guest %CPU CPU Command 09:25:48 AM 23576 38.00 61.00 0.00 99.00 1 top Average: PID %usr %system %guest %CPU CPU Command Average: 23576 37.54 61.46 0.00 99.00 - top
Die Nutzung des Arbeitsspeichers (RAM) wird mit dem Dienstprogramm free überprüft. Es werden Details zum freien und zum verwendeten Speicher sowie zu den Auslagerungsbereichen angezeigt:
tux@mercury:~> free total used free shared buffers cached Mem: 2062844 2047444 15400 0 129580 921936 -/+ buffers/cache: 995928 1066916 Swap: 2104472 0 2104472
Die Optionen -b,-k,-m,-g zeigen die Ausgabe in Byte, KB, MB bzw. GB. Der Parameter -d N gewährleistet, dass die Anzeige alle N Sekunden aktualisiert wird. So wird die Anzeige mit free -d 1.5 beispielsweise alle 1,5 Sekunden aktualisiert.
Es kann hilfreich sein, zu ermitteln, welche Prozesse oder Benutzer aktuell auf bestimmte Dateien zugreifen. Sie möchten beispielsweise ein Dateisystem aushängen, das unter /mnt eingehängt ist. umount gibt "device is busy" zurück. Mit dem Befehl fuser können Sie anschließend ermitteln, welche Prozesse auf das Gerät zugreifen:
tux@mercury:~> fuser -v /mnt/* USER PID ACCESS COMMAND /mnt/notes.txt tux 26597 f.... less
Nach dem Beenden des Prozesses less, der auf einem anderen Terminal ausgeführt wurde, kann das Aushängen des Dateisystems erfolgreich ausgeführt werden. Bei Verwendung mit der Option -k beendet fuser Prozesse, die ebenfalls auf die Datei zugreifen.
Der Linux-Kernel hält bestimmte Meldungen in einem Ringpuffer zurück. Um diese Meldungen anzuzeigen, geben Sie den Befehl dmesg ein:
tux@mercury:~> dmesg [...] end_request: I/O error, dev fd0, sector 0 subfs: unsuccessful attempt to mount media (256) e100: eth0: e100_watchdog: link up, 100Mbps, half-duplex NET: Registered protocol family 17 IA-32 Microcode Update Driver: v1.14 <tigran@veritas.com> microcode: CPU0 updated from revision 0xe to 0x2e, date = 08112004 IA-32 Microcode Update Driver v1.14 unregistered bootsplash: status on console 0 changed to on NET: Registered protocol family 10 Disabled Privacy Extensions on device c0326ea0(lo) IPv6 over IPv4 tunneling driver powernow: This module only works with AMD K7 CPUs bootsplash: status on console 0 changed to on
Ältere Ereignisse werden in den Dateien /var/log/messages und /var/log/warn protokolliert.
Um eine Liste aller Dateien anzuzeigen, die für den Prozess mit der Prozess-ID PID geöffnet sind, verwenden Sie -p. Um beispielsweise alle von der aktuellen Shell verwendeten Dateien anzuzeigen, geben Sie Folgendes ein:
tux@mercury:~> lsof -p $$ COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME bash 5552 tux cwd DIR 3,3 1512 117619 /home/tux bash 5552 tux rtd DIR 3,3 584 2 / bash 5552 tux txt REG 3,3 498816 13047 /bin/bash bash 5552 tux mem REG 0,0 0 [heap] (stat: No such bash 5552 tux mem REG 3,3 217016 115687 /var/run/nscd/passwd bash 5552 tux mem REG 3,3 208464 11867 /usr/lib/locale/en_GB. [..] bash 5552 tux mem REG 3,3 366 9720 /usr/lib/locale/en_GB. bash 5552 tux mem REG 3,3 97165 8828 /lib/ld-2.3.6.so bash 5552 tux 0u CHR 136,5 7 /dev/pts/5 bash 5552 tux 1u CHR 136,5 7 /dev/pts/5 bash 5552 tux 2u CHR 136,5 7 /dev/pts/5 bash 5552 tux 255u CHR 136,5 7 /dev/pts/5
Es wurde die spezielle Shell-Variable $$ verwendet, deren Wert die Prozess-ID der Shell ist.
Wird der Befehl lsof ohne Parameter eingegeben, werden alle aktuell geöffneten Dateien angezeigt. Da dies in der Regel recht viele sind, wird dieser Befehl selten verwendet. Die Liste der Dateien kann jedoch mit Suchfunktionen kombiniert werden, um sinnvolle Listen zu generieren. Beispiel: Liste aller verwendeten zeichenorientierten Geräte:
tux@mercury:~> lsof | grep CHR bash 3838 tux 0u CHR 136,0 2 /dev/pts/0 bash 3838 tux 1u CHR 136,0 2 /dev/pts/0 bash 3838 tux 2u CHR 136,0 2 /dev/pts/0 bash 3838 tux 255u CHR 136,0 2 /dev/pts/0 bash 5552 tux 0u CHR 136,5 7 /dev/pts/5 bash 5552 tux 1u CHR 136,5 7 /dev/pts/5 bash 5552 tux 2u CHR 136,5 7 /dev/pts/5 bash 5552 tux 255u CHR 136,5 7 /dev/pts/5 X 5646 root mem CHR 1,1 1006 /dev/mem lsof 5673 tux 0u CHR 136,5 7 /dev/pts/5 lsof 5673 tux 2u CHR 136,5 7 /dev/pts/5 grep 5674 tux 1u CHR 136,5 7 /dev/pts/5 grep 5674 tux 2u CHR 136,5 7 /dev/pts/5
Bei Verwendung mit -i listet lsof auch aktuell geöffnete Internet-Dateien auf:
tux@mercury:~> lsof -i pidgin 4349 tux 17r IPv4 15194 0t0 TCP \ jupiter.example.com:58542->www.example.net:https (ESTABLISHED) pidgin 4349 tux 21u IPv4 15583 0t0 TCP \ jupiter.example.com:37051->aol.example.org:aol (ESTABLISHED) evolution 4578 tux 38u IPv4 16102 0t0 TCP \ jupiter.example.com:57419->imap.example.com:imaps (ESTABLISHED) npviewer. 9425 tux 40u IPv4 24769 0t0 TCP \ jupiter.example.com:51416->www.example.com:http (CLOSE_WAIT) npviewer. 9425 tux 49u IPv4 24814 0t0 TCP \ jupiter.example.com:43964->www.example.org:http (CLOSE_WAIT) ssh 17394 tux 3u IPv4 40654 0t0 TCP \ jupiter.example.com:35454->saturn.example.com:ssh (ESTABLISHED)
udevadm monitor überwacht die Kernel-uevents und die Ereignisse, die über eine udev-Regel gesendet werden, und sendet den Gerätepfad (DEVPATH) des Ereignisses an die Konsole. Hierbei handelt es sich um eine Ereignissequenz beim Anschließen eines USB-Memorysticks:
WICHTIG: Überwachen von udev-Ereignissen.
Nur der root-Benutzer darf udev-Ereignisse mithilfe des Kommandos udevadm überwachen.
UEVENT[1138806687] add@/devices/pci0000:00/0000:00:1d.7/usb4/4-2/4-2.2 UEVENT[1138806687] add@/devices/pci0000:00/0000:00:1d.7/usb4/4-2/4-2.2/4-2.2 UEVENT[1138806687] add@/class/scsi_host/host4 UEVENT[1138806687] add@/class/usb_device/usbdev4.10 UDEV [1138806687] add@/devices/pci0000:00/0000:00:1d.7/usb4/4-2/4-2.2 UDEV [1138806687] add@/devices/pci0000:00/0000:00:1d.7/usb4/4-2/4-2.2/4-2.2 UDEV [1138806687] add@/class/scsi_host/host4 UDEV [1138806687] add@/class/usb_device/usbdev4.10 UEVENT[1138806692] add@/devices/pci0000:00/0000:00:1d.7/usb4/4-2/4-2.2/4-2.2 UEVENT[1138806692] add@/block/sdb UEVENT[1138806692] add@/class/scsi_generic/sg1 UEVENT[1138806692] add@/class/scsi_device/4:0:0:0 UDEV [1138806693] add@/devices/pci0000:00/0000:00:1d.7/usb4/4-2/4-2.2/4-2.2 UDEV [1138806693] add@/class/scsi_generic/sg1 UDEV [1138806693] add@/class/scsi_device/4:0:0:0 UDEV [1138806693] add@/block/sdb UEVENT[1138806694] add@/block/sdb/sdb1 UDEV [1138806694] add@/block/sdb/sdb1 UEVENT[1138806694] mount@/block/sdb/sdb1 UEVENT[1138806697] umount@/block/sdb/sdb1
Mit xrestop werden Statistiken für die serverseitigen Ressourcen der einzelnen angeschlossenen X11-Clients angegeben. Die Ausgabe ähnelt Abschnitt 13.6.4, Prozesse: top.
xrestop - Display: localhost:0 Monitoring 40 clients. XErrors: 0 Pixmaps: 42013K total, Other: 206K total, All: 42219K total res-base Wins GCs Fnts Pxms Misc Pxm mem Other Total PID Identifier 3e00000 385 36 1 751 107 18161K 13K 18175K ? NOVELL: SU 4600000 391 122 1 1182 889 4566K 33K 4600K ? amaroK - S 1600000 35 11 0 76 142 3811K 4K 3816K ? KDE Deskto 3400000 52 31 1 69 74 2816K 4K 2820K ? Linux Shel 2c00000 50 25 1 43 50 2374K 3K 2378K ? Linux Shel 2e00000 50 10 1 36 42 2341K 3K 2344K ? Linux Shel 2600000 37 24 1 34 50 1772K 3K 1775K ? Root - Kon 4800000 37 24 1 34 49 1772K 3K 1775K ? Root - Kon 2a00000 209 33 1 323 238 1111K 12K 1123K ? Trekstor25 1800000 182 32 1 302 285 1039K 12K 1052K ? kicker 1400000 157 121 1 231 477 777K 18K 796K ? kwin 3c00000 175 36 1 248 168 510K 9K 520K ? de.comp.la 3a00000 326 42 1 579 444 486K 20K 506K ? [opensuse- 0a00000 85 38 1 317 224 102K 9K 111K ? Kopete 4e00000 25 17 1 60 66 63K 3K 66K ? YaST Contr 2400000 11 10 0 56 51 53K 1K 55K 22061 suseplugge 0e00000 20 12 1 50 92 50K 3K 54K 22016 kded 3200000 6 41 5 72 84 40K 8K 48K ? EMACS 2200000 54 9 1 30 31 42K 3K 45K ? SUSEWatche 4400000 2 11 1 30 34 34K 2K 36K 16489 kdesu 1a00000 255 7 0 42 11 19K 6K 26K ? KMix 3800000 2 14 1 34 37 21K 2K 24K 22242 knotify 1e00000 10 7 0 42 9 15K 624B 15K ? KPowersave 3600000 106 6 1 30 9 7K 3K 11K 22236 konqueror 2000000 10 5 0 21 34 9K 1K 10K ? klipper 3000000 21 7 0 11 9 7K 888B 8K ? KDE Wallet