Mercurial > openvz
annotate openvz_checker.pl @ 4:c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
* check ovz setting consistency
author | Peter Gervai <grin@grin.hu> |
---|---|
date | Thu, 17 Oct 2013 08:49:10 +0200 |
parents | |
children |
rev | line source |
---|---|
4
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
2 #$Id: openvz_checker.pl,v 1c29ac915688 2009/12/09 21:17:13 grin $ |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
3 #(c)Peter Gervai, 2009 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
4 # GPLv2 / CC-BY-SA 3.0 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
5 # |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
6 # check openvz resource settings |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
7 # based on wiki pages |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
8 # |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
9 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
10 use strict; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
11 use warnings; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
12 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
13 use IO::File; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
14 use Data::Dumper; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
15 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
16 my $dir_bc = "/proc/bc"; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
17 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
18 my $CUR=0; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
19 my $MAX=1; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
20 my $BAR=2; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
21 my $LIM=3; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
22 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
23 # ia32... |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
24 my $PAGESIZE=4096; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
25 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
26 my @allsocketbuf = qw( tcprcvbuf tcpsndbuf dgramrcvbuf othersockbuf ); |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
27 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
28 opendir( DIR, $dir_bc ); |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
29 my @veids = grep { /^\d+/ && -d "$dir_bc/$_" } readdir(DIR); |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
30 closedir( DIR ); |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
31 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
32 my %res; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
33 for my $veid ( @veids ) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
34 next if $veid == 0; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
35 my $f = new IO::File "< $dir_bc/$veid/resources" or next; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
36 while( <$f> ) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
37 chomp; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
38 # trim spaces |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
39 s/^\s*(.*?)\s*$/$1/; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
40 my @data = split /\s+/; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
41 # held, maxheld, barrier, limit, failcnt |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
42 $res{$veid}{$data[0]} = [ @data[1..5] ]; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
43 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
44 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
45 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
46 ## total ram |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
47 my $ram = qx( free | grep Mem: ); chomp $ram; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
48 $ram = (split /\s+/, $ram)[1]; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
49 print "RAM=$ram\n"; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
50 $ram *= 1024; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
51 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
52 ## swap |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
53 my $swap = qx( free | grep Swap: ); chomp $swap; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
54 $swap = (split /\s+/, $swap)[1]; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
55 print "SWAP=$swap\n"; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
56 $swap *= 1024; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
57 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
58 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
59 my $sum; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
60 ### low mem x86_32 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
61 # max lowram 832MB |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
62 my $lowram = $ram > 832000000 ? 832000000 : $ram; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
63 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
64 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
65 ############################### |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
66 ####### system wide config |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
67 ############################### |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
68 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
69 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
70 ############################### |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
71 ## utiliation |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
72 $sum=0; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
73 foreach my $veid (keys %res) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
74 my $b = $res{$veid}{'kmemsize'}->[$CUR]; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
75 foreach my $sb (@allsocketbuf) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
76 $b += $res{$veid}{$sb}->[$CUR]; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
77 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
78 $sum += $b; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
79 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
80 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
81 print "Low memory (x86_32) Utilisation: ", &pretty($sum / (0.4 * $lowram)); |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
82 print " ( <1 OK; <2 unsafe; >2 dangerous)\n"; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
83 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
84 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
85 ############################### |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
86 ## commitment level |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
87 $sum=0; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
88 foreach my $veid (keys %res) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
89 my $b = $res{$veid}{'kmemsize'}->[$LIM]; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
90 foreach my $sb (@allsocketbuf) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
91 $b += $res{$veid}{$sb}->[$LIM]; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
92 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
93 $sum += $b; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
94 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
95 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
96 print "Low memory (x86_32) Commitment: ", &pretty($sum / (0.4 * $lowram)); |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
97 print " ( <1 OK; <1.5 acceptable; >2 not recommended)\n"; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
98 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
99 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
100 ############################ |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
101 #### total ram |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
102 ## utilisation |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
103 $sum=0; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
104 foreach my $veid (keys %res) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
105 my $b = $res{$veid}{'physpages'}->[$CUR] * $PAGESIZE; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
106 $b += $res{$veid}{'kmemsize'}->[$CUR]; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
107 foreach my $sb (@allsocketbuf) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
108 $b += $res{$veid}{$sb}->[$CUR]; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
109 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
110 $sum += $b; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
111 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
112 print "Total RAM utilisation: ", &pretty($sum / $ram); |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
113 print " ( <0.8 low; <1 ok; >1 impossible)\n"; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
114 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
115 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
116 ############################ |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
117 #### total ram+swap |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
118 ## utilisation |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
119 $sum=0; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
120 foreach my $veid (keys %res) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
121 my $b = $res{$veid}{'oomguarpages'}->[$CUR] * $PAGESIZE; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
122 $b += $res{$veid}{'kmemsize'}->[$CUR]; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
123 foreach my $sb (@allsocketbuf) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
124 $b += $res{$veid}{$sb}->[$CUR]; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
125 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
126 $sum += $b; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
127 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
128 print "RAM+swap utilisation: ", &pretty($sum / ($ram+$swap)); |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
129 my $low_bound = &pretty($ram / ($ram+$swap)); |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
130 my $hi_bound = &pretty(($ram + 0.5*$swap) / ($ram+$swap)); |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
131 print " ( <$low_bound low; between ok; >$hi_bound bad)\n"; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
132 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
133 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
134 ## commitment |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
135 $sum=0; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
136 foreach my $veid (keys %res) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
137 my $b = $res{$veid}{'oomguarpages'}->[$BAR] * $PAGESIZE; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
138 $b += $res{$veid}{'kmemsize'}->[$LIM]; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
139 foreach my $sb (@allsocketbuf) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
140 $b += $res{$veid}{$sb}->[$LIM]; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
141 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
142 $sum += $b; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
143 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
144 print "RAM+swap commitment: ", &pretty($sum / ($ram+$swap)); |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
145 print " ( <0.8 low; <1 ok; >1 not recommended)\n"; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
146 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
147 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
148 ## allocations |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
149 $sum=0; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
150 foreach my $veid (keys %res) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
151 my $b = $res{$veid}{'privvmpages'}->[$LIM] * $PAGESIZE; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
152 $b += $res{$veid}{'kmemsize'}->[$LIM]; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
153 foreach my $sb (@allsocketbuf) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
154 $b += $res{$veid}{$sb}->[$LIM]; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
155 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
156 $sum += $b; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
157 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
158 print "RAM+swap allocations: ", &pretty($sum / ($ram+$swap)); |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
159 print " ( <1.5 low; <4 ok; >4 not recommended [oom])\n"; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
160 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
161 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
162 ############################### |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
163 ####### per VE configs |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
164 ############################### |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
165 foreach my $veid (sort { $a <=> $b } keys %res) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
166 # <numproc> should be average process num |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
167 &compare( $veid, $res{$veid}{'kmemsize'}->[$BAR], |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
168 40*1024*$res{$veid}{'numproc'}->[$CUR] + $res{$veid}{'dcachesize'}->[$LIM], |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
169 "kmemsize(bar)", "numproc~dcachesize", "kmemsize low for # of processes" ); |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
170 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
171 &compare( $veid, $res{$veid}{'privvmpages'}->[$BAR], $res{$veid}{'vmguarpages'}->[$BAR], |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
172 "privvmpages","vmguarpages", "mem alloc less than guarantee" ); |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
173 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
174 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
175 &compare( $veid, $res{$veid}{'tcpsndbuf'}->[$LIM] - $res{$veid}{'tcpsndbuf'}->[$BAR], |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
176 2.5*1024*$res{$veid}{'numtcpsock'}->[$LIM], |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
177 "tcpsndbuf(lim-bar)", "numtcpsock(lim{bytes})", "tcp may hang"); |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
178 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
179 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
180 &compare( $veid, $res{$veid}{'othersockbuf'}->[$LIM] - $res{$veid}{'othersockbuf'}->[$BAR], |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
181 2.5*1024*$res{$veid}{'numothersock'}->[$LIM], |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
182 "othersockbuf(lim-bar)", "numothersock{bytes}", "othersock may hang"); |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
183 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
184 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
185 &compare( $veid, $res{$veid}{'tcprcvbuf'}->[$LIM] - $res{$veid}{'tcprcvbuf'}->[$BAR], |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
186 2.5*1024*$res{$veid}{'numothersock'}->[$LIM], |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
187 "tcprcvbuf(lim-bar)","numothersock{bytes}","may slow tcp" ); |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
188 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
189 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
190 if( $res{$veid}{'tcprcvbuf'}->[$BAR] < 65535 ) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
191 print "$veid: tcprcvbuf too low (<64k)\n"; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
192 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
193 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
194 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
195 if( $res{$veid}{'tcpsndbuf'}->[$BAR] < 65535 ) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
196 print "$veid: tcpsndbuf too low (<64k)\n"; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
197 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
198 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
199 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
200 if( $res{$veid}{'dgramrcvbuf'}->[$BAR] < 131200 ) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
201 print "$veid: dgramrcvbuf too low (<129k)\n"; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
202 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
203 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
204 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
205 if( $res{$veid}{'othersockbuf'}->[$BAR] < 131200 ) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
206 print "$veid: othersockbuf too low (<129k)\n"; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
207 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
208 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
209 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
210 # numfile < avgnumproc*32 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
211 # ... |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
212 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
213 if( $res{$veid}{'dcachesize'}->[$BAR] < |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
214 $res{$veid}{'numfile'}->[$MAX] * 384 ) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
215 print "$veid: dcachesize likely low for dentry and inode allocs\n"; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
216 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
217 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
218 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
219 foreach my $param (keys %{$res{$veid}}) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
220 &compare( $veid, $res{$veid}{$param}->[$LIM], $res{$veid}{$param}->[$BAR], |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
221 "limit", "barrier", "problem with $param" ); |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
222 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
223 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
224 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
225 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
226 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
227 sub compare { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
228 my ($veid, $large, $small, $ltext, $stext, $text) = @_; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
229 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
230 if( $large < $small ) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
231 # bad... |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
232 print "VE $veid: $text ($ltext=$large < $stext=$small)\n"; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
233 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
234 return; |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
235 } |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
236 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
237 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
238 |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
239 sub pretty($) { |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
240 return sprintf("%6.4f", shift); |
c2cff30df6dc
Add openvz_checker.pl (24:1c29ac915688) form local repo
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
241 } |