On 04.11.20 02:41, Alexandre Derumier wrote: > --- > src/PVE/CGroup.pm | 43 +++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 43 insertions(+) > > diff --git a/src/PVE/CGroup.pm b/src/PVE/CGroup.pm > index 4823be2..457502e 100644 > --- a/src/PVE/CGroup.pm > +++ b/src/PVE/CGroup.pm > @@ -358,6 +358,49 @@ sub get_memory_stat { > return $res; > } > > +# Parse some memory data from `memory.stat` > +sub get_pressure_stat { > + my ($self) = @_; > + > + my $res = { > + cpu => { > + some => { avg10 => 10, avg60 => 0, avg300 => 0 }
here too, why 10 as default for the avg over the last 10 seconds? > + }, > + memory => { > + some => { avg10 => 10, avg60 => 0, avg300 => 0 }, > + full => { avg10 => 10, avg60 => 0, avg300 => 0 } > + }, > + io => { > + some => { avg10 => 10, avg60 => 0, avg300 => 0 }, > + full => { avg10 => 10, avg60 => 0, avg300 => 0 } > + }, > + }; > + > + my ($path, $ver) = $self->get_path(undef, 1); > + if (!defined($path)) { > + # container or VM most likely isn't running > + return undef; > + } elsif ($ver == 2) { > + > + foreach my $type (qw(cpu memory io)) { > + if (my $fh = IO::File->new ("$path/$type.pressure", "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; > + } > + } > + } else { > + die "bad cgroup version: $ver\n"; > + } > + > + return $res; > +} > + > # Change the memory limit for this container. > # > # Dies on error (including a not-running or currently-shutting-down guest). > _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel