Benutzer-Werkzeuge

Webseiten-Werkzeuge


systemueberpruefung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
systemueberpruefung [2021-03-16 19:07:42] – [RAM] manfredsystemueberpruefung [2024-10-31 14:24:02] (aktuell) manfred
Zeile 1: Zeile 1:
 +====== Systemüberprüfung ======
 +
 +
 +===== wichtige Befehle =====
 +
 +
 +==== Festplatten ====
 +
 +  df -k                 # Platz in kByte
 +  df -h                 # Platz in gröstmöglicher Einheit
 +  vmstat 1              # zeigt die Systemaktivitäten im Sekundentakt
 +                        # si - Swap in   (in den Swap schreiben)
 +                        # so - Swap out  (aus dem Swap lesen)
 +                        # bi - Block in  (auf Platte schreiben)
 +                        # bo - Block out (von Platte lesen)
 +  vmstat -p /dev/cciss/c0d0p1 1 # Statistik der ersten Partition
 +  vmstat -d 1           # detailierte Plattenstatistik
 +  fdisk -l              # (Nur als root!) ansprechbare Platten zeigen
 +
 +ansprechbare Platten zeigen:
 +  # ls -1 /sys/block/ | egrep -v 'loop|ram'
 +
 +ansprechbare Platten mit Partitionen zeigen:
 +  # ls -1 /sys/class/block/ | egrep -v 'loop|ram'
 +
 +  # cat /sys/class/block/cciss\!c0d0/uevent 
 +  MAJOR=104
 +  MINOR=0
 +  DEVNAME=cciss/c0d0
 +  DEVTYPE=disk
 +
 +  # cat /sys/class/block/cciss\!c0d0p1/uevent 
 +  MAJOR=104
 +  MINOR=1
 +  DEVNAME=cciss/c0d0p1
 +  DEVTYPE=partition
 +
 +Wenn ein LVM eingerichtet ist, hat man es schwer zu ermitteln
 +welches dm auf welcher physikalischen Platte liegt...
 +Dieses Kommando zeigt welches virtuelle Volumen auf welcher
 +physikalischen Platte liegt:
 +  # ls -l /sys/block/dm-*/slaves/sd*
 +
 +
 +==== File Handler ====
 +
 +Will man ein Verzeichnis umount(en) und bekommt die Meldung
 +"device is busy.", dann kann man so die Prozesse finden, die
 +noch auf das Verzeichnis zugreifen.
 +
 +zeigt offene Dateien in dem Verzeichnis (Linux/GNU):
 +  # fuser -vm /home/
 +
 +zeigt offene Dateien in dem Verzeichnis (FreeBSD/BSD):
 +  # fuser -c /home/
 +
 +
 +==== CPU ====
 +
 +Prozessorinformationen:
 +  # cat /proc/cpuinfo
 +
 +  # top
 +  ps -ef | less         # UNIX-Style (Standard-Syntax)
 +  ps aux | less         # BSD-Style
 +  ps wwwaux | less      # BSD-Style (längere Kommandozeile)
 +  ps axo user,pid,ppid,pcpu,pmem,vsz,rss,tty,stat,start,time,args | less
 +  ps wwaxo user,pid,ppid,pcpu,pmem,vsz,rss,tty,stat,start,time,args | less
 +  vmstat 1              # zeigt die Systemaktivitäten im Sekundentakt
 +                        # us - User      (User-Space-Interupts)
 +                        # sy - System    (System-Interupts)
 +                        # id - Idle      (nix zu tun)
 +                        # wa - Waiting   (warte auf Daten aus einem Nadelöhr z.B. Platte oder Netz)
 +
 +
 +==== RAM ====
 +
 +  # top                 # im Kopf steht die Speicherauslastung
 +                        # VIRT - virtueller Speicher (RAM+Swap)
 +                        # RES  - resident im RAM (eigentlicher RAM-Verbrauch)
 +                        # Swap = VIRT - RES   (unbedingt auf die Einheiten achten)
 +                        # SHR  - shared Speicher (meist verwendet von gemeinsam genutzte Libs)
 +
 +  # free
 +
 +Speicherinformationen:
 +  # cat /proc/meminfo
 +
 +zeigt in der letzten Zeile den GENAUEN Speicherverbrauch des Prozesses unter "writeable/private:" an:
 +  # pmap -d [PID]
 +
 +[[http://www.tecmint.com/find-processes-by-memory-usage-top-batch-mode/]]
 +  # top -b -o +%MEM | head -n 22
 +  top - 11:51:41 up 18 days, 23:41,  4 users,  load average: 2,13, 1,09, 0,82
 +  Tasks: 156 total,   1 running, 155 sleeping,   0 stopped,   0 zombie
 +  %Cpu(s):  3,0 us,  1,7 sy,  0,0 ni, 80,2 id, 14,9 wa,  0,0 hi,  0,1 si,  0,0 st
 +  KiB Mem:  16432776 total, 16136676 used,   296100 free,   251656 buffers
 +  KiB Swap:   974844 total,    71124 used,   903720 free.  8957284 cached Mem
 +  
 +    PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 +  32496 mysql     20   0 11,601g 6,158g  18644 S   0,0 39,3 112:36.34 mysqld
 +  12528 root      20    113564  33000   2224 S   0, 0,2   0:41.05 puppet
 +   1010 syslog    20    256052   9552      0 S   0, 0,1   0:41.84 rsyslogd
 +  13914 root      20    141804   6624   2280 S   0, 0,0  28:21.92 mmm_agentd
 +   7924 root      20    105664   6480   5472 S   0, 0,0   0:00.03 sshd
 +   8068 root      20     24140   5820   3764 S   0, 0,0   0:01.17 bash
 +   7968 fritz     20     24124   5488   3464 S   0, 0,0   0:00.11 bash
 +   8067 root      20     66468   4272   3800 S   0, 0,0   0:00.00 sudo
 +   7967 fritz     20    105664   3836   2828 S   0, 0,0   0:00.76 sshd
 +   7039 root      20     16328   3820   2568 S   0, 0,0   0:17.34 watch
 +  11993 root      20     24304   3640   2448 S   0, 0,0   0:01.12 bash
 +  16350 root      20     26332   3144   2716 R   6, 0,0   0:00.01 top
 +      1 root      20     33484   2632   1732 S   0, 0,0   0:22.41 init
 +   5566 root      20     16064   2472   1616 S   0, 0,0  12:51.74 watch
 +  16351 root      20      8732   2180   2076 S   0, 0,0   0:00.00 head
 +
 +
 +=== auf FreeBSD ===
 +
 +  # top -b -o size | head -n 22
 +  last pid: 51378;  load averages:  0.13,  0.10,  0.11  up 0+17:53:36    20:06:33
 +  68 processes:  1 running, 67 sleeping
 +  CPU:  0.0% user,  0.0% nice,  3.2% system,  0.1% interrupt, 96.6% idle
 +  Mem: 2861M Active, 10G Inact, 12G Wired, 1337M Buf, 37G Free
 +  ARC: 6738M Total, 2267M MFU, 3145M MRU, 1044K Anon, 35M Header, 1283M Other
 +       4291M Compressed, 6701M Uncompressed, 1.56:1 Ratio
 +  Swap: 7949M Total, 7949M Free
 +  
 +    PID USERNAME    THR PRI NICE   SIZE    RES STATE    C   TIME    WCPU COMMAND
 +  47293 root         12  20    0    16G  1334M kqread   6 396:13   0.10% bhyve
 +  56527 squid          20    0  1995M   282M kqread     0:11   0.00% squid
 +  48263 root          1  34    0   183M  7328K kqread     0:00   0.00% cupsd
 +  44830 root          1  20    0   175M   148M select     0:29   0.00% smbd
 +  49207 root          1  20    0   175M   147M select     0:00   0.00% smbd
 +  38845 root         21  52    0   140M    52M uwait    3   1:58   0.00% ts3server
 +  46816 root          2  20    0   136M   105M select     0:00   0.00% smbd
 +  47692 root          1  20    0   132M   105M select     0:00   0.00% smbd
 +  36392 murmur        1  52    0    71M    21M select     0:00   0.00% murmurd
 +  43004 www            20    0    70M    38M kqread     0:04   0.00% httpd
 +  48037 www            20    0    70M    37M lockf    8   0:05   0.00% httpd
 +  43924 www            21    0    66M    35M lockf   10   0:05   0.00% httpd
 +  47806 www            20    0    65M    34M lockf    6   0:04   0.00% httpd
 +
 +  # top -b -o res | head -n 22
 +  last pid: 56238;  load averages:  0.11,  0.10,  0.11  up 0+17:53:47    20:06:44
 +  68 processes:  1 running, 67 sleeping
 +  CPU:  0.0% user,  0.0% nice,  3.2% system,  0.1% interrupt, 96.6% idle
 +  Mem: 2861M Active, 10G Inact, 12G Wired, 1337M Buf, 37G Free
 +  ARC: 6738M Total, 2266M MFU, 3145M MRU, 788K Anon, 35M Header, 1283M Other
 +       4291M Compressed, 6701M Uncompressed, 1.56:1 Ratio
 +  Swap: 7949M Total, 7949M Free
 +  
 +    PID USERNAME    THR PRI NICE   SIZE    RES STATE    C   TIME    WCPU COMMAND
 +  47293 root         12  20    0    16G  1334M kqread   8 396:13   0.10% bhyve
 +  56527 squid          20    0  1995M   282M kqread     0:11   0.00% squid
 +  44830 root          1  20    0   175M   148M select     0:29   0.00% smbd
 +  49207 root          1  20    0   175M   147M select     0:00   0.00% smbd
 +  47692 root          1  20    0   132M   105M select     0:00   0.00% smbd
 +  46816 root          2  20    0   136M   105M select     0:00   0.00% smbd
 +  38845 root         21  52    0   140M    52M uwait    3   1:58   0.00% ts3server
 +  43004 www            20    0    70M    38M lockf    9   0:04   0.00% httpd
 +  48037 www            20    0    70M    37M lockf    8   0:05   0.00% httpd
 +  43924 www            21    0    66M    35M lockf   10   0:05   0.00% httpd
 +  47806 www            20    0    65M    34M kqread     0:04   0.00% httpd
 +  42752 www            20    0    64M    34M lockf    9   0:04   0.00% httpd
 +  11115 www            20    0    64M    33M lockf    4   0:00   0.00% httpd
 +
 +
 +==== NIC ====
 +
 +NIC's mit IP's anzeigen:
 +  # ip aadr
 +
 +zeigt alle aktiven NIC's:
 +  ifconfig -a
 +
 +
 +  ls -l /sys/class/net/eth0/    # zeigt alle ansprechbaren NICs
 +
 +
 +  cat /sys/class/net/eth0/address       # MAC-Adresse von eth0
 +
 +
 +  ls -1 /sys/class/net/eth0/statistics/         # Dateien mit statistischen Infos
 +
 +Netzwerkkollisionen:
 +  cat /sys/class/net/eth0/statistics/collisions
 +
 +Empfangsfehler:
 +  cat /sys/class/net/eth0/statistics/rx_errors
 +
 +Sendefehler:
 +  cat /sys/class/net/eth0/statistics/tx_errors
 +
 +empfangene CRC-Fehler:
 +  cat /sys/class/net/eth0/statistics/rx_crc_errors
 +
 +Dateien mit Error-Statistik-Infos:
 +  ls -la /sys/class/net/eth0/statistics/*errors
 +
 +
 +Will man die Netzwerkauslastung ermitteln, ohne das man
 +eine Bandbreitensoftware zur verfühgung hat, kann man wie
 +folgt vorgehen.
 +
 +empfangene Datenmenge in Byte/Sekunde:
 +  # XB="$(cat /sys/class/net/eth0/statistics/rx_bytes)";sleep 1;echo "$(cat /sys/class/net/eth0/statistics/rx_bytes)-$XB"|bc -l
 +
 +gesendete Datenmenge in Byte/Sekunde:
 +  # XB="$(cat /sys/class/net/eth0/statistics/tx_bytes)";sleep 1;echo "$(cat /sys/class/net/eth0/statistics/tx_bytes)-$XB"|bc -l
 +
 +
 +===== Grundlegendes =====
 +
 +Sollte ein System langsam sein, muss man als erstes ermitteln wo der Engpass
 +liegt. Als Engpass kommen fast immer nur vier Systemressourcen in Frage:
 +  - Prozessor
 +  - Speicher (bei zu wenig RAM wird auf die Festplatte -> Swap zugegriffen)
 +  - Festplatte
 +  - Netzwerk
 +
 +**ACHTUNG!!!**
 +Die "load average"-Werte sagen in dieser Hinsicht **GARNICHTS!**
 +Die "load average" drückt nur aus, wie lange ein Prozess warten
 +muss bis er wieder CPU-Zeit bekommt, sie sagt aber nichts über
 +die CPU-Auslastung aus!!!
 +
 +Ein hoher "load average"-Wert zeigt uns nur, dass EINE der vier
 +Systemressourcen die Systemleistung begrenzt.
 +Oft muss aber nicht das System selbst schuldig sein, denn oft
 +wartet ein Prozess nur auf Daten eines anderen Prozesses, der
 +auch auf einem anderen Rechner laufen kann.
 +Das treibt unter Umständen auch die "load average"-Werte hoch.
 +
 +
 +==== Prozessor ====
 +
 +Ob die CPU am Anschlag läuft, sieht man am schnellsten mit "top".
 +  # top
 +
 +  # vmstat 1
 +
 +
 +==== Speicher ====
 +
 +Ob der RAM ausgeschöpft ist, kann man auf unterschiedlichen
 +Arten ermitteln
 +  # free
 +  # top
 +  # cat /proc/meminfo
 +  # vmstat 1
 +
 +
 +==== Festplatte ====
 +
 +  # vmstat 1
 +
 +
 +==== Netzwerk ====
 +
 +Das Netzwerk als Engpass zu ermitteln geht fast immer nur über die
 +Ausschlussmethode. Denn nur wenn die Netzwerkbandbreite voll ausgeschöpft
 +ist, kann man definitiv sagen, dass es an zu wenig Netzwerkbandbreite liegt.
 +Meistens warten die Prozesse aber nur auf Antworten aus dem Netz, so das es
 +im System keinen ersichtlichen Engpass gibt!
 +
 +Die aktuell genutzte Netzwerkbandbreite kann man wie folgt ermitteln.
 +letzte Sekunde im Durchschnitt (Byte/Sekunde):
 +  # XB="$(cat /sys/class/net/eth0/statistics/rx_bytes)";sleep 1;echo "$(cat /sys/class/net/eth0/statistics/rx_bytes)-$XB"|bc -l
 +  # XB="$(cat /sys/class/net/eth0/statistics/tx_bytes)";sleep 1;echo "$(cat /sys/class/net/eth0/statistics/tx_bytes)-$XB"|bc -l
 +
 +letzte Minute im Durchschnitt (Byte/Minute):
 +  # XB="$(cat /sys/class/net/eth0/statistics/rx_bytes)";sleep 60;echo "($(cat /sys/class/net/eth0/statistics/rx_bytes)-$XB)/60"|bc -l
 +  # XB="$(cat /sys/class/net/eth0/statistics/tx_bytes)";sleep 60;echo "($(cat /sys/class/net/eth0/statistics/tx_bytes)-$XB)/60"|bc -l
 +
 +
 +===== FreeBSD 12 =====
 +
 +
 +==== RAM ====
 +
 +leider zeigt die FreeBSD-Version von "top" nicht die gesammte RAM-Speichergröße an
 +  # top
 +  last pid: 11041;  load averages:  6.45,  6.74,  6.86                                       up 0+03:43:13  16:30:35
 +  87 processes:  2 running, 85 sleeping
 +  CPU:  0.1% user, 76.5% nice, 12.9% system, 10.2% interrupt,  0.3% idle
 +  Mem: 362M Active, 431M Inact, 12G Wired, 40K Buf, 2432M Free
 +  ...
 +
 +hier steht nur:
 +  * **Active:** RAM-Größe des aktiv genutzt wird
 +  * **Inact:** RAM-Größe die inaktiv ist
 +  * **Wired:** "verkabelte" RAM-Größe, einschließlich zwischengespeicherter Dateiseiten auf BIO-Ebene
 +  * **Cache:** Datenmenge, die im RAM zwischengespeichert liegt, um die langsamen Festplattenzugriffe zu minimieren
 +  * **Buf:** RAM-Größe die für den Festplatten-Cache auf BIO-Ebene verwendet wird
 +  * **Free:** freie RAM-Größe
 +
 +beim Booten wird die RAM-Größe einmal ausgegeben:
 +  # fgrep memory /var/run/dmesg.boot
 +  real memory  = 17179869184 (16384 MB)
 +  avail memory = 16096768000 (15351 MB)
 +
 +__aus dem Kernel-Status kann man die RAM-Größe jeder Zeit auslesen:__
 +  # sysctl hw | egrep 'hw.(phys|user|real)'
 +  hw.physmem: 16595222528
 +  hw.usermem: 4956823552
 +  hw.realmem: 17179869184
 +  
 +  # sysctl hw | awk '/hw[.](phys|user|real)/{print $1"\t"$2,"Byte,\t",$2/1024,"MB,\t",$2/1024^2,"GB"}'
 +  hw.physmem:     16595222528 Byte,        16206272 MB,    15826,4 GB
 +  hw.usermem:     3710742528 Byte,         3623772 MB,     3538,84 GB
 +  hw.realmem:     17179869184 Byte,        16777216 MB,    16384 GB
 +
 +angelehnt an das Linux-Werkzeug "free", hier auch mit farbiger Ausgabe:
 +  # pkg install sysutils/freecolor
 +  
 +  # freecolor
 +  Physical  : [######.............................] 18%   (2870916/15781376)
 +  Swap      : [###################################] 100%  (16777216/16777216)
 +  
 +  # freecolor -tom
 +               total       used       free     shared    buffers     cached
 +  Mem:         15411      12419       2991          0          0          0
 +  Swap:        16384          0      16384
 +  Total:       31795 = (   12419 (used) +    19375 (free))
 +