From 83874202127354d522addd6cec2dfb56e41e60b5 Mon Sep 17 00:00:00 2001 From: Alexandre Derumier Date: Tue, 6 Oct 2020 13:58:39 +0200 Subject: [PATCH] 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 --- src/PVE/ProcFSTools.pm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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 { -- 2.39.2