0
0
mirror of https://github.com/mongodb/mongo.git synced 2024-11-29 00:32:18 +01:00
mongodb/etc/perf.yml

792 lines
22 KiB
YAML

command_type: system
stepback: false
pre:
- command: shell.track
post:
- command: "json.send"
params:
name: "perf"
file: "src/perf.json"
- command: attach.results
params:
file_location: src/report.json
- command: shell.cleanup
functions:
"start server":
- command: shell.exec
params:
script: |
rm -rf ./*
mkdir src
- command: s3.get
params:
aws_key: ${aws_key}
aws_secret: ${aws_secret}
remote_file: perf/${version_id}/${revision}/mongod-${version_id}
bucket: mciuploads
local_file: src/mongod
- command: s3.get
params:
aws_key: ${aws_key}
aws_secret: ${aws_secret}
remote_file: perf/${version_id}/${revision}/mongo-${version_id}
bucket: mciuploads
local_file: src/mongo
- command: shell.exec
params:
working_dir: src
script: |
set -e
set -v
chmod +x mongod
chmod +x mongo
git clone https://github.com/mongodb/mongo-perf perf
cd perf
git checkout r20150814
- command: shell.exec
params:
background: true
working_dir: src
script: |
set -e
set -o verbose
mkdir -p ./dbdata
${mongod_exec_wrapper} ./mongod --dbpath ./dbdata ${mongod_flags}
sleep 5
# if we started a replset, initiate it and wait for it to become primary
./mongo --eval "if(db.isMaster().isreplicaset){rs.initiate(); assert.soon(function(){return db.isMaster().ismaster}, 'no primary')}"
echo "MONGOD STARTED."
"compare":
- command: s3.get
params:
aws_key: ${aws_key}
aws_secret: ${aws_secret}
remote_file: perf/${version_id}/${revision}/compare.py-${version_id}
bucket: mciuploads
local_file: src/compare.py
- command: json.get
params:
task: ${compare_task}
variant : ${variant1}
file: "src/stand.json"
name: "perf"
- command: json.get
params:
task: ${compare_task}
variant : ${variant2}
file: "src/node.json"
name: "perf"
- command: shell.exec
type : test
params:
working_dir: src
script: |
set -o errexit
set -o verbose
virtualenv ./venv
source ./venv/bin/activate
python compare.py -b stand.json -c node.json -t ${threshold}
"analyze":
- command: s3.get
params:
aws_key: ${aws_key}
aws_secret: ${aws_secret}
remote_file: perf/${version_id}/${revision}/perf_regression_check.py-${version_id}
bucket: mciuploads
local_file: src/perf_regression_check.py
- command: s3.get
params:
aws_key: ${aws_key}
aws_secret: ${aws_secret}
remote_file: perf/${version_id}/${revision}/override.json-${version_id}
bucket: mciuploads
local_file: src/override.json
- command: shell.exec
params:
working_dir: src
script: |
set -e
set -v
virtualenv ./venv
source ./venv/bin/activate
pip install argparse python-dateutil
- command: json.get_history
params:
task: ${task_name}
file: "src/history.json"
name: "perf"
- command: json.get_history
params:
tags: true
task: ${task_name}
file: "src/tags.json"
name: "perf"
- command: shell.exec
type : test
params:
working_dir: src
script: |
set -o errexit
set -o verbose
source ./venv/bin/activate
python perf_regression_check.py -f history.json --rev ${revision} -t tags.json --refTag 3.0.6-Baseline --overrideFile override.json --variant ${build_variant} --threshold 0.10 --threadThreshold 0.15
"run perf tests":
- command: shell.exec
params:
working_dir: src
script: |
set -e
set -v
virtualenv ./venv
source ./venv/bin/activate
pip install argparse
- command: shell.exec
params:
working_dir: src
script: |
set -e
set -v
source ./venv/bin/activate
cd perf
# give mongod a few seconds to start up so that we can connect.
sleep 5
${perf_exec_wrapper} python benchrun.py --shell ../mongo -t ${threads} --trialCount 5 -f testcases/*.js --includeFilter ${includeFilter1} --includeFilter ${includeFilter2} --excludeFilter ${excludeFilter} --out perf.json --exclude-testbed
- command: "json.send"
params:
name: "perf"
file: "src/perf/perf.json"
tasks:
- name: compile
commands:
- command: git.get_project
params:
directory: src
- command: git.apply_patch
params:
directory: src
- command: shell.exec
params:
working_dir: src
script: |
set -o errexit
set -o verbose
${scons|scons} ${compile_flags|} mongo
${scons|scons} ${compile_flags|} mongod
- command: s3.put
params:
aws_key: ${aws_key}
aws_secret: ${aws_secret}
local_file: src/mongod
remote_file: perf/${version_id}/${revision}/mongod-${version_id}
bucket: mciuploads
permissions: public-read
content_type: ${content_type|application/octet-stream}
display_name: mongod
- command: s3.put
params:
aws_key: ${aws_key}
aws_secret: ${aws_secret}
local_file: src/mongo
remote_file: perf/${version_id}/${revision}/mongo-${version_id}
bucket: mciuploads
permissions: public-read
content_type: ${content_type|application/octet-stream}
display_name: mongo
- command: s3.put
params:
aws_key: ${aws_key}
aws_secret: ${aws_secret}
local_file: src/buildscripts/perf_regression_check.py
remote_file: perf/${version_id}/${revision}/perf_regression_check.py-${version_id}
bucket: mciuploads
permissions: public-read
content_type: ${content_type|application/octet-stream}
display_name: perf_regression_check.py
- command: s3.put
params:
aws_key: ${aws_key}
aws_secret: ${aws_secret}
local_file: src/buildscripts/compare.py
remote_file: perf/${version_id}/${revision}/compare.py-${version_id}
bucket: mciuploads
permissions: public-read
content_type: ${content_type|application/octet-stream}
display_name: compare.py
- command: s3.put
params:
aws_key: ${aws_key}
aws_secret: ${aws_secret}
local_file: src/etc/override.json
remote_file: perf/${version_id}/${revision}/override.json-${version_id}
bucket: mciuploads
permissions: public-read
content_type: ${content_type|application/octet-stream}
display_name: override.json
- name: query
depends_on:
- variant: linux-wt-standalone
name: compile
commands:
- func: "start server"
- func: "run perf tests"
vars:
includeFilter1: "query"
includeFilter2 : "core regression"
excludeFilter : "single_threaded"
threads : "1 2 4 8"
- func: "analyze"
- name: where
depends_on:
- variant: linux-wt-standalone
name: compile
commands:
- func: "start server"
- func: "run perf tests"
vars:
includeFilter1: "where"
includeFilter2 : "core regression"
excludeFilter : "single_threaded"
threads : "1 2 4 8"
- func: "analyze"
- name: update
depends_on:
- variant: linux-wt-standalone
name: compile
commands:
- func: "start server"
- func: "run perf tests"
vars:
includeFilter1: "update"
includeFilter2 : "core regression"
excludeFilter : "single_threaded"
threads : "1 2 4 8"
- func: "analyze"
- name: insert
depends_on:
- variant: linux-wt-standalone
name: compile
commands:
- func: "start server"
- func: "run perf tests"
vars:
includeFilter1: "insert"
includeFilter2 : "core regression"
excludeFilter : "single_threaded"
threads : "1 2 4 8"
- func: "analyze"
- name: geo
depends_on:
- variant: linux-wt-standalone
name: compile
commands:
- func: "start server"
- func: "run perf tests"
vars:
includeFilter1: "geo"
includeFilter2 : "core regression"
excludeFilter : "single_threaded"
threads : "1 2 4 8"
- func: "analyze"
- name: misc
depends_on:
- variant: linux-wt-standalone
name: compile
commands:
- func: "start server"
- func: "run perf tests"
vars:
includeFilter1: "command multi remove mixed"
includeFilter2 : "core regression"
excludeFilter : "single_threaded"
threads : "1 2 4 8"
- func: "analyze"
- name: singleThreaded
depends_on:
- variant: linux-wt-standalone
name: compile
commands:
- func: "start server"
- func: "run perf tests"
vars:
includeFilter1: "single_threaded"
includeFilter2 : "core regression"
excludeFilter : "none"
threads : "1"
- func: "analyze"
- name: singleThreaded-wt-repl-comp
depends_on:
- name : compile
variant : linux-wt-standalone
- name : singleThreaded
variant : linux-wt-standalone
- name : singleThreaded
variant : linux-wt-repl
commands:
- func: "compare"
vars:
compare_task : "singleThreaded"
variant1 : "linux-wt-standalone"
variant2 : "linux-wt-repl"
threshold : 75
- name: insert-wt-repl-comp
depends_on:
- name : compile
variant : linux-wt-standalone
- name : insert
variant : linux-wt-standalone
status : "*"
- name : insert
variant : linux-wt-repl
status : "*"
commands:
- func: "compare"
vars:
compare_task : "insert"
variant1 : "linux-wt-standalone"
variant2 : "linux-wt-repl"
threshold : 75
- name: update-wt-repl-comp
depends_on:
- name : compile
variant : linux-wt-standalone
- name : update
variant : linux-wt-standalone
status : "*"
- name : update
variant : linux-wt-repl
status : "*"
commands:
- func: "compare"
vars:
compare_task : "update"
variant1 : "linux-wt-standalone"
variant2 : "linux-wt-repl"
threshold : 75
- name: misc-wt-repl-comp
depends_on:
- name : compile
variant : linux-wt-standalone
- name : misc
variant : linux-wt-standalone
status : "*"
- name : misc
variant : linux-wt-repl
status : "*"
commands:
- func: "compare"
vars:
compare_task : "misc"
variant1 : "linux-wt-standalone"
variant2 : "linux-wt-repl"
threshold : 75
- name: singleThreaded-wt-mmap-standalone-comp
depends_on:
- name : compile
variant : linux-wt-standalone
- name : singleThreaded
variant : linux-wt-standalone
status : "*"
- name : singleThreaded
variant : linux-mmap-standalone
status : "*"
commands:
- func: "compare"
vars:
compare_task : "singleThreaded"
variant2 : "linux-wt-standalone"
variant1 : "linux-mmap-standalone"
threshold : 85
- name: query-wt-mmap-standalone-comp
depends_on:
- name : compile
variant : linux-wt-standalone
- name : query
variant : linux-wt-standalone
status : "*"
- name : query
variant : linux-mmap-standalone
status : "*"
commands:
- func: "compare"
vars:
compare_task : "query"
variant2 : "linux-wt-standalone"
variant1 : "linux-mmap-standalone"
threshold : 85
- name: where-wt-mmap-standalone-comp
depends_on:
- name : compile
variant : linux-wt-standalone
- name : where
variant : linux-wt-standalone
status : "*"
- name : where
variant : linux-mmap-standalone
status : "*"
commands:
- func: "compare"
vars:
compare_task : "where"
variant2 : "linux-wt-standalone"
variant1 : "linux-mmap-standalone"
threshold : 85
- name: geo-wt-mmap-standalone-comp
depends_on:
- name : compile
variant : linux-wt-standalone
- name : geo
variant : linux-wt-standalone
status : "*"
- name : geo
variant : linux-mmap-standalone
status : "*"
commands:
- func: "compare"
vars:
compare_task : "geo"
variant2 : "linux-wt-standalone"
variant1 : "linux-mmap-standalone"
threshold : 85
- name: insert-wt-mmap-standalone-comp
depends_on:
- name : compile
variant : linux-wt-standalone
- name : insert
variant : linux-wt-standalone
status : "*"
- name : insert
variant : linux-mmap-standalone
status : "*"
commands:
- func: "compare"
vars:
compare_task : "insert"
variant2 : "linux-wt-standalone"
variant1 : "linux-mmap-standalone"
threshold : 85
- name: update-wt-mmap-standalone-comp
depends_on:
- name : compile
variant : linux-wt-standalone
- name : update
variant : linux-wt-standalone
status : "*"
- name : update
variant : linux-mmap-standalone
status : "*"
commands:
- func: "compare"
vars:
compare_task : "update"
variant2 : "linux-wt-standalone"
variant1 : "linux-mmap-standalone"
threshold : 85
- name: misc-wt-mmap-standalone-comp
depends_on:
- name : compile
variant : linux-wt-standalone
- name : misc
variant : linux-wt-standalone
status : "*"
- name : misc
variant : linux-mmap-standalone
status : "*"
commands:
- func: "compare"
vars:
compare_task : "misc"
variant2 : "linux-wt-standalone"
variant1 : "linux-mmap-standalone"
threshold : 85
- name: singleThreaded-wt-mmap-repl-comp
depends_on:
- name : compile
variant : linux-wt-standalone
- name : singleThreaded
variant : linux-wt-repl
status : "*"
- name : singleThreaded
variant : linux-mmap-repl
status : "*"
commands:
- func: "compare"
vars:
compare_task : "singleThreaded"
variant2 : "linux-wt-repl"
variant1 : "linux-mmap-repl"
threshold : 85
- name: insert-wt-mmap-repl-comp
depends_on:
- name : compile
variant : linux-wt-standalone
- name : insert
variant : linux-wt-repl
status : "*"
- name : insert
variant : linux-mmap-repl
status : "*"
commands:
- func: "compare"
vars:
compare_task : "insert"
variant2 : "linux-wt-repl"
variant1 : "linux-mmap-repl"
threshold : 85
- name: update-wt-mmap-repl-comp
depends_on:
- name : compile
variant : linux-wt-standalone
- name : update
variant : linux-wt-repl
status : "*"
- name : update
variant : linux-mmap-repl
status : "*"
commands:
- func: "compare"
vars:
compare_task : "update"
variant2 : "linux-wt-repl"
variant1 : "linux-mmap-repl"
threshold : 85
- name: misc-wt-mmap-repl-comp
depends_on:
- name : compile
variant : linux-wt-standalone
status : "*"
- name : misc
variant : linux-wt-repl
- name : misc
variant : linux-mmap-repl
status : "*"
commands:
- func: "compare"
vars:
compare_task : "misc"
variant2 : "linux-wt-repl"
variant1 : "linux-mmap-repl"
threshold : 85
- name: singleThreaded-mmap-repl-comp
depends_on:
- name : compile
variant : linux-wt-standalone
- name : singleThreaded
variant : linux-mmap-standalone
status : "*"
- name : singleThreaded
variant : linux-mmap-repl
status : "*"
commands:
- func: "compare"
vars:
compare_task : "singleThreaded"
variant1 : "linux-mmap-standalone"
variant2 : "linux-mmap-repl"
threshold : 75
- name: insert-mmap-repl-comp
depends_on:
- name : compile
variant : linux-wt-standalone
- name : insert
variant : linux-mmap-standalone
status : "*"
- name : insert
variant : linux-mmap-repl
status : "*"
commands:
- func: "compare"
vars:
compare_task : "insert"
variant1 : "linux-mmap-standalone"
variant2 : "linux-mmap-repl"
threshold : 75
- name: update-mmap-repl-comp
depends_on:
- name : compile
variant : linux-wt-standalone
- name : update
variant : linux-mmap-standalone
status : "*"
- name : update
variant : linux-mmap-repl
status : "*"
commands:
- func: "compare"
vars:
compare_task : "update"
variant1 : "linux-mmap-standalone"
variant2 : "linux-mmap-repl"
threshold : 75
- name: misc-mmap-repl-comp
depends_on:
- name : compile
variant : linux-wt-standalone
- name : misc
variant : linux-mmap-standalone
status : "*"
- name : misc
variant : linux-mmap-repl
status : "*"
commands:
- func: "compare"
vars:
compare_task : "misc"
variant1 : "linux-mmap-standalone"
variant2 : "linux-mmap-repl"
threshold : 75
buildvariants:
- name: linux-wt-standalone
display_name: Linux WT Standalone
batchtime: 90 # 1.5 hours
expansions:
compile_flags: &compile_flags -j$(grep -c ^processor /proc/cpuinfo) CC=/opt/mongodbtoolchain/bin/gcc CXX=/opt/mongodbtoolchain/bin/g++ --release
mongod_exec_wrapper: &exec_wrapper "numactl --physcpubind=4,5,6,7 -i 1"
perf_exec_wrapper: &perf_wrapper "numactl --physcpubind=1,2,3 -i 0"
mongod_flags: "--storageEngine=wiredTiger --logpath ./mongod.log --fork --syncdelay 0 --nojournal --setParameter ttlMonitorEnabled=false --wiredTigerCacheSizeGB 16"
run_on:
- "centos6-perf"
tasks:
- name: compile
distros:
- rhel55
- name: query
- name: where
- name: update
- name: insert
- name: geo
- name: misc
- name: singleThreaded
- name: linux-mmap-standalone
display_name: Linux MMAPv1 Standalone
batchtime: 90 # 1.5 hours
expansions:
compile_flags: *compile_flags
mongod_exec_wrapper: *exec_wrapper
perf_exec_wrapper: *perf_wrapper
mongod_flags: "--storageEngine=mmapv1 --logpath ./mongod.log --fork --syncdelay 0 --nojournal --setParameter ttlMonitorEnabled=false"
run_on:
- "centos6-perf"
tasks:
- name: query
- name: where
- name: update
- name: insert
- name: geo
- name: misc
- name: singleThreaded
- name: linux-wt-repl
display_name: Linux WT 1-Node ReplSet
batchtime: 360 # 6 hours
expansions:
compile_flags: *compile_flags
mongod_exec_wrapper: *exec_wrapper
perf_exec_wrapper: *perf_wrapper
mongod_flags: "--replSet=test --storageEngine=wiredTiger --logpath ./mongod.log --fork --syncdelay 0 --nojournal --setParameter ttlMonitorEnabled=false --wiredTigerCacheSizeGB 16 --oplogSize 100000"
run_on:
- "centos6-perf"
tasks:
- name: update
- name: insert
- name: misc
- name: singleThreaded
- name: linux-mmap-repl
display_name: Linux MMAPv1 1-Node ReplSet
batchtime: 360 # 6 hours
expansions:
compile_flags: *compile_flags
mongod_exec_wrapper: *exec_wrapper
perf_exec_wrapper: *perf_wrapper
mongod_flags: "--replSet=test --storageEngine=mmapv1 --logpath ./mongod.log --fork --syncdelay 0 --nojournal --setParameter ttlMonitorEnabled=false --oplogSize 100000"
run_on:
- "centos6-perf"
tasks:
- name: update
- name: insert
- name: misc
- name: singleThreaded
- name: linux-wt-repl-compare
display_name: Linux WT 1-Node ReplSet Compare
batchtime: 360 # 6 hours
expansions:
compile_flags: *compile_flags
mongod_exec_wrapper: *exec_wrapper
perf_exec_wrapper: *perf_wrapper
mongod_flags: "--replSet=test --storageEngine=wiredTiger --logpath ./mongod.log --fork --syncdelay 0 --nojournal --setParameter ttlMonitorEnabled=false --oplogSize 100000"
run_on:
- "centos6-perf"
# - "ubuntu1404-docker"
tasks:
- name: singleThreaded-wt-repl-comp
- name: insert-wt-repl-comp
- name: update-wt-repl-comp
- name: misc-wt-repl-comp
- name: linux-mmap-repl-compare
display_name: Linux MMAP 1-Node ReplSet Compare
batchtime: 360 # 6 hours
expansions:
compile_flags: *compile_flags
mongod_exec_wrapper: *exec_wrapper
perf_exec_wrapper: *perf_wrapper
mongod_flags: "--replSet=test --storageEngine=mmapv1 --logpath ./mongod.log --fork --syncdelay 0 --nojournal --setParameter ttlMonitorEnabled=false --oplogSize 100000"
run_on:
- "centos6-perf"
# - "ubuntu1404-docker"
tasks:
- name: singleThreaded-mmap-repl-comp
- name: insert-mmap-repl-comp
- name: update-mmap-repl-comp
- name: misc-mmap-repl-comp
- name: linux-wt-mmap-standalone-compare
display_name: Linux WT-MMAP Standalone Compare
batchtime: 90 # 1.5 hours
expansions:
compile_flags: *compile_flags
mongod_exec_wrapper: *exec_wrapper
perf_exec_wrapper: *perf_wrapper
mongod_flags: "--replSet=test --storageEngine=mmapv1 --logpath ./mongod.log --fork --syncdelay 0 --nojournal --setParameter ttlMonitorEnabled=false --oplogSize 100000"
run_on:
- "centos6-perf"
# - "ubuntu1404-docker"
tasks:
- name: singleThreaded-wt-mmap-standalone-comp
- name: insert-wt-mmap-standalone-comp
- name: update-wt-mmap-standalone-comp
- name: misc-wt-mmap-standalone-comp
- name: query-wt-mmap-standalone-comp
- name: where-wt-mmap-standalone-comp
- name: geo-wt-mmap-standalone-comp
- name: linux-wt-mmap-repl-compare
display_name: Linux WT-MMAP 1-Node ReplSet Compare
batchtime: 360 # 6 hours
expansions:
compile_flags: *compile_flags
mongod_exec_wrapper: *exec_wrapper
perf_exec_wrapper: *perf_wrapper
mongod_flags: "--replSet=test --storageEngine=mmapv1 --logpath ./mongod.log --fork --syncdelay 0 --nojournal --setParameter ttlMonitorEnabled=false --oplogSize 100000"
run_on:
- "centos6-perf"
# - "ubuntu1404-docker"
tasks:
- name: singleThreaded-wt-mmap-repl-comp
- name: insert-wt-mmap-repl-comp
- name: update-wt-mmap-repl-comp
- name: misc-wt-mmap-repl-comp