diff options
Diffstat (limited to 'src/third_party/wiredtiger/bench/wtperf/runners')
50 files changed, 1199 insertions, 0 deletions
diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/evict-btree.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/evict-btree.wtperf new file mode 100644 index 00000000000..f8c270f3d1f --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/evict-btree.wtperf @@ -0,0 +1,8 @@ +# wtperf options file: evict btree configuration +conn_config="cache_size=50M" +table_config="type=file" +icount=10000000 +report_interval=5 +run_time=120 +populate_threads=1 +threads=((count=16,reads=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/evict-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/evict-lsm.wtperf new file mode 100644 index 00000000000..962f6a60201 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/evict-lsm.wtperf @@ -0,0 +1,9 @@ +# wtperf options file: evict lsm configuration +conn_config="cache_size=50M,lsm_manager=(worker_thread_max=6)" +table_config="type=lsm,os_cache_dirty_max=16MB" +compact=true +icount=10000000 +report_interval=5 +run_time=120 +populate_threads=1 +threads=((count=16,reads=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/fruit-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/fruit-lsm.wtperf new file mode 100644 index 00000000000..a34c74d5e08 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/fruit-lsm.wtperf @@ -0,0 +1,22 @@ +# wtperf options file: simulate riak and its test1 and test2 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# +conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=600),log=(enabled=true),transaction_sync=(enabled=true,method=none),checkpoint=(wait=180),lsm_manager=(worker_thread_max=12)" +#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=600)" +#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024" +compact=true +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_size=100MB),type=lsm,leaf_page_max=16K,leaf_item_max=4K,os_cache_dirty_max=16MB" +icount=25000000 +key_sz=40 +value_sz=800 +#max_latency=2000 +pareto=true +populate_threads=20 +report_interval=10 +random_value=true +run_time=18000 +sample_interval=10 +table_count=8 +threads=((count=20,read=6,update=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/fruit-short.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/fruit-short.wtperf new file mode 100644 index 00000000000..a2ea535b4c5 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/fruit-short.wtperf @@ -0,0 +1,20 @@ +# wtperf options file: simulate riak and its test1 and test2 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# +#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=600)" +conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)" +compact=true +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_size=100MB),type=lsm,leaf_page_max=16K" +icount=25000000 +key_sz=40 +value_sz=800 +max_latency=2000 +pareto=true +populate_threads=20 +report_interval=10 +random_value=true +run_time=1800 +sample_interval=10 +threads=((count=20,read=6,update=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/get_ckpt.py b/src/third_party/wiredtiger/bench/wtperf/runners/get_ckpt.py new file mode 100755 index 00000000000..38688870e7f --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/get_ckpt.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python +# +# Public Domain 2008-2014 WiredTiger, Inc. +# +# This is free and unencumbered software released into the public domain. +# +# Anyone is free to copy, modify, publish, use, compile, sell, or +# distribute this software, either in source code form or as a compiled +# binary, for any purpose, commercial or non-commercial, and by any +# means. +# +# In jurisdictions that recognize copyright laws, the author or authors +# of this software dedicate any and all copyright interest in the +# software to the public domain. We make this dedication for the benefit +# of the public at large and to the detriment of our heirs and +# successors. We intend this dedication to be an overt act of +# relinquishment in perpetuity of all present and future rights to this +# software under copyright law. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. +# + +# Generate input data to GNUplot from checkpoint information in a wtperf run + +import sys + +time = 0 # seconds +print "%d, %d" % (0, 0) + +for line in sys.stdin: + if line.strip().endswith('secs'): + time += int(line.split(' ')[7]) + if line.startswith('Finished checkpoint'): + duration = (int(line.split(' ')[3]) + 500) / 1000 # convert ms to secs + print "%d, %d" % (time - duration, 1) + print "%d, %d" % (time, 0) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/insert-rmw.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/insert-rmw.wtperf new file mode 100644 index 00000000000..50db0baa0d1 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/insert-rmw.wtperf @@ -0,0 +1,9 @@ +# wtperf options file: Test the insert-rmw functionality +conn_config="cache_size=500MB" +table_config="type=lsm" +icount=500000 +insert_rmw=true +report_interval=5 +run_time=120 +populate_threads=1 +threads=((count=4,inserts=1),(count=2,reads=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/large-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/large-lsm.wtperf new file mode 100644 index 00000000000..4b41b3fc84a --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/large-lsm.wtperf @@ -0,0 +1,11 @@ +# wtperf options file: large lsm configuration +conn_config="cache_size=20G,mmap=false,lsm_manager=(worker_thread_max=8)" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_max=5GB,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +compact=true +compression="snappy" +icount=250000000 +report_interval=5 +run_time=1200 +populate_threads=1 +sample_interval=10 +threads=((count=16,reads=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/long-txn-btree.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/long-txn-btree.wtperf new file mode 100644 index 00000000000..31f264b1536 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/long-txn-btree.wtperf @@ -0,0 +1,9 @@ +# wtperf options file: run autocommit and long transactions in parallel. +conn_config="cache_size=500MB" +table_config="type=file" +icount=5000000 +report_interval=5 +run_time=120 +populate_threads=1 +# Have a long running reader, throttled to a max of 5000 ops per second. +threads=((count=4,reads=1,updates=1),(count=1,reads=1,ops_per_txn=100000,throttle=5000)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/long-txn-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/long-txn-lsm.wtperf new file mode 100644 index 00000000000..cc5a6b77a17 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/long-txn-lsm.wtperf @@ -0,0 +1,9 @@ +# wtperf options file: run autocommit and long transactions in parallel. +conn_config="cache_size=500MB" +table_config="lsm=(chunk_size=5MB),type=lsm,os_cache_dirty_max=16MB" +icount=5000000 +report_interval=5 +run_time=120 +populate_threads=1 +# Have a long running reader, throttled to a max of 5000 ops per second. +threads=((count=4,reads=1,updates=1),(count=1,reads=1,ops_per_txn=100000,throttle=5000)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/medium-btree.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/medium-btree.wtperf new file mode 100644 index 00000000000..92c63e73480 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/medium-btree.wtperf @@ -0,0 +1,8 @@ +# wtperf options file: medium btree configuration +conn_config="cache_size=1G" +table_config="type=file" +icount=50000000 +report_interval=5 +run_time=120 +populate_threads=1 +threads=((count=16,reads=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/medium-lsm-async.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/medium-lsm-async.wtperf new file mode 100644 index 00000000000..1d729bcee23 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/medium-lsm-async.wtperf @@ -0,0 +1,9 @@ +# wtperf options file: medium lsm configuration using async operations +conn_config="cache_size=1G,lsm_manager=(worker_thread_max=6)" +async_threads=10 +table_config="lsm=(chunk_size=100MB),type=lsm,os_cache_dirty_max=16MB" +icount=50000000 +report_interval=5 +run_time=120 +populate_threads=1 +threads=((count=5,reads=1,updates=2)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/medium-lsm-compact.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/medium-lsm-compact.wtperf new file mode 100644 index 00000000000..0d4a6f965d1 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/medium-lsm-compact.wtperf @@ -0,0 +1,9 @@ +# wtperf options file: medium lsm configuration +conn_config="cache_size=1G,lsm_manager=(worker_thread_max=6)" +table_config="lsm=(chunk_size=100MB,chunk_max=1TB),type=lsm,os_cache_dirty_max=16MB" +icount=50000000 +populate_threads=1 +compact=true +threads=((count=16,read=1)) +run_time=120 +report_interval=5 diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/medium-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/medium-lsm.wtperf new file mode 100644 index 00000000000..3e676dc0b70 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/medium-lsm.wtperf @@ -0,0 +1,8 @@ +# wtperf options file: medium lsm configuration +conn_config="cache_size=1G,lsm_manager=(worker_thread_max=6)" +table_config="lsm=(chunk_size=100MB),type=lsm,os_cache_dirty_max=16MB" +icount=50000000 +report_interval=5 +run_time=120 +populate_threads=1 +threads=((count=16,reads=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/medium-multi-lsm-noprefix.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/medium-multi-lsm-noprefix.wtperf new file mode 100644 index 00000000000..413c16075d3 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/medium-multi-lsm-noprefix.wtperf @@ -0,0 +1,10 @@ +# wtperf options file: medium lsm configuration, with multiple tables. +conn_config="cache_size=1G,lsm_manager=(worker_thread_max=8)" +table_config="lsm=(chunk_size=100MB,chunk_max=1TB),type=lsm,prefix_compression=false,os_cache_dirty_max=16MB" +icount=50000000 +populate_threads=1 +compact=true +threads=((count=8,read=1),(count=8,update=1)) +run_time=180 +report_interval=5 +table_count=4 diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/medium-multi-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/medium-multi-lsm.wtperf new file mode 100644 index 00000000000..99b7b49aebd --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/medium-multi-lsm.wtperf @@ -0,0 +1,10 @@ +# wtperf options file: medium lsm configuration, with multiple tables. +conn_config="cache_size=1G,lsm_manager=(worker_thread_max=8)" +table_config="lsm=(chunk_size=100MB,chunk_max=1TB),type=lsm,os_cache_dirty_max=16MB" +icount=50000000 +populate_threads=1 +compact=true +threads=((count=8,read=1),(count=8,update=1)) +run_time=180 +report_interval=5 +table_count=4 diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/multi-btree-long.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/multi-btree-long.wtperf new file mode 100644 index 00000000000..c5341f96c38 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/multi-btree-long.wtperf @@ -0,0 +1,16 @@ +# A btree configuration with ten databases, each with a single reader and +# single writer. Throttled to 4000 ops/second. +# This configuration is set to run for 10 hours. +conn_config="cache_size=100MB,log=(enabled=false)" +database_count=10 +table_config="leaf_page_max=4k,internal_page_max=16k,leaf_item_max=1433,internal_item_max=3100,type=file" +icount=50000 +populate_threads=1 +random_range=10000000 +checkpoint_interval=120 +checkpoint_threads=1 +report_interval=5 +run_time=36000 +threads=((count=1,throttle=1000,reads=1),(count=1,throttle=1000,inserts=1)) +value_sz=100 +warmup=10 diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/multi-btree.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/multi-btree.wtperf new file mode 100644 index 00000000000..e316dda9e88 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/multi-btree.wtperf @@ -0,0 +1,17 @@ +# wtperf options file: small btree multi-database configuration +# Original cache was 500MB. Shared cache is 500MB * database_count. +conn_config="shared_cache=(name=pool,size=2500MB,chunk=1M),log=(enabled=false)" +#conn_config="cache_size=250MB,log=(enabled=false)" +database_count=10 +table_config="leaf_page_max=4k,internal_page_max=16k,leaf_item_max=1433,internal_item_max=3100,type=file" +# Likewise, divide original icount by database_count. +icount=50000 +populate_threads=1 +random_range=100000000 +checkpoint_interval=20 +checkpoint_threads=1 +report_interval=5 +run_time=20 +threads=((count=2,reads=1),(count=2,inserts=1)) +value_sz=100 +warmup=10 diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/parallel-pop-btree.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/parallel-pop-btree.wtperf new file mode 100644 index 00000000000..5ec5c84e551 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/parallel-pop-btree.wtperf @@ -0,0 +1,9 @@ +# wtperf options file: Run populate thread multi-threaded and with groups +# of operations in each transaction. +conn_config="cache_size=200MB" +table_config="type=file" +transaction_config="isolation=snapshot" +icount=10000000 +report_interval=5 +populate_ops_per_txn=100 +populate_threads=5 diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/parallel-pop-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/parallel-pop-lsm.wtperf new file mode 100644 index 00000000000..41309fd07de --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/parallel-pop-lsm.wtperf @@ -0,0 +1,9 @@ +# wtperf options file: Run populate thread multi-threaded and with groups +# of operations in each transaction. +conn_config="cache_size=200MB" +table_config="type=lsm,os_cache_dirty_max=16MB" +transaction_config="isolation=snapshot" +icount=10000000 +report_interval=5 +populate_ops_per_txn=100 +populate_threads=5 diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/shared-cache-stress.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/shared-cache-stress.wtperf new file mode 100644 index 00000000000..87d14f4f5c1 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/shared-cache-stress.wtperf @@ -0,0 +1,12 @@ +# Stress out the shared cache. +conn_config="statistics=(none),shared_cache=(name=wt-cache,size=536870912,reserve=10MB,chunk=20MB,)" +table_config="allocation_size=4KB,key_gap=10,split_pct=75,internal_page_max=4KB,internal_key_truncate=false,prefix_compression=false,leaf_item_max=1433,type=file,internal_item_max=1433,exclusive=true,leaf_page_max=4KB,block_compressor=," +checkpoint_interval=100 +checkpoint_threads=1 +icount=50000 +random_range=500000 +report_interval=5 +run_time=600 +populate_threads=1 +threads=((count=1,inserts=1),(count=1,reads=1)) +database_count=25 diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/small-btree.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/small-btree.wtperf new file mode 100644 index 00000000000..5defd413fa6 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/small-btree.wtperf @@ -0,0 +1,8 @@ +# wtperf options file: small btree configuration +conn_config="cache_size=500MB" +table_config="type=file" +icount=500000 +report_interval=5 +run_time=120 +populate_threads=1 +threads=((count=8,reads=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/small-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/small-lsm.wtperf new file mode 100644 index 00000000000..1b00d18d76b --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/small-lsm.wtperf @@ -0,0 +1,8 @@ +# wtperf options file: small lsm configuration +conn_config="cache_size=500MB" +table_config="lsm=(chunk_size=5MB),type=lsm,os_cache_dirty_max=16MB" +icount=500000 +report_interval=5 +run_time=120 +populate_threads=1 +threads=((count=8,reads=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/test1-1b-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/test1-1b-lsm.wtperf new file mode 100644 index 00000000000..662a286970c --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/test1-1b-lsm.wtperf @@ -0,0 +1,18 @@ +# wtperf options file: simulate riak and its test1 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# +#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=60)" +conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)" +compact=true +compression="snappy" +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_max=5GB,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +icount=1000000000 +key_sz=40 +value_sz=1000 +max_latency=2000 +populate_threads=20 +report_interval=10 +random_value=true +sample_interval=10 diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/test1-2b-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/test1-2b-lsm.wtperf new file mode 100644 index 00000000000..2a3923e62ab --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/test1-2b-lsm.wtperf @@ -0,0 +1,18 @@ +# wtperf options file: simulate riak and its test1 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# +#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=60)" +conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)" +compact=true +compression="snappy" +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_max=20GB,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +icount=2000000000 +key_sz=40 +value_sz=1000 +max_latency=2000 +populate_threads=20 +report_interval=10 +random_value=true +sample_interval=10 diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/test1-500m-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/test1-500m-lsm.wtperf new file mode 100644 index 00000000000..91c7858a605 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/test1-500m-lsm.wtperf @@ -0,0 +1,18 @@ +# wtperf options file: simulate riak and its test1 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# +#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=60)" +conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)" +compact=true +compression="snappy" +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_max=5GB,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +icount=500000000 +key_sz=40 +value_sz=1000 +max_latency=2000 +populate_threads=20 +report_interval=10 +random_value=true +sample_interval=10 diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/test1-50m-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/test1-50m-lsm.wtperf new file mode 100644 index 00000000000..229455d62a1 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/test1-50m-lsm.wtperf @@ -0,0 +1,17 @@ +# wtperf options file: simulate riak and its test1 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# +#conn_config="cache_size=10G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=30),lsm_manager=(worker_thread_max=6)" +conn_config="cache_size=10G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)" +compact=true +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +icount=50000000 +key_sz=40 +value_sz=1000 +max_latency=2000 +populate_threads=10 +report_interval=10 +random_value=true +sample_interval=10 diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/test2-1b-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/test2-1b-lsm.wtperf new file mode 100644 index 00000000000..42452092dfc --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/test2-1b-lsm.wtperf @@ -0,0 +1,18 @@ +# wtperf options file: simulate riak and its test2 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# This test assumes that a test1 populate already completed and exists. +# +#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=60)" +conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)" +compression="snappy" +create=false +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_max=5GB,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +key_sz=40 +value_sz=1000 +max_latency=2000 +report_interval=10 +run_time=14400 +sample_interval=10 +threads=((count=20,reads=4,updates=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/test2-2b-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/test2-2b-lsm.wtperf new file mode 100644 index 00000000000..7fc1155bcb2 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/test2-2b-lsm.wtperf @@ -0,0 +1,18 @@ +# wtperf options file: simulate riak and its test2 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# This test assumes that a test1 populate already completed and exists. +# +#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=60)" +conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)" +compression="snappy" +create=false +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_max=20GB,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +key_sz=40 +value_sz=1000 +max_latency=2000 +report_interval=10 +run_time=14400 +sample_interval=10 +threads=((count=20,reads=4,updates=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/test2-500m-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/test2-500m-lsm.wtperf new file mode 100644 index 00000000000..c03f5041a4d --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/test2-500m-lsm.wtperf @@ -0,0 +1,18 @@ +# wtperf options file: simulate riak and its test2 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# This test assumes that a test1 populate already completed and exists. +# +#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=60)" +conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)" +create=false +compression="snappy" +sess_config="isolation=snapshot +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_max=5GB,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +key_sz=40 +value_sz=1000 +max_latency=2000 +report_interval=10 +run_time=14400 +sample_interval=10 +threads=((count=20,reads=4,updates=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/test2-50m-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/test2-50m-lsm.wtperf new file mode 100644 index 00000000000..51a06d84222 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/test2-50m-lsm.wtperf @@ -0,0 +1,17 @@ +# wtperf options file: simulate riak and its test2 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# This test assumes that a test1 populate already completed and exists. +# +#conn_config="cache_size=10G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=30)" +conn_config="cache_size=10G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)" +create=false +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +key_sz=40 +value_sz=1000 +max_latency=2000 +report_interval=10 +run_time=1440 +sample_interval=10 +threads=((count=10,reads=4,updates=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/test3-1b-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/test3-1b-lsm.wtperf new file mode 100644 index 00000000000..113b79bc9f9 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/test3-1b-lsm.wtperf @@ -0,0 +1,20 @@ +# wtperf options file: simulate riak and its test3 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# This test assumes that a test1 populate already completed and exists. +# +#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=60)" +conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=8)" +compression="snappy" +create=false +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_max=5GB,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +key_sz=40 +value_sz=1000 +max_latency=2000 +pareto=true +report_interval=10 +run_time=14400 +sample_interval=10 +#threads=((count=20,reads=1,updates=1)) +threads=((count=10,reads=1),(count=10,updates=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/test3-2b-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/test3-2b-lsm.wtperf new file mode 100644 index 00000000000..574cf54b109 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/test3-2b-lsm.wtperf @@ -0,0 +1,20 @@ +# wtperf options file: simulate riak and its test3 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# This test assumes that a test1 populate already completed and exists. +# +#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=60)" +conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=8)" +compression="snappy" +create=false +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_max=20GB,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +key_sz=40 +value_sz=1000 +max_latency=2000 +pareto=true +report_interval=10 +run_time=14400 +sample_interval=10 +#threads=((count=20,reads=1,updates=1)) +threads=((count=10,reads=1),(count=10,updates=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/test3-500m-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/test3-500m-lsm.wtperf new file mode 100644 index 00000000000..307d92b6db6 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/test3-500m-lsm.wtperf @@ -0,0 +1,20 @@ +# wtperf options file: simulate riak and its test3 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# This test assumes that a test1 populate already completed and exists. +# +#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=60)" +conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=8)" +create=false +compression="snappy" +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_max=5GB,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +key_sz=40 +value_sz=1000 +max_latency=2000 +pareto=true +report_interval=10 +run_time=14400 +sample_interval=10 +#threads=((count=20,reads=1,updates=1)) +threads=((count=10,reads=1),(count=10,updates=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/test3-50m-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/test3-50m-lsm.wtperf new file mode 100644 index 00000000000..278b1ce3872 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/test3-50m-lsm.wtperf @@ -0,0 +1,19 @@ +# wtperf options file: simulate riak and its test3 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# This test assumes that a test1 populate already completed and exists. +# +#conn_config="cache_size=10G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=30)" +conn_config="cache_size=10G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)" +create=false +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +key_sz=40 +value_sz=1000 +max_latency=2000 +pareto=true +report_interval=10 +run_time=1440 +sample_interval=10 +#threads=((count=10,reads=1,updates=1)) +threads=((count=5,reads=1),(count=5,updates=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/test4-1b-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/test4-1b-lsm.wtperf new file mode 100644 index 00000000000..8ff3cadbe59 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/test4-1b-lsm.wtperf @@ -0,0 +1,18 @@ +# wtperf options file: simulate riak and its test4 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# This test assumes that a test1 populate already completed and exists. +# +#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=60)" +conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)" +compression="snappy" +create=false +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_max=5GB,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +key_sz=40 +value_sz=1000 +max_latency=2000 +report_interval=10 +run_time=14400 +sample_interval=10 +threads=((count=20,reads=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/test4-2b-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/test4-2b-lsm.wtperf new file mode 100644 index 00000000000..d8f02872feb --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/test4-2b-lsm.wtperf @@ -0,0 +1,18 @@ +# wtperf options file: simulate riak and its test4 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# This test assumes that a test1 populate already completed and exists. +# +#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=60)" +conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)" +compression="snappy" +create=false +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_max=20GB,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +key_sz=40 +value_sz=1000 +max_latency=2000 +report_interval=10 +run_time=14400 +sample_interval=10 +threads=((count=20,reads=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/test4-500m-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/test4-500m-lsm.wtperf new file mode 100644 index 00000000000..19e6f84c9dc --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/test4-500m-lsm.wtperf @@ -0,0 +1,18 @@ +# wtperf options file: simulate riak and its test4 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# This test assumes that a test1 populate already completed and exists. +# +#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=60)" +conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)" +create=false +compression="snappy" +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_max=5GB,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +key_sz=40 +value_sz=1000 +max_latency=2000 +report_interval=10 +run_time=14400 +sample_interval=10 +threads=((count=20,reads=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/test4-50m-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/test4-50m-lsm.wtperf new file mode 100644 index 00000000000..f716a97943f --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/test4-50m-lsm.wtperf @@ -0,0 +1,17 @@ +# wtperf options file: simulate riak and its test4 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# This test assumes that a test1 populate already completed and exists. +# +#conn_config="cache_size=10G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=30)" +conn_config="cache_size=10G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)" +create=false +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +key_sz=40 +value_sz=1000 +max_latency=2000 +report_interval=10 +run_time=1440 +sample_interval=10 +threads=((count=10,reads=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/update-btree.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/update-btree.wtperf new file mode 100644 index 00000000000..efd6cc8b028 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/update-btree.wtperf @@ -0,0 +1,8 @@ +# wtperf options file: btree with inserts/updates, in memory +conn_config="cache_size=1G" +table_config="type=file" +icount=5000000 +report_interval=5 +run_time=120 +populate_threads=1 +threads=((count=2,inserts=1),(count=2,reads=1),(count=2,updates=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/update-checkpoint-btree.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/update-checkpoint-btree.wtperf new file mode 100644 index 00000000000..a2e4caab159 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/update-checkpoint-btree.wtperf @@ -0,0 +1,12 @@ +# wtperf options file: btree with inserts/updates and checkpointing, in memory +# Note: The cache needs to be sized to approximate the amount of inserts +# that will happen during the given run_time. +conn_config="cache_size=25G" +table_config="type=file" +icount=5000000 +report_interval=5 +checkpoint_threads=1 +checkpoint_interval=10 +run_time=300 +populate_threads=1 +threads=((count=1,inserts=1),(count=2,reads=1),(count=2,updates=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/update-checkpoint-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/update-checkpoint-lsm.wtperf new file mode 100644 index 00000000000..ebd95db910f --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/update-checkpoint-lsm.wtperf @@ -0,0 +1,12 @@ +# wtperf options file: lsm with inserts/updates and checkpointing, in memory +# Note: The cache needs to be sized to approximate the amount of inserts +# that will happen during the given run_time. +conn_config="cache_size=25G" +table_config="lsm=(chunk_size=20MB),type=lsm,os_cache_dirty_max=16MB" +icount=5000000 +report_interval=5 +checkpoint_threads=1 +checkpoint_interval=10 +run_time=300 +populate_threads=1 +threads=((count=1,inserts=1),(count=2,reads=1),(count=2,updates=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/update-large-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/update-large-lsm.wtperf new file mode 100644 index 00000000000..c3e468ec540 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/update-large-lsm.wtperf @@ -0,0 +1,9 @@ +# wtperf options file: lsm with inserts/updates, in memory +conn_config="cache_size=2G,lsm_manager=(worker_thread_max=6)" +table_config="lsm=(chunk_size=50MB),type=lsm,os_cache_dirty_max=16MB" +icount=200000000 +report_interval=5 +run_time=1200 +populate_threads=10 +compact=true +threads=((count=2,inserts=1),(count=10,reads=1),(count=2,updates=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/update-lsm.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/update-lsm.wtperf new file mode 100644 index 00000000000..52c4fb0192a --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/update-lsm.wtperf @@ -0,0 +1,8 @@ +# wtperf options file: lsm with inserts/updates, in memory +conn_config="cache_size=1G,lsm_manager=(worker_thread_max=6)" +table_config="lsm=(chunk_size=20MB),type=lsm,os_cache_dirty_max=16MB" +icount=5000000 +report_interval=5 +run_time=120 +populate_threads=1 +threads=((count=2,inserts=1),(count=2,reads=1),(count=2,updates=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/voxer-10k-short.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/voxer-10k-short.wtperf new file mode 100644 index 00000000000..47228079db8 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/voxer-10k-short.wtperf @@ -0,0 +1,19 @@ +# wtperf options file: simulate riak and a short form of its voxer config. +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# +#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=600)" +conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)" +compact=true +compression="snappy" +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +icount=15000 +key_sz=40 +value_sz=10000 +max_latency=2000 +populate_threads=1 +report_interval=5 +random_value=true +run_time=300 +threads=((count=10,read=1),(count=10,update=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/voxer-10k.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/voxer-10k.wtperf new file mode 100644 index 00000000000..9b4ed2acaee --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/voxer-10k.wtperf @@ -0,0 +1,20 @@ +# wtperf options file: simulate riak and its test1 and test2 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# +#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=600)" +conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)" +compact=true +compression="snappy" +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +icount=15000 +key_sz=40 +value_sz=10000 +max_latency=2000 +populate_threads=1 +report_interval=10 +random_value=true +run_time=18000 +sample_interval=10 +threads=((count=20,read=1,update=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/voxer-130k-short.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/voxer-130k-short.wtperf new file mode 100644 index 00000000000..83f67062bf8 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/voxer-130k-short.wtperf @@ -0,0 +1,19 @@ +# wtperf options file: simulate riak and a short form of its voxer config. +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# +#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=600)" +conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)" +compact=true +compression="snappy" +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +icount=15000 +key_sz=40 +value_sz=130000 +max_latency=2000 +populate_threads=1 +report_interval=5 +random_value=true +run_time=300 +threads=((count=10,read=1),(count=10,update=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/voxer-130k.wtperf b/src/third_party/wiredtiger/bench/wtperf/runners/voxer-130k.wtperf new file mode 100644 index 00000000000..a3439f0c575 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/voxer-130k.wtperf @@ -0,0 +1,20 @@ +# wtperf options file: simulate riak and its test1 and test2 configuration +# The configuration for the connection and table are from riak and the +# specification of the data (count, size, threads) is from basho_bench. +# +#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=600)" +conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)" +compact=true +compression="snappy" +sess_config="isolation=snapshot" +table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB" +icount=15000 +key_sz=40 +value_sz=130000 +max_latency=2000 +populate_threads=1 +report_interval=10 +random_value=true +run_time=18000 +sample_interval=10 +threads=((count=20,read=1,update=1)) diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/wtperf_ckpt.sh b/src/third_party/wiredtiger/bench/wtperf/runners/wtperf_ckpt.sh new file mode 100755 index 00000000000..c8993bfc1ba --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/wtperf_ckpt.sh @@ -0,0 +1,136 @@ +#!/bin/bash + +# A script for running the wtperf benchmark to analyze the performance +# of checkpoint operations. + +# General configuration settings: +BIN_DIR='.' +ROOT_DIR=`/bin/pwd` +SCRIPT_DIR=`dirname $0` +RUNTIME=900 +REUSE=0 +VERBOSE=0 +WORKLOAD=0 # skip the populate phase. +PERF_BASE="-M" +OPTFILE='' +DEBUG= +GDB=${GDB:-gdb} + +USAGE="Usage: `basename $0` [-hdRWsv] [-b binary dir] [-r root dir] [-O optfile]" + +# Parse command line options. +while getopts b:dhO:RWr:sv OPT; do + case "$OPT" in + b) + BIN_DIR=$OPTARG + ;; + d) + export TERM=dtterm + DEBUG="$GDB --args" + ;; + h) + echo $USAGE + exit 0 + ;; + O) + OPTFILE=-O$OPTARG + PERF_BASE="" + ;; + R) + REUSE=1 + ;; + r) + ROOT_DIR=$OPTARG + ;; + s) + RUNTIME=20 + PERF_BASE="-S" + ;; + v) + VERBOSE=0 + ;; + W) + WORKLOAD=1 + REUSE=1 # skip the populate phase. + ;; + \?) + # getopts issues an error message + echo $USAGE >&2 + exit 1 + ;; + esac +done + +# Configuration settings that may be altered by command line options +WTPERF=${BIN_DIR}/wtperf +if [ ! -x $WTPERF ]; then + echo "Could not find or execute $WTPERF" + exit 1 +fi + +DB_HOME="$ROOT_DIR/WT_TEST" +OUT_DIR="$ROOT_DIR/results" +SHARED_OPTS="${OPTFILE} ${PERF_BASE} -o read_threads=1,update_threads=1,report_interval=1,uri=\"table:test\" -o verbose=1 -h ${DB_HOME}" +CREATE_OPTS="$SHARED_OPTS -o run_time=0" +RUN_OPTS="$SHARED_OPTS -o run_time=$RUNTIME" +if [ $WORKLOAD -eq 0 ]; then + RUN_OPTS="$RUN_OPTS -o create=false" +else + RUN_OPTS="$RUN_OPTS -o icount=0" +fi + +if [ $REUSE -eq 0 ]; then + if [ $VERBOSE -ne 0 ]; then + echo "Creating database and archiving it for reuse." + fi + rm -rf $DB_HOME && mkdir $DB_HOME + $DEBUG $WTPERF $CREATE_OPTS || exit 1 + + # Save the database so that it can be re-used by all runs. + # I'd rather not hard code WT_TEST, but need to get the path right. + rm -f $ROOT_DIR/WT_TEST.tgz + tar zcf $ROOT_DIR/WT_TEST.tgz -C $ROOT_DIR WT_TEST +fi + +rm -rf $OUT_DIR && mkdir $OUT_DIR + +# Run the benchmarks.. +# for ckpt in "" "-c 120"; do +for ckpt in "checkpoint_threads=1,checkpoint_interval=120"; do + # for opts in "" "-C eviction_dirty_target=20"; do + for opts in ""; do + if [ $VERBOSE -ne 0 ]; then + echo "Doing a run with:" + echo "\t$WTPERF $RUN_OPTS $ckpt $opts" + fi + res_name="run_${ckpt},${opts}" + res_name=`echo $res_name | tr '[:upper:][=\- ,]' '[:lower:]_'` + if [ $WORKLOAD -eq 0 ]; then + rm -rf $DB_HOME && tar zxf $ROOT_DIR/WT_TEST.tgz -C $ROOT_DIR + else + rm -rf $DB_HOME && mkdir $DB_HOME + fi + if [ "$DEBUG" = '' ]; then + $WTPERF $RUN_OPTS -o "$ckpt" -o "$opts" & + pid=$! + t=0 + while kill -0 $pid 2> /dev/null; do + echo "Time $t" + pmp $pid + sleep 1 + (( t++ )) + done > $OUT_DIR/${res_name}.trace + else + $DEBUG $WTPERF $RUN_OPTS $ckpt $opts + fi + cp $DB_HOME/test.stat "$OUT_DIR/${res_name}.res" + done +done + +if [ $VERBOSE -ne 0 ]; then + echo "Post processing result files." +fi +for f in ${OUT_DIR}/*res; do + grep "^[0-9]* reads" ${f} | sed -e 's/ reads//' -e 's/ inserts//' -e 's/ updates in 1 secs//' > ${f}.out + ${SCRIPT_DIR}/get_ckpt.py < ${f} > ${f}.ckpt +done diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/wtperf_run.sh b/src/third_party/wiredtiger/bench/wtperf/runners/wtperf_run.sh new file mode 100755 index 00000000000..3296a4072b5 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/wtperf_run.sh @@ -0,0 +1,168 @@ +#!/bin/sh + +# wtperf_run.sh - run wtperf regression tests on the Jenkins platform. +# +# The Jenkins machines show variability so we run this script to run +# each wtperf test several times. We throw away the min and max +# number and average the remaining values. That is the number we +# give to Jenkins for plotting. We write these values to a +# test.average file in the current directory (which is +# build_posix/bench/wtperf). +# +# This script should be invoked with the pathname of the wtperf test +# config to run. +# +if test "$#" -ne "1"; then + echo "Must specify wtperf test to run" + exit 1 +fi +wttest=$1 +home=./WT_TEST +outfile=./wtperf.out +rm -f $outfile +runmax=5 +run=1 + +avg=(0 0 0) +max=(0 0 0) +min=(0 0 0) +sum=(0 0 0) +# Load needs floating point and bc, handle separately. +loadindex=4 +avg[$loadindex]=0 +max[$loadindex]=0 +min[$loadindex]=0 +sum[$loadindex]=0 +ops=(read insert update) +outp=("Read count:" "Insert count:" "Update count:") +outp[$loadindex]="Load time:" + +# getval min/max val cur +# Returns the minimum or maximum of val and cur. +# min == 0, max == 1. +getval() +{ + max="$1" + val="$2" + cur="$3" + ret=$cur + echo "getval: max $max val $val cur $cur" >> $outfile + if test "$max" -eq "1"; then + if test "$val" -gt "$cur"; then + ret=$val + fi + elif test "$val" -lt "$cur"; then + ret=$val + fi + echo "$ret" +} + +isstable() +{ + min="$1" + max="$2" + tmp=`echo "scale=3; $min * 1.03" | bc` + if (($(bc <<< "$tmp < $max") )); then + ret=0 + else + ret=1 + fi + echo "$ret" +} + +getmin=0 +getmax=1 +while test "$run" -le "$runmax"; do + rm -rf $home + mkdir $home + LD_PRELOAD=/usr/lib64/libjemalloc.so.1 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib ./wtperf -O $wttest + if test "$?" -ne "0"; then + exit 1 + fi + # Load is always using floating point, so handle separately + l=`grep "^Load time:" ./WT_TEST/test.stat` + if test "$?" -eq "0"; then + load=`echo $l | cut -d ' ' -f 3` + else + load=0 + fi + cur[$loadindex]=$load + sum[$loadindex]=`echo "${sum[$loadindex]} + $load" | bc` + echo "cur ${cur[$loadindex]} sum ${sum[$loadindex]}" >> $outfile + for i in ${!ops[*]}; do + l=`grep "Executed.*${ops[$i]} operations" ./WT_TEST/test.stat` + if test "$?" -eq "0"; then + n=`echo $l | cut -d ' ' -f 2` + else + n=0 + fi + cur[$i]=$n + sum[$i]=`expr $n + ${sum[$i]}` + done + # + # Keep running track of min and max for each operation type. + # + if test "$run" -eq "1"; then + for i in ${!cur[*]}; do + min[$i]=${cur[$i]} + max[$i]=${cur[$i]} + done + else + for i in ${!cur[*]}; do + if test "$i" -eq "$loadindex"; then + if (($(bc <<< "${cur[$i]} < ${min[$i]}") )); then + min[$i]=${cur[$i]} + fi + if (($(bc <<< "${cur[$i]} > ${max[$i]}") )); then + max[$i]=${cur[$i]} + fi + else + min[$i]=$(getval $getmin ${cur[$i]} ${min[$i]}) + max[$i]=$(getval $getmax ${cur[$i]} ${max[$i]}) + fi + done + fi + # + # After 3 runs see if this is a very stable test. If so, we + # can skip the last 2 runs and just use these values. We + # define "very stable" to be that the min and max are within + # 3% of each other. + if test "$run" -eq "3"; then + # Only if all values are stable, we can break. + unstable=0 + for i in ${!min[*]}; do + stable=$(isstable ${min[$i]} ${max[$i]}) + if test "$stable" -eq "0"; then + unstable=1 + break + fi + done + if test "$unstable" -eq "0"; then + break + fi + fi + run=`expr $run + 1` +done + +if test "$run" -le "$runmax"; then + numruns=`expr $run - 2` +else + numruns=`expr $runmax - 2` +fi +# +# The sum contains all runs. Subtract out the min/max values. +# Average the remaining and write it out to the file. +# +for i in ${!min[*]}; do + if test "$i" -eq "$loadindex"; then + s=`echo "scale=3; ${sum[$i]} - ${min[$i]} - ${max[$i]}" | bc` + avg[$i]=`echo "scale=3; $s / $numruns" | bc` + else + s=`expr ${sum[$i]} - ${min[$i]} - ${max[$i]}` + avg[$i]=`expr $s / $numruns` + fi +done +for i in ${!outp[*]}; do + echo "${outp[$i]} ${avg[$i]}" >> $outfile +done +exit 0 diff --git a/src/third_party/wiredtiger/bench/wtperf/runners/wtperf_track.sh b/src/third_party/wiredtiger/bench/wtperf/runners/wtperf_track.sh new file mode 100644 index 00000000000..db92cb95931 --- /dev/null +++ b/src/third_party/wiredtiger/bench/wtperf/runners/wtperf_track.sh @@ -0,0 +1,204 @@ +#!/bin/bash + +# wtperf_track.sh - track performance regression trends on the Jenkins platform. +# +# This is run after a performance build, with a count or time value. +# wtperf_track.sh -t [ -p percent ] name time_value +# wtperf_track.sh -c [ -p percent ] name count_value +# +# The values are kept in a .csv file (see $TRACK_FILE) stored under +# the userContent directory (see $STATE_DIR), which is served as +# visible files by Jenkins. The .csv contains fields: buildid, +# curtime, value, loadavg, diskavg. +# +# Since our Jenkins hosts have some variability to their load level, +# we allow some 'resiliance' in the regression checking. To this end, +# we calculate 3 values: +# +# v3: The 'best' of the most recent 3 values, where 'best' is +# lowest for a time value and highest for a count. +# +# v20: The average of the best 10 of the last 20 values. +# +# v100: The average of the best 50 of the last 100 values. +# +# If v3 is more then p% worse than v20, or if v20 is more than p% worse +# than v100, we issue a warning. The default value of p is 5, and +# is set with the -p option. +# +# We expect that the Jenkins job is configured to capture the WARNING +# output, in order to send mail or mark the build as unstable. + +JENKINS_HOME=${JENKINS_HOME:?"Must be run on the Jenkins platform"} +JOB_NAME=${JOB_NAME:?"Must be run on the Jenkins platform"} +BUILD_ID=${BUILD_ID:?"Must be run on the Jenkins platform"} + +STATE_DIR="/home/jenkins/wtperf_track" +TYPE=unknown # set to 'time' or 'count' depending on -t/-c option +NAME= # the command line name +VALUE= # the command line value + +Usage() +{ + cat >&2 <<EOF +Usage: wtperf_track.sh -t [ options ] name time_value + wtperf_track.sh -c [ options ] name count_value + +name is the name of this metric (e.g. "load_time") +value is an integer or float value + +Options: + -t: value is a time value, lower numbers are better + -c: value is a count value, higher numbers are better + -p pct: require short term avgs to be witnin 'pct' percent of long term avgs + +One of the -t and -c options is required. +EOF +} + +# GetValues n filename +# gets the last n values from a .csv file +GetValues() +{ + cut -f 3 -d , "$2" | sed -e '1d' -e 's/"//g' | tail -"$1" +} + +# MinValues n direction +# Given a list of values on input, +# removes all but n smallest (if direction is >0) or +# n largest if (direction is <0) +MinValues() +{ + rflag=-r + if [ "$2" -gt 0 ]; then + rflag= + fi + sort -g $rflag | tail -$1 +} + +# AvgValues +# Given a list of values on input, +# returns the average. +AvgValues() +{ + VALUES=$(tr '\n' ' ' | sed -e 's/^ *//' -e 's/ *$//' -e 's/ */ /') + n=$(echo "$VALUES" | wc -w) + echo "$VALUES" | sed -e 's/ /+/g' -e 's/^/scale=3;(/' -e "s:\$:)/$n:"| bc +} + +# CheckValues sval lval direction pct desc +# Given two values 'sval', 'lval', make sure that sval is no more +# than 'pct' percent less that lval (if direction is >0) or that +# sval is no more than 'ct' percent greater than lval (if direction <0) +# Returns 0 for normal, 1 for out of range +CheckValues() +{ + sval="$1" + lval="$2" + direction="$3" + pct="$4" + desc="$5" + if [ "$direction" -gt 0 ]; then + expr="($sval * (1.00 + $pct / 100.00)) - $lval" + else + expr="($lval * (1.00 + $pct / 100.00)) - $sval" + fi + result=$(echo "scale=3; $expr" | bc) + # bc error? + if [ $? != 0 ]; then + return 1 + fi + if [ "$(echo $result | grep '^-')" != '' ]; then + echo "$desc: WARNING: $type $sval not within $pct% of $lval (curval=$VALUE)" >&2 + return 1 + fi + return 0 +} + +GetCpuLoadAverage() +{ + uptime | sed -e 's/.*: *//' -e 's/ .*//' +} + +GetDiskLoadAverage() +{ + DEVICE=$(df "$1" | grep /dev | head -1 | sed -e 's:.*\(/dev/[^ ]*\).*:\1/:') + case `uname -s` in + *Linux* ) + # iostat -d $DEVICE | grep -v Device: | head -1 | sed -e 's/.* //' + echo '0.0' + ;; + * ) + echo '0.0' + ;; + esac +} + +direction=0 +pct=5 +while getopts tcp: OPT; do + case "$OPT" in + t) + direction=-1 + type=time + ;; + c) + direction=1 + type=count + ;; + p) + pct=$OPTARG + ;; + *) + # getopts issues an error message + Usage + exit 1 + ;; + esac +done + +shift $((OPTIND-1)) +if [ "$#" != 2 ]; then + echo "Missing name/value" >&2 + Usage + exit 1 +fi +NAME="$1" +VALUE="$2" + +if [ "$direction" = 0 ]; then + echo "Missing -t or -c option" >&2 + Usage + exit 1 +fi + +TRACK_FILE="${STATE_DIR}/${JOB_NAME}.${NAME}.csv" + +mkdir -p "${STATE_DIR}" || exit 1 +if [ ! -f "${TRACK_FILE}" ]; then + echo '"buildid","time","value","loadavg","diskavg"' \ + > ${TRACK_FILE} || exit 1 +fi +TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ") +LOAD_AVG=$(GetCpuLoadAverage) +DISK_AVG=$(GetDiskLoadAverage .) +echo "${BUILD_ID},${TIME},${VALUE},${LOAD_AVG},${DISK_AVG}" \ + >> ${TRACK_FILE} || exit 1 + +v3=$(GetValues 3 ${TRACK_FILE} | MinValues 1 $direction) +v20=$(GetValues 20 ${TRACK_FILE} | MinValues 10 $direction | AvgValues) +v100=$(GetValues 100 ${TRACK_FILE} | MinValues 50 $direction | AvgValues) + +v3=${v3:?"Internal error: v3 not set"} +v20=${v20:?"Internal error: v20 not set"} +v100=${v100:?"Internal error: v100 not set"} + +ecode=0 +prefix="$JOB_NAME: build #$BUILD_ID" +echo "$prefix: curval=$VALUE v3=$v3 v20=$v20 v100=$v100 pct=$pct" +CheckValues $v3 $v20 $direction $pct "$prefix: short term trend" || ecode=1 +CheckValues $v20 $v100 $direction $pct "$prefix: long term trend" || ecode=1 +# Rather than a failure exit for a trend out of range, +# Jenkins can capture the WARNING output, send email and mark +# a build as unstable. +#exit $ecode |