From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 876A861DDB for ; Wed, 19 Aug 2020 17:03:03 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 7BB7725D15 for ; Wed, 19 Aug 2020 17:02:33 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [212.186.127.180]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 5B26425CE8 for ; Wed, 19 Aug 2020 17:02:31 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 19F724333B for ; Wed, 19 Aug 2020 17:02:31 +0200 (CEST) From: Stefan Reiter To: pve-devel@lists.proxmox.com Date: Wed, 19 Aug 2020 17:02:02 +0200 Message-Id: <20200819150204.9178-4-s.reiter@proxmox.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200819150204.9178-1-s.reiter@proxmox.com> References: <20200819150204.9178-1-s.reiter@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.048 Adjusted score from AWL reputation of From: address KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [qemuserver.pm] Subject: [pve-devel] [PATCH v2 qemu-server 3/5] vzdump: display actually uploaded chunks as 'write' speed X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Aug 2020 15:03:03 -0000 Previously 'read' and 'write' would always show the same value, which is of little use. Change it so 'write' excludes reused bytes, thus displaying the actual upload speed. $last_reused needs to be initialized to contain reused data from 'clean' dirty bitmaps to ensure the first output line is correct. Signed-off-by: Stefan Reiter --- PVE/VZDump/QemuServer.pm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/PVE/VZDump/QemuServer.pm b/PVE/VZDump/QemuServer.pm index 6420bf4..5edc62b 100644 --- a/PVE/VZDump/QemuServer.pm +++ b/PVE/VZDump/QemuServer.pm @@ -306,7 +306,7 @@ my $query_backup_status_loop = sub { my $starttime = time (); my $last_time = $starttime; - my ($last_percent, $last_total, $last_target, $last_zero, $last_transferred) = (-1, 0, 0, 0, 0); + my ($last_percent, $last_total, $last_target, $last_zero, $last_transferred) = (-1, 0, 0, 0, 0); my ($transferred, $reused); my $get_mbps = sub { @@ -317,6 +317,7 @@ my $query_backup_status_loop = sub { }; my $target = 0; + my $last_reused = 0; my $has_query_bitmap = 0; if (defined($pbs_features) && $pbs_features->{'query-bitmap-info'}) { $has_query_bitmap = 1; @@ -328,6 +329,7 @@ my $query_backup_status_loop = sub { $drive =~ s/^drive-//; # for consistency $self->loginfo("$drive: $text"); $target += $info->{dirty}; + $last_reused += $info->{size} - $info->{dirty}; } } @@ -347,7 +349,13 @@ my $query_backup_status_loop = sub { my $duration = $ctime - $starttime; my $rbytes = $transferred - $last_transferred; - my $wbytes = $rbytes - ($zero - $last_zero); + my $wbytes; + if ($reused) { + # reused includes zero bytes for PBS + $wbytes = $rbytes - ($reused - $last_reused); + } else { + $wbytes = $rbytes - ($zero - $last_zero); + } my $timediff = ($ctime - $last_time) || 1; # fixme my $mbps_read = $get_mbps->($rbytes, $timediff); @@ -379,6 +387,7 @@ my $query_backup_status_loop = sub { $last_zero = $zero if $zero; $last_transferred = $transferred if $transferred; $last_time = $ctime; + $last_reused = $reused; } sleep(1); } -- 2.20.1