Comment 0 for bug 2043553

Revision history for this message
Igor (xrevolver) wrote :

When set is 0 the memaslap populates server/s with keys/values--performs a lot of SET operations.
Right after the population stage the actual test begins and memaslap performs a lot of only GET operations (only GETs as set is 0).
However, when memaslap generates statistics for the test, it counts all the SET and the GET operations, including the SET operations of the population stage. As result, it reports wrong throughput and
transaction/second.

In ms_print_memslap_stats() it prints the statistics as follows:
(ms_stats.cmd_get+ms_stats.cmd_set)/test_time = transaction/second
(ms_stats.bytes_written + ms_stats.read)/test_time = throughput

And of course, these numbers are wrong as they include the SET operations and the written bytes of the population stage while test time is the time of the GET operations.

Attached is an example report of the test of 128 bytes values, set is 0, 16 threads, and test ran for 65 seconds. Note, that the population stage took around 16 minutes---see the huge cmd_set counter.
It reports 4M transactions/second and 659 MB/s when in fact the real performance is ~500K transactions/second and ~55 MB/s.