6fb34e93d017776101eb0a036560b933df463bee
[vrac.git] / vmstatm.pl
1 #!/usr/local/bin/perl
2 #
3 # requires textproc/p5-XML-LibXML
4 #
5 use warnings;
6 use strict;
7
8 use XML::LibXML;
9
10 my $filename = 'vmstatm.xml';
11 my %dict;
12
13 my ($offset) = @ARGV;
14
15 if (not defined $offset) {
16         $offset = 10;
17 }
18
19 while (1) {
20         print scalar localtime() . "\n";
21         system("/usr/bin/vmstat -m --libxo xml >$filename"); 
22         my $doc = XML::LibXML->load_xml(location => $filename); 
23         foreach my $id ( $doc->findnodes('//memory')) {
24                 my $name=$id->findvalue('type');
25                 my $used=$id->findvalue('memory-use');
26                 if (exists $dict{$name}) {
27                         my $v0=$dict{$name} + $offset;
28
29                         if ($v0 < $used) {
30 format DIFF_V0V1 =
31         @<<<<<<<<<<<<<<<<<<<<<< @######## => @########
32         $name,$dict{$name},$used
33 .
34                                 $~ = "DIFF_V0V1";
35                                 write;
36                                 $dict{$name}=$used;
37                         }
38                 } else {
39                         $dict{$name}=$used;
40                 }
41         }
42         print "------------------------\n" ;
43
44         sleep(5);
45 }
46