I'm lukewarm of this series, but I've got a few comments on it as well as some questions below. - In nbdkit we have a function tvdiff_usec (see common/include/tvdiff.h). Maybe we should use that instead of microtime? - Rather than having a single test that does multiple runs (and so runs for a very long time), it's better to have multiple tests because they can run in parallel. This is how it could be done (but see also my comment about benchmarks below). * Copy original tests/synch-parallel.sh to tests/synch-parallel-conn-1-request-4096.sh tests/synch-parallel-conn-1-request-262144.sh etc. (Or choose better names) * Each test does: CONNECTIONS=1 REQUEST_SIZE=4096 ./synch-parallel.sh (etc) * Original synch-parallel.sh is unchanged, but remove it from TESTS * Add the new scripts to TESTS On Sun, Nov 14, 2021 at 09:21:39AM +0200, Nir Soffer wrote:
I'm working on an application using the sync API. In my tests I see best read throughput with 2 nbd connections which is unexpected.
I'm interested in why you're using the synchronous API. I think it'll inevitably be slower than using the asynch API because you can never have multiple requests on a single TCP connection. ...
- The test scripts is much slower now (120 seconds instead of 10). We need to to separate the benchmark, running many combinations (synch-parallel-bench.sh) and the test, running one combination (sync-parallel.sh).
This is too long for tests. I think there are really two conflicting requirements - you want to benchmark the synchronous API, which is a worthwhile but separate goal from testing that things are working. Should we consider having benchmarks in a separate directory or even a separate git repo? (Separate repo is what I did for libguestfs). Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW