Pressure Stall Information – Was ist das?
Normalerweise bekommt man bei der Abfrage der Auslastung eines Linuxsystems einen Wert, welcher sich aus verschiedenen Faktoren zusammensetzt, über einen Zeitraum von 1, 5 und 15 Minuten angezeigt.
Beispiel:
load average: 2.42, 5.04, 5.00
Daraus lässt sich leider nicht genau herleiten was genau diese Auslastung verursacht.
Im Kernel 4.20 wurde dann Pressure Stall Information (PSI) eingeführt.
Das neue PSI (Pressure-stall Information) stellt drei an /proc/loadavg erinnernde Dateien bereit (cpu,io,memory), mit denen man die Ursache von Leistungsabfällen leichter eingrenzen kann. Dies geschieht in Verbindung mit cgroup2.
Vorraussetzung
Es muss natürlich ein Kernel in der Version >= 4.20 sein und dieser muss mit der Option
CONFIG_PSI=y
kompilliert worden sein.
$ cat /proc/config.gz | gunzip | grep CONFIG_PSI
CONFIG_PSI=y
Wenn man solch einen eben erwähnten Kernel bootet, findet man nun das neue Verzeichnis /proc/pressure
mit den bereits erwähnten Dateien:
-r--r--r-- 1 root root 0 Jan 1 22:58 cpu
-r--r--r-- 1 root root 0 Jan 1 22:58 io
-r--r--r-- 1 root root 0 Jan 1 22:58 memory
Anwendung
In diesen Dateien finden sich nun wieder Angaben zur Auslastung des entsprechenden Teiles.
$ cat cpu
some avg10=0.00 avg60=0.00 avg300=0.00 total=463753
$ cat io
some avg10=0.26 avg60=0.92 avg300=1.54 total=27178318
full avg10=0.26 avg60=0.92 avg300=1.53 total=26557181
$ cat memory
some avg10=0.00 avg60=0.00 avg300=0.00 total=0
full avg10=0.00 avg60=0.00 avg300=0.00 total=0
Nun kann der ausschlaggebende Faktor bei der nächsten Systemlast schneller ausgemacht werden.
Weitere Informationen findet man unter: facebookmicrosites.github.io/psi/
Anmerkung
Manche Distros haben das Feature zwar mit in den Kernel kompiliert, aber trotzdem standardmäßig deaktiviert:
$ cat /proc/config.gz | gunzip | grep CONFIG_PSI
CONFIG_PSI=y
CONFIG_PSI_DEFAULT_DISABLED=y
Um dieses Feature nun wieder zu aktivieren, hängt man an im Booteintrag des entsprechenden Kernels die Option
psi=1
an.