From: Alexandre Derumier Date: Tue, 6 Oct 2020 11:58:39 +0000 (+0200) Subject: ProcFSTools: add read_pressure X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=commitdiff_plain;h=83874202127354d522addd6cec2dfb56e41e60b5 ProcFSTools: add read_pressure read new /proc/pressure/(cpu,disk,io) introduced in kernel 4.20. This give more granular informations than loadaverage. Signed-off-by: Alexandre Derumier --- diff --git a/src/PVE/ProcFSTools.pm b/src/PVE/ProcFSTools.pm index 7cf1472..7687c13 100644 --- a/src/PVE/ProcFSTools.pm +++ b/src/PVE/ProcFSTools.pm @@ -132,6 +132,24 @@ sub read_loadavg { return wantarray ? (0, 0, 0) : 0; } +sub read_pressure { + + my $res = {}; + foreach my $type (qw(cpu memory io)) { + if (my $fh = IO::File->new ("/proc/pressure/$type", "r")) { + while (defined (my $line = <$fh>)) { + if ($line =~ /^(some|full)\s+avg10\=(\d+\.\d+)\s+avg60\=(\d+\.\d+)\s+avg300\=(\d+\.\d+)\s+total\=(\d+)/) { + $res->{$type}->{$1}->{avg10} = $2; + $res->{$type}->{$1}->{avg60} = $3; + $res->{$type}->{$1}->{avg300} = $4; + } + } + $fh->close; + } + } + return $res; +} + my $last_proc_stat; sub read_proc_stat {