• M
    Make the benchmark scripts configurable and add tests · 99ec2412
    Mark Callaghan 提交于
    Summary:
    This makes run_flash_bench.sh configurable. Previously it was hardwired for 1B keys and tests
    ran for 12 hours each. That kept me from using it. This makes it configuable, adds more tests,
    makes the duration per-test configurable and refactors the test scripts.
    
    Adds the seekrandomwhilemerging test to db_bench which is the same as seekrandomwhilewriting except
    the writer thread does Merge rather than Put.
    
    Forces the stall-time column in compaction IO stats to use a fixed format (H:M:S) which makes
    it easier to scrape and parse. Also adds an option to AppendHumanMicros to force a fixed format.
    Sometimes automation and humans want different format.
    
    Calls thread->stats.AddBytes(bytes); in db_bench for more tests to get the MB/sec summary
    stats in the output at test end.
    
    Adds the average ingest rate to compaction IO stats. Output now looks like:
    https://gist.github.com/mdcallag/2bd64d18be1b93adc494
    
    More information on the benchmark output is at https://gist.github.com/mdcallag/db43a58bd5ac624f01e1
    
    For benchmark.sh changes default RocksDB configuration to reduce stalls:
    * min_level_to_compress from 2 to 3
    * hard_rate_limit from 2 to 3
    * max_grandparent_overlap_factor and max_bytes_for_level_multiplier from 10 to 8
    * L0 file count triggers from 4,8,12 to 4,12,20 for (start,stall,stop)
    
    Task ID: #6596829
    
    Blame Rev:
    
    Test Plan:
    run tools/run_flash_bench.sh
    
    Revert Plan:
    
    Database Impact:
    
    Memcache Impact:
    
    Other Notes:
    
    EImportant:
    
    - begin *PUBLIC* platform impact section -
    Bugzilla: #
    - end platform impact -
    
    Reviewers: igor
    
    Reviewed By: igor
    
    Subscribers: dhruba
    
    Differential Revision: https://reviews.facebook.net/D36075
    99ec2412
benchmark.sh 9.8 KB