rocksdb/build_tools
Radheshyam Balasundaram f0660d5253 Adding NUMA support to db_bench tests
Summary:
Changes:
- Adding numa_aware flag to db_bench.cc
- Using numa.h library to bind memory and cpu of threads to a fixed NUMA node
Result: There seems to be no significant change in the micros/op time with numa_aware enabled. I also tried this with other implementations, including a combination of pthread_setaffinity_np, sched_setaffinity and set_mempolicy methods. It'd be great if someone could point out where I'm going wrong and if we can achieve a better micors/op.

Test Plan:
Ran db_bench tests using following command:
./db_bench --db=/mnt/tmp --num_levels=6 --key_size=20 --prefix_size=20 --keys_per_prefix=0 --value_size=100 --block_size=4096 --cache_size=17179869184 --cache_numshardbits=6 --compression_type=none --compression_ratio=1 --min_level_to_compress=-1 --disable_seek_compaction=1 --hard_rate_limit=2 --write_buffer_size=134217728 --max_write_buffer_number=2 --level0_file_num_compaction_trigger=8 --target_file_size_base=134217728 --max_bytes_for_level_base=1073741824 --disable_wal=0 --wal_dir=/mnt/tmp --sync=0 --disable_data_sync=1 --verify_checksum=1 --delete_obsolete_files_period_micros=314572800 --max_grandparent_overlap_factor=10 --max_background_compactions=4 --max_background_flushes=0 --level0_slowdown_writes_trigger=16 --level0_stop_writes_trigger=24 --statistics=0 --stats_per_interval=0 --stats_interval=1048576 --histogram=0 --use_plain_table=1 --open_files=-1 --mmap_read=1 --mmap_write=0 --memtablerep=prefix_hash --bloom_bits=10 --bloom_locality=1 --perf_level=0 --duration=300 --benchmarks=readwhilewriting --use_existing_db=1 --num=157286400 --threads=24 --writes_per_second=10240 --numa_aware=[False/True]

The tests were run in private devserver with 24 cores and the db was prepopulated using filluniquerandom test. The tests resulted in 0.145 us/op with numa_aware=False and 0.161 us/op with numa_aware=True.

Reviewers: sdong, yhchiang, ljin, igor

Reviewed By: ljin, igor

Subscribers: igor, leveldb

Differential Revision: https://reviews.facebook.net/D19353
2014-07-07 10:53:31 -07:00
..
build_detect_platform Adding NUMA support to db_bench tests 2014-07-07 10:53:31 -07:00
build_detect_version Refactor build_tools/build_detect_version 2014-01-06 08:44:43 +02:00
fbcode.clang31.sh Remove libevent 2013-11-18 21:33:16 -08:00
fbcode.gcc471.sh Make RocksDB work with newer gflags 2014-05-08 17:25:13 -07:00
fbcode.gcc481.sh Adding NUMA support to db_bench tests 2014-07-07 10:53:31 -07:00
format-diff.sh Misc cleanup on performance branch 2014-01-17 14:26:29 -08:00
mac-install-gflags.sh escaped the special characters and added a dot 2014-06-24 00:14:02 -05:00
make_new_version.sh Create new branch instead of tag in make_new_version 2014-04-29 13:22:34 -04:00
regression_build_test.sh Remove seek compaction 2014-06-20 10:23:02 +02:00
valgrind_test.sh Clean up the Makefile and the build scripts 2013-08-15 12:59:45 -07:00