Perl script to check vmstat -m diffs
[vrac.git] / vmstatm.pl
1 #!/usr/local/bin/perl
2 #
3 # requires textproc/p5-XML-LibXML
4 #
5 use warnings;
6
7 use XML::LibXML;
8
9 my $filename = 'vmstatm.xml';
10
11 my %dict;
12 my $offset = 10;
13
14 while (1) {
15         print scalar localtime() . "\n";
16         system("/usr/bin/vmstat -m --libxo xml >$filename"); 
17         $doc = XML::LibXML->load_xml(location => $filename); 
18         foreach my $id ( $doc->findnodes('//memory')) {
19                 my $name=$id->findvalue('type');
20                 my $used=$id->findvalue('memory-use');
21                 if (exists $dict{$name}) {
22                         my $v0=$dict{$name} + $offset;
23
24                         if ($v0 < $used) {
25                                 print "$name: $v0 => $used \n";
26                                 $dict{$name}=$used;
27                         }
28                 } else {
29                         $dict{$name}=$used;
30                 }
31         }
32         print "------------------------\n" ;
33
34         sleep(5);
35 }
36