Question about pmem benchmarking

29 views
Skip to first unread message

steve

unread,
Jul 25, 2020, 5:36:51 PM7/25/20
to pmem
Hi all,

I'm running some of the pmem benchmarks but am not sure exactly how to interpret I'm seeing.

When I run this:

./pmembench map_insert -f /mnt/PM0/testfile -d 10 -r 1000 -T hashmap_atomic

and then

./pmembench map_get -f /mnt/PM0/testfile -d 10 -r 1000 -T hashmap_atomic

I get

total-avg[sec];ops-per-second[1/sec];total-max[sec];total-min[sec];total-median[sec];total-std-dev[sec];latency-avg[nsec];latency-min[nsec];latency-max[nsec];latency-std-dev[nsec];latency-pctl-50.0%[nsec];latency-pctl-99.0%[nsec];latency-pctl-99.9%[nsec];threads;ops-per-thread;data-size;seed;repeats;thread-affinity;main-affinity;min-exe-time;type;seed;max-key;external-tx;alloc

0.000003;361878.031181;0.000018;0.000001;0.000003;0.000001;2735;1200;18400;705.747072;2700;3500;18400;1;1;10;0;1000;false;-1;0;hashmap_atomic;2504414753;0;false;false

I understand the ops-per-second and latency figures, but how many records is this actually storing, how big are the records, and what do the keys look
like?

Thanks
------------
Steve Heller

ppbb...@gmail.com

unread,
Jul 27, 2020, 2:58:44 AM7/27/20
to pmem
Those are microbenchmarks of libpmemobj, and more specifically, they are microbenchmarks that combine allocations and transactions. The sizes of entries inside of the various maps are not relevant for what we use it for and are simply hardcoded. The same is true for key distribution. If you want to learn those details, you have to look into the source code for the map benchmarks (https://github.com/pmem/pmdk/blob/master/src/benchmarks/map_bench.cpp).
Reply all
Reply to author
Forward
0 new messages