my $merr = $@;
$self->log('info', "migrate uri => $ruri failed: $merr") if $merr;
- my $lstat = 0;
+ my $last_mem_transferred = 0;
my $usleep = 1000000;
my $i = 0;
my $err_count = 0;
my $downtimecounter = 0;
while (1) {
$i++;
- my $avglstat = $lstat ? $lstat / $i : 0;
+ my $avglstat = $last_mem_transferred ? $last_mem_transferred / $i : 0;
usleep($usleep);
$merr = undef;
$err_count = 0;
+ my $memstat = $stat->{ram};
+
if ($status eq 'completed') {
my $delay = time() - $start;
if ($delay > 0) {
last;
}
- if ($stat->{ram}->{transferred} ne $lstat) {
- my $trans = $stat->{ram}->{transferred} || 0;
- my $rem = $stat->{ram}->{remaining} || 0;
- my $total = $stat->{ram}->{total} || 0;
+ if ($memstat->{transferred} ne $last_mem_transferred) {
+ my $trans = $memstat->{transferred} || 0;
+ my $rem = $memstat->{remaining} || 0;
+ my $total = $memstat->{total} || 0;
my $xbzrle = $stat->{"xbzrle-cache"} || {};
my $xbzrlecachesize = $xbzrle->{"cache-size"} || 0;
$self->log('info', "migration xbzrle cachesize: ${xbzrlecachesize} transferred ${xbzrlebytes} pages ${xbzrlepages} cachemiss ${xbzrlecachemiss} overflow ${xbzrleoverflow}");
}
- if (($lastrem && $rem > $lastrem ) || ($rem == 0)) {
+ if (($lastrem && $rem > $lastrem) || ($rem == 0)) {
$downtimecounter++;
}
$lastrem = $rem;
}
}
- $lstat = $stat->{ram}->{transferred};
+ $last_mem_transferred = $memstat->{transferred};
}
if ($self->{storage_migration}) {