• H
    Block cache tracing: Fix minor bugs with downsampling and some benchmark results. (#5473) · bcfc53b4
    haoyuhuang 提交于
    Summary:
    As the code changes for block cache tracing are almost complete, I did a benchmark to compare the performance when block cache tracing is enabled/disabled.
    
     With 1% downsampling ratio, the performance overhead of block cache tracing is negligible. When we trace all block accesses, the throughput drops by 6 folds with 16 threads issuing random reads and all reads are served in block cache.
    
    Setup:
    RocksDB:    version 6.2
    Date:       Mon Jun 17 17:11:13 2019
    CPU:        24 * Intel Core Processor (Skylake)
    CPUCache:   16384 KB
    Keys:       20 bytes each
    Values:     100 bytes each (100 bytes after compression)
    Entries:    10000000
    Prefix:    20 bytes
    Keys per prefix:    0
    RawSize:    1144.4 MB (estimated)
    FileSize:   1144.4 MB (estimated)
    Write rate: 0 bytes/second
    Read rate: 0 ops/second
    Compression: NoCompression
    Compression sampling rate: 0
    Memtablerep: skip_list
    Perf Level: 1
    
    I ran the readrandom workload for 1 minute. Detailed throughput results:  (ops/second)
    Sample rate 0: no block cache tracing.
    Sample rate 1: trace all block accesses.
    Sample rate 100: trace accesses 1% blocks.
    1 thread |   |   |  -- | -- | -- | --
    Sample rate | 0 | 1 | 100
    1 MB block cache size | 13,094 | 13,166 | 13,341
    10 GB block cache size | 202,243 | 188,677 | 229,182
    
    16 threads |   |   |  -- | -- | -- | --
    Sample rate | 0 | 1 | 100
    1 MB block cache size | 208,761 | 178,700 | 201,872
    10 GB block cache size | 2,645,996 | 426,295 | 2,587,605
    Pull Request resolved: https://github.com/facebook/rocksdb/pull/5473
    
    Differential Revision: D15869479
    
    Pulled By: HaoyuHuang
    
    fbshipit-source-id: 7ae802abe84811281a6af8649f489887cd7c4618
    bcfc53b4
block_cache_trace_analyzer.cc 23.6 KB