Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi1:prozesse

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

lpi1:prozesse [2018/08/16 09:13]
127.0.0.1 Externe Bearbeitung
lpi1:prozesse [2019/08/14 10:07]
Zeile 1: Zeile 1:
-====== Prozessverwaltung ====== 
-===== Prozesse anzeigen ===== 
-==== ps ==== 
-Anzeigen aller Prozesse: 
-(( oft sieht man auch die BSD-Syntax: 
-  ps ax 
-)) 
-  ps -e 
- 
-Anzeigen aller Prozesse und Threads: 
-  ps -T -e 
- 
-=== Status === 
-{{:​admin_grundlagen:​process_status.png?​direct&​200|}} ​ (( aus ''​man waitpid'':​ //A child that terminates, but has not been waited for becomes a "​zombie"​. ​ The kernel ​ maintains ​ a  minimal ​ set  of  information ​ about the zombie process (PID, termination status, resource usage information) in order to allow the parent to later perform a wait to  obtain information ​ about  the  child. ​  ​As ​ long as a zombie is not removed from the system via a wait, it will consume a slot in the kernel process table, and if this table fills, it  will not  be  possible ​ to  create ​ further processes. ​ If a parent process terminates, then its "​zombie"​ children (if any) are adopted by init(1), (or by the nearest ​ "​subreaper" ​ process ...; init(1) automatically performs a wait to remove the zombies.//​)) 
- 
-Anzeigen aller Prozesse, incl. Benutzer: 
-(( 
-  ps aux 
-)) 
-  ps -elf 
-Anzeige alle sortiert: 
-  ps -e --sort rsz 
-Anzeige ausgewählter Felder sortiert: 
-  ps -eo cmd,​uname,​rsz,​cputime,​%cpu,​state --sort rsz 
-Anzeige ausgewählter Prozesse und ausgewählter Felder sortiert: 
-  ps -C gzip,bzip2 -o cmd,​uname,​rsz,​cputime,​%cpu,​state --sort rsz 
- 
-Mit dem BSD Befehlssatz 
-Alle Prozess, mit User und MEM/​CPU-Statistik,​ als Wide (volle Kommandozeile) und als Baum (f) 
-  ps ax 
-  ps aux 
-  ps auxw 
-  ps auxwf 
- 
-Anzeige aller Prozesse incl. cgroup: 
- 
-  alias psc='​ps xawf -eo pid,​user,​cgroup,​args'​ 
-  psc 
-==== pgrep, lsof, pstree, top ==== 
-Anzeige aller zip Prozesse: 
-  pgrep -l zip 
-Anzeigen, welche Dateien ein Prozess geöffnet hat: 
-  lsof -p 4711 
-oder 
-  lsof -c update-notifier 
-Prozesse baumartig darstellen: 
-  pstree 
-  pstree -p 
-  pstree -up 
-Prozessbau der eigenen Shell (long) 
-  pstree -pul -s $$ 
-Prozesse nach Ressourcenverbrauch sortiert anzeigen: 
-  top 
-Modernere Variante von top: 
-  htop 
- 
-===== Prozess Prioritäten ===== 
-Priorität anzeigen 
-  nice 
-oder 
-  ps -p $$ -o pid,​nice,​cmd 
- 
-Prozess mit um 5 erhöhter Priorität starten: 
-  nice -5 bash 
-  
-Priorität eines laufenden Prozesses auf 3 ändern: 
-  renice 3 
- 
-===== Signale ===== 
-Prozess normal beenden, Daten werden gepeichert: 
-  kill 4711 
-  kill -TERM 4711 
- 
-Prozess sofort beenden, ohne speichern: 
-  kill -KILL 4711 
-  kill -9 4711 
- 
-Prozess bitten, die Konfigurationsdatei neu einzulesen ((das funktioniert nur bei den meisten Serverdiensten)):​ 
-  kill -HUP 4711 
- 
-aktuelle Shell informieren,​ daß sich die Fenstergröße geändert hat 
-  kill -WINCH $$ 
- 
-Signal für aktuelle Shell umdefinieren:​ 
-  trap 'echo bäah!'​ TERM 
-  kill -TERM $$ 
- 
-Alle zip-Prozesse beenden: 
-  pkill zip 
-===== Beispiel: Zombie erzeugen ===== 
-  sleep 30 & 
-  exec sleep 200  
- 
-====== Wieviel Speicher ist noch frei? ====== 
- 
-  free -m 
-<​file>​ 
-             ​total ​      ​used ​      ​free ​    ​shared ​   buffers ​    ​cached 
-Mem:           ​503 ​       296        206          0         ​26 ​       102 
--/+ buffers/​cache: ​       167        336 
-Swap:         ​1592 ​         0       1592 
-</​file>​ 
- 
-Hier das ganze mal beschriftet,​ damit klar ist, wovon ich unten rede: 
- 
-  free -m 
-<​file>​ 
-             ​total ​      ​used ​      ​free ​    ​shared ​   buffers ​    ​cached 
-Mem:           ​(1) ​       (2)        (3)        (4)        (5)        (6) 
--/+ buffers/​cache: ​       (7)        (8) 
-Swap:          (9)       ​(10) ​      (11) 
-</​file>​ 
- 
-  - Die physikalische Menge flüchtigen Speichers, abzüglich dessen, was für den Kernel und dessen Datenstrukturen draufgeht. 
-  - Der benutzte Speicher, also alles, was für Programme, deren Libraries, Datenhaltung draufgeht. Außerdem der Buffer- und der Pagecache. 
-  - Unbenutzter Speicher. Niemand hat dort Dinge abgelegt. Der Speicher kann direkt benutzt werden, wenn man welchen braucht. Wobei er u. U. natürlich initialisiert werden sollte 
-  - Der durch Shared Memory belegte Speicher. 
-  - Der durch den Buffer-Cache belegte Speicher 
-  - Der durch den Page Cache belegte Speicher 
-  - Der belegte Speicher von (2) abzüglich der Summe aus (5) und (6) 
-  - Der freie Speicher von (3) plus der Summe aus (5) und (6) 
-  - Die gesamte Menge an Swapspace, die zur Verfügung steht. 
-  - Der belegte Swapspace 
-  - Der noch freie Swapspace, also (9) abzüglich (10) 
- 
-Das bedeutet also, dass im Falle ganz oben insgesamt 167M von 
-Programmen und ähnlichem belegt ist und ich theoretisch 336M 
-zusätzliche belegen könnte. Dann wäre aber der PageCache 
-auf 0 und der Buffer Cache ebenfalls. Da das sehr auf die 
-Performance ginge, würde der Kernel vorher bereits einige 
-Programme, die selten laufen (z. B. ein unbeschäftigter exim 
-oder irgendwelche anderen Daemons, die selten laufen) in den 
-Swap verschieben. Zum schnellen Überblick, wie viel Speicher 
-denn noch frei ist (also eigentlich, wie viel Speicher denn 
-noch nutzbar ist), ist die Zahl unter (8) am besten als 
-Indikator zu gebrauchen. 
- 
- 
-===== Beispiel: Cache füllen ===== 
-In einem Fenster Speicher beobachten: 
-  watch free -m 
- 
-Im zweiten Fenster unsinnig Dateien lesen: 
-  grep -r lakdsjf /usr/ 2>/​dev/​null >/​dev/​null 
- 
- 
- 
- 
-===== Beispiel: Cache leeren ===== 
-In einem Fenster Speicher beobachten: 
-  watch free -m 
- 
-Im zweiten Fenster ein Programm viel Speicher verbrauchen lassen: 
-  dd bs=1M count=1500 < /dev/zero | sort > /dev/null 
- 
-Oder einfach: 
-  echo 3 > /​proc/​sys/​vm/​drop_caches 
-===== Beispiel: Speicher füllen ===== 
-Prozess starten, der 2000MB verbraucht: 
-  dd if=/​dev/​zero bs=1M count=2000 | perl -e '​$slurp=<>;​ sleep' 
-oder 
-  dd if=/​dev/​zero bs=1M count=2000 | read slurp 
- 
  
lpi1/prozesse.txt · Zuletzt geändert: 2019/08/14 10:07 (Externe Bearbeitung)