Make offset tweakable
[vrac.git] / vmstat.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 ($offset) = @ARGV;
11
12 if (not defined $offset) {
13         $offset = 10;
14 }
15
16 my $filename = 'vmstat.xml';
17
18
19 my %dict;
20
21
22
23 while (1) {
24         print scalar localtime() . "\n";
25         print "------------------------\n" ;
26         system("/usr/bin/vmstat -z --libxo xml >$filename"); 
27         my $doc = XML::LibXML->load_xml(location => $filename); 
28         foreach my $id ($doc->findnodes('//zone')) {
29                 my $name=$id->findvalue('name');
30                 my $used=$id->findvalue('used');
31                 my $val = int($used);
32
33                 if ($name eq "vm pgcache") {
34                         next;
35                 }
36                 
37                 if (exists $dict{$name}) {
38                         my $v0=$dict{$name} + $offset;
39
40                         if ($v0 <= $val) {
41 format DIFF_V0V1 =
42         @<<<<<<<<<<<<<<<<<<<<<< @######## => @########
43         $name,$v0,$val
44 .
45                                 $~ = "DIFF_V0V1";
46                                 write;
47                                 $dict{$name} = $val;
48                         }
49                 } else {
50                         $dict{$name} = $val;
51                 }
52         }
53
54         print "\n";
55
56         sleep(5);
57 }
58
59