Wir wollen im Detail verstehen, wie in Unix-Systemen Prozesse gehandhabt werden und wie wir Prozesse aus dem Userland behandeln können.
Ziele
- Informationen über laufende Prozesse darstellen
- Die dargestellten Informationen verstehen
- Prozesse beenden
- Wie sehe ich laufende Prozesse, wieviel Ressourcen nutzt ein Prozess
- Was ist
nice
,renice
und wie funktioniert das - Was ist CPU affinity
- Was ist der Unterschied zwischen Prozessen und Threads
Inhalte
Die notwendigen Bücher hat makandra für seine Trainees erworben und du findest diese im Google Drive.
- Kapitel 12.3 aus dem LPI-Buch: https://drive.google.com/drive/folders/1hUcRPZ_lGtJoFl6VU8R4nbguxTbK7QSh Show archive.org snapshot
- Kapitel 16: https://drive.google.com/drive/folders/1Y80MbcTiZ_1EMsaOc7m9NQIJepp9rCu2 Show archive.org snapshot
- Kapitel 3 aus dem Buch "Advanced Linux Programming" (Seite 69 im PDF):
https://drive.google.com/drive/folders/1SG8iVOTfRbe3qbvxsZYd7zycmgfipTpf
Show archive.org snapshot
- Schau dir Listing 3.1 an und verstehe, was der C-Code dort tut. Compile das kleine Programm mit
gcc
und lass es laufen. Was ist der Elternprozess zu dem Programm?
- Schau dir Listing 3.1 an und verstehe, was der C-Code dort tut. Compile das kleine Programm mit
- Blogpost: Introduction to Linux Threads Show archive.org snapshot
Übungen
- Verstehe den unterschiedlichen Output von
ps
ps au
ps auxww
- Ließ dazu
man ps
falls es dir nicht klar ist
- Benutze
top
undhtop
- Lass parallel
openssl speed
laufen. Was passiert? - Lass parallel
cat /dev/urandom > /dev/null
laufen. Was passiert? Was macht das Kommando?
- Lass parallel
- Verschiebe den laufenden OpenSSL-Prozess zwischen CPUs:
sudo taskset -c -p 00 $pid
sudo taskset -c -p 01 $pid
- Sortiere die Prozesse in
top
undhtop
nach verbrauchter CPU-Zeit und danach nach Speicherverbauch - Schau dir den output von
pstree
an- Überlege dir was die hierarchische darstellung bedeutet, warum sieht das so aus?
- von welchem Prozess stammt alles ab? Welche PID wird dieser Prozess immer haben?
- Wie findest du Threads die zu einem Prozess gehören?
Posted by Thomas Eisenbarth to DevOps Curriculum (2022-01-24 10:05)