]> git.proxmox.com Git - pve-common.git/blobdiff - src/PVE/ProcFSTools.pm
bump version to 8.2.1
[pve-common.git] / src / PVE / ProcFSTools.pm
index eb4b0f5be92197b83dfc5fc22f156e5fd2aca034..3826fcc926cea92f1a6fc17d73f504e4aa147ce5 100644 (file)
@@ -2,14 +2,15 @@ package PVE::ProcFSTools;
 
 use strict;
 use warnings;
-use POSIX;
-use Time::HiRes qw (gettimeofday);
+
+use Cwd qw();
 use IO::File;
 use List::Util qw(sum);
-use PVE::Tools;
-use Cwd qw();
-
+use POSIX;
 use Socket qw(PF_INET PF_INET6 SOCK_DGRAM IPPROTO_IP);
+use Time::HiRes qw (gettimeofday);
+
+use PVE::Tools;
 
 use constant IFF_UP => 1;
 use constant IFNAMSIZ => 16;
@@ -283,6 +284,7 @@ sub read_meminfo {
        swaptotal => 0,
        swapfree => 0,
        swapused => 0,
+       arcsize => 0,
     };
 
     my $fh = IO::File->new ("/proc/meminfo", "r");
@@ -307,6 +309,11 @@ sub read_meminfo {
     my $spages = PVE::Tools::file_read_firstline("/sys/kernel/mm/ksm/pages_sharing") // 0 ;
     $res->{memshared} = int($spages) * 4096;
 
+    my $arc_stats = eval { PVE::Tools::file_get_contents("/proc/spl/kstat/zfs/arcstats") };
+    if ($arc_stats && $arc_stats =~ m/^size\s+\d+\s+(\d+)$/m) {
+       $res->{arcsize} = int($1);
+    }
+
     return $res;
 }