mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-05-01 11:23:35 +00:00
live migration: reduce sleep when remaining memory is low
Reduce sleep to 0.3s when remaining memory is lower than the average transfert in 1 iteration. Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
This commit is contained in:
parent
f5eb281ad3
commit
e52bd94c7e
@ -9,6 +9,7 @@ use PVE::INotify;
|
||||
use PVE::Cluster;
|
||||
use PVE::Storage;
|
||||
use PVE::QemuServer;
|
||||
use Time::HiRes qw( usleep );
|
||||
|
||||
use base qw(PVE::AbstractMigrate);
|
||||
|
||||
@ -330,8 +331,13 @@ sub phase2 {
|
||||
my $merr = $@;
|
||||
|
||||
my $lstat = 0;
|
||||
my $usleep = 2000000;
|
||||
my $i = 0;
|
||||
while (1) {
|
||||
sleep (2);
|
||||
$i++;
|
||||
my $avglstat = $lstat/$i if $lstat;
|
||||
|
||||
usleep ($usleep);
|
||||
my $stat = PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "query-migrate");
|
||||
if ($stat->{status} =~ m/^(active|completed|failed|cancelled)$/im) {
|
||||
$merr = undef;
|
||||
@ -357,6 +363,8 @@ sub phase2 {
|
||||
my $trans = $stat->{ram}->{transferred} || 0;
|
||||
my $rem = $stat->{ram}->{remaining} || 0;
|
||||
my $total = $stat->{ram}->{total} || 0;
|
||||
#reduce sleep if remainig memory if lower than the everage transfert
|
||||
$usleep = 300000 if $rem < $avglstat;
|
||||
|
||||
$self->log('info', "migration status: $stat->{status} (transferred ${trans}, " .
|
||||
"remaining ${rem}), total ${total})");
|
||||
|
Loading…
Reference in New Issue
Block a user