Blame SOURCES/0004-vddk-Document-troubleshooting-performance-problems.patch

6661d0
From ae618b75f2b158b4563ab94371b01b2951b1bfec Mon Sep 17 00:00:00 2001
7084e2
From: "Richard W.M. Jones" <rjones@redhat.com>
7084e2
Date: Fri, 22 Oct 2021 18:00:27 +0100
7084e2
Subject: [PATCH] vddk: Document troubleshooting performance problems
7084e2
7084e2
Document how to use -D vddk.stats=1 to diagnose performance problems
7084e2
with VDDK.
7084e2
7084e2
(cherry picked from commit e491978c193f49010cc28ad344d0fb3c1b5ede35)
7084e2
---
7084e2
 plugins/vddk/nbdkit-vddk-plugin.pod | 57 +++++++++++++++++++++++++++++
7084e2
 1 file changed, 57 insertions(+)
7084e2
7084e2
diff --git a/plugins/vddk/nbdkit-vddk-plugin.pod b/plugins/vddk/nbdkit-vddk-plugin.pod
7084e2
index e53d3286..5a426135 100644
7084e2
--- a/plugins/vddk/nbdkit-vddk-plugin.pod
7084e2
+++ b/plugins/vddk/nbdkit-vddk-plugin.pod
7084e2
@@ -475,6 +475,63 @@ and restarting the C<hostd> service:
7084e2
 
7084e2
 For more information see L<https://bugzilla.redhat.com/1614276>.
7084e2
 
7084e2
+=head2 Troubleshooting performance problems
7084e2
+
7084e2
+VDDK has very uneven performance with some operations being very slow.
7084e2
+This plugin has options to allow you to debug performance issues.  If
7084e2
+your application has a debug or diagnostic setting, add the following
7084e2
+nbdkit command line options:
7084e2
+
7084e2
+ -v -D nbdkit.backend.datapath=0 -D vddk.datapath=0 -D vddk.stats=1
7084e2
+
7084e2
+C<-v> enables verbose messages and the two datapath options I<disable>
7084e2
+the very verbose per-read/-write messages.  C<-D vddk.stats=1> enables
7084e2
+a summary when nbdkit exits of the cumulative time taken in each VDDK
7084e2
+function, the number of times each function was called, and (for read
7084e2
+and write) the number of bytes transferred.  An example of what those
7084e2
+stats look like can be found here:
7084e2
+L<https://gitlab.com/nbdkit/nbdkit/-/commit/5c80f0d290db45a679d55baf37ff39bacb8ce7ec>
7084e2
+
7084e2
+You can interpret the stats as follows:
7084e2
+
7084e2
+=over 4
7084e2
+
7084e2
+=item C<Read>
7084e2
+
7084e2
+The cumulative time spent waiting for VDDK to return from
7084e2
+C<VixDiskLib_Read> calls, the number of times this function was
7084e2
+called, and the total bytes read.  You can use this to determine the
7084e2
+read bandwidth to the VMware server.
7084e2
+
7084e2
+=item C<Write>
7084e2
+
7084e2
+=item C<Flush>
7084e2
+
7084e2
+Same as above, but for writing and flushing writes.
7084e2
+
7084e2
+=item C<QueryAllocatedBlocks>
7084e2
+
7084e2
+This call is used to query information about the sparseness of the
7084e2
+remote disk.  It is only available in VDDK E<ge> 6.7.  The call is
7084e2
+notably very slow in all versions of VMware we have tested.
7084e2
+
7084e2
+=item C<Open>
7084e2
+
7084e2
+=item C<Close>
7084e2
+
7084e2
+=item C<ConnectEx>
7084e2
+
7084e2
+=item C<Disconnect>
7084e2
+
7084e2
+=item C<InitEx>
7084e2
+
7084e2
+=item C<Exit>
7084e2
+
7084e2
+The cumulative time spent connecting and disconnecting from the VMware
7084e2
+server, which can also be very slow.
7084e2
+
7084e2
+=back
7084e2
+
7084e2
 =head1 SUPPORTED VERSIONS OF VDDK
7084e2
 
7084e2
 This plugin requires VDDK E<ge> 5.5.5, which in turn means that it
7084e2
-- 
7084e2
2.31.1
7084e2