0
0
mirror of https://github.com/mongodb/mongo.git synced 2024-12-01 09:32:32 +01:00
mongodb/etc/system_perf.yml
2015-10-22 11:25:26 -07:00

452 lines
12 KiB
YAML

stepback: false
command_type: system
pre:
- command: shell.track
post:
- command: attach.results
params:
file_location: src/report.json
- command: shell.cleanup
- command: shell.exec
# destroy the cluster
params:
working_dir: dsi
script: |
set -e
set -o verbose
cd ./clusters/${cluster}
# configure mongodb cluster with wiredTiger
yes yes | ./terraform destroy
echo "Cluster DESTROYED."
echo "Test Results: "
egrep "name|ops_per_sec" ../perf.json
functions:
"prepare environment":
- command: shell.exec
params:
script: |
rm -rf ./*
mkdir src
- command: shell.exec
# checkout dsi code
params:
script: |
set -e
set -v
git clone git@github.com:10gen/dsi.git
cd dsi
# setup execution environment
./bin/setup-dsi-env.sh
- command: shell.exec
# configure environment, has private information, no logging
params:
working_dir: dsi
silent: true
script: |
cd ./clusters/${cluster}
# stage aws credential for terraform
../../bin/make_terraform_env.sh ${terraform_key} ${terraform_secret} https://s3.amazonaws.com/mciuploads/dsi/${build_variant}/${revision}/mongodb-${build_id}.tar.gz
# generate aws private key file
echo "${ec2_pem}" > ../../keys/aws.pem
chmod 400 ../../keys/aws.pem
"bring up cluster":
- command: shell.exec
# bring up the cluster
params:
working_dir: dsi
silent: true
script: |
# to create a mongod EC2 cluster
set -e
set -o verbose
cd ./clusters/${cluster}
# create all resources and instances
./setup-cluster.sh
echo "EC2 Cluster CREATED."
"bring up 3 shard cluster":
- command: shell.exec
# bring up the cluster
params:
working_dir: dsi
silent: true
script: |
# create a mongod EC2 cluster
set -e
set -o verbose
cd ./clusters/${cluster}
cp ../../terraform/* .
# create all resources and instances
./terraform apply -var="count=3" > t
# workaround for failure to bring up all at the same time
./terraform apply -var="count=9" > t
# this will extract all public and private IP address information
./env.sh
echo "EC2 Cluster STARTED."
"configure mongodb cluster":
- command: shell.exec
# bring up the mongod
params:
working_dir: dsi
script: |
set -e
set -o verbose
cd ./clusters/${cluster}
# configure mongodb cluster with wiredTiger
../../bin/config-${setup}.sh mongodb ${storageEngine} ${numShard} ${test}
echo "${cluster} MongoDB Replica Cluster STARTED."
"run test":
- command: shell.exec
params:
working_dir: dsi
script: |
set -e
set -v
cd ./clusters/${cluster}
cat ips.sh
cat run-${test}.json
./update_run_config.sh
cat run-${test}.json
rm -rf ./reports
rm -f ../../reports.tgz
echo "Run test for ${test} with setup ${setup}"
# run test
./run-${test}.sh ${storageEngine} ${setup}
rm -f ../perf.json
chmod 766 perf.json
cp ./perf.json ..
cd ..
pwd
cat perf.json
echo "Done test for ${test} with setup ${setup}!"
- command: "json.send"
params:
name: "perf"
file: "dsi/clusters/perf.json"
"destroy cluster":
- command: shell.exec
# destroy the cluster
params:
working_dir: dsi
script: |
set -e
set -o verbose
cd ./clusters/${cluster}
# destroy the EC2 cluster
yes yes | ./terraform destroy
echo "Cluster DESTROYED."
echo "All perf results"
cd ..
"make test log artifact":
- command: shell.exec
params:
working_dir: dsi
script: |
set -e
set -o verbose
cd ./clusters/${cluster}/reports
# move additional file here
cp ../ips.sh .
cp ../terraform.log .
cp ../../perf.json .
cd ..
rm -rf ../reports
mv reports ../
- command: archive.targz_pack
params:
target: "reports.tgz"
source_dir: "dsi/clusters"
include:
- "reports/**"
"upload log file":
- command: s3.put
params:
aws_key: ${aws_key}
aws_secret: ${aws_secret}
local_file: reports.tgz
remote_file: dsi/${build_variant}/${revision}/logs/${test}-${build_id}.${ext|tgz}
bucket: mciuploads
permissions: public-read
content_type: ${content_type|application/x-gzip}
display_name: ${test}-test-log
"analyze":
- 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
# post_run_check.py and override.json for DSI tests is part of dsi repo in dsi/bin
type : test
params:
working_dir: src
script: |
set -o errexit
set -o verbose
python ../dsi/bin/post_run_check.py --rev ${revision} -f history.json -t tags.json --refTag 3.0.6-Baseline --overrideFile ../dsi/bin/override.json --project_id sys-perf --task_name ${task_name} --variant ${build_variant}
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 mongod mongos
mkdir -p mongodb/bin
mv mongo mongodb/bin
mv mongod mongodb/bin
mv mongos mongodb/bin
tar cvf mongodb.tar mongodb
gzip mongodb.tar
- command: s3.put
params:
aws_key: ${aws_key}
aws_secret: ${aws_secret}
local_file: src/mongodb.tar.gz
remote_file: dsi/${build_variant}/${revision}/mongodb-${build_id}.tar.gz
bucket: mciuploads
permissions: public-read
content_type: ${content_type|application/x-gzip}
display_name: mongodb.tar.gz
- name: single_cluster_test
depends_on:
- name: compile
commands:
- func: "prepare environment"
- func: "bring up cluster"
- func: "configure mongodb cluster"
vars:
test: "ycsb"
storageEngine: "wiredTiger"
- func: "run test"
vars:
storageEngine: "wiredTiger"
test: "ycsb"
- func: "make test log artifact"
- func: "upload log file"
vars:
test: "ycsb"
- func: "run test"
vars:
storageEngine: "wiredTiger"
test: "benchRun"
- func: "make test log artifact"
- func: "upload log file"
vars:
test: "benchRun-wiredTiger"
- func: "configure mongodb cluster"
vars:
test: "ycsb-mmap"
storageEngine: "mmapv1"
- func: "run test"
vars:
storageEngine: "mmapv1"
test: "ycsb-mmap"
- func: "make test log artifact"
- func: "upload log file"
vars:
test: "ycsb-mmap"
- func: "run test"
vars:
storageEngine: "mmapv1"
test: "benchRun-mmap"
- func: "make test log artifact"
- func: "upload log file"
vars:
test: "benchRun-mmap"
- func: "analyze"
- func: "destroy cluster"
- name: shard_cluster_test
depends_on:
- name: compile
commands:
- func: "prepare environment"
- func: "bring up cluster"
- func: "configure mongodb cluster"
vars:
test: "ycsb"
storageEngine: "wiredTiger"
- func: "run test"
vars:
storageEngine: "wiredTiger"
test: "ycsb"
- func: "make test log artifact"
- func: "upload log file"
vars:
test: "ycsb"
- func: "run test"
vars:
storageEngine: "wiredTiger"
test: "benchRun"
- func: "make test log artifact"
- func: "upload log file"
vars:
test: "benchRun-wiredTiger"
- func: "configure mongodb cluster"
vars:
test: "ycsb-mmap"
storageEngine: "mmapv1"
- func: "run test"
vars:
storageEngine: "mmapv1"
test: "ycsb-mmap"
- func: "make test log artifact"
- func: "upload log file"
vars:
test: "ycsb-mmap"
- func: "run test"
vars:
storageEngine: "mmapv1"
test: "benchRun-mmap"
- func: "make test log artifact"
- func: "upload log file"
vars:
test: "benchRun-mmap"
- func: "analyze"
- func: "destroy cluster"
- name: replica_cluster_test
depends_on:
- name: compile
commands:
- func: "prepare environment"
- func: "bring up cluster"
- func: "configure mongodb cluster"
vars:
test: "ycsb"
storageEngine: "wiredTiger"
- func: "run test"
vars:
storageEngine: "wiredTiger"
test: "ycsb"
- func: "make test log artifact"
- func: "upload log file"
vars:
test: "ycsb"
- func: "run test"
vars:
storageEngine: "wiredTiger"
test: "benchRun"
- func: "make test log artifact"
- func: "upload log file"
vars:
test: "benchRun-wiredTiger"
- func: "configure mongodb cluster"
vars:
test: "ycsb-mmap"
storageEngine: "mmapv1"
- func: "run test"
vars:
storageEngine: "mmapv1"
test: "ycsb-mmap"
- func: "make test log artifact"
- func: "upload log file"
vars:
test: "ycsb-mmap"
- func: "run test"
vars:
storageEngine: "mmapv1"
test: "benchRun-mmap"
- func: "make test log artifact"
- func: "upload log file"
vars:
test: "benchRun-mmap"
- func: "analyze"
- func: "destroy cluster"
buildvariants:
- name: linux-wt-repl-1
display_name: Linux 1-Node ReplSet
batchtime: 720 # 12 hours
expansions:
compile_flags: -j$(grep -c ^processor /proc/cpuinfo) CC=/opt/mongodbtoolchain/bin/gcc CXX=/opt/mongodbtoolchain/bin/g++ --release
setup: single-replica
cluster: single
numShard: 0
run_on:
- "linux-64-amzn-perf-standalone"
tasks:
- name: compile
distros:
- rhel55
- name: single_cluster_test
- name: linux-wt-shard
display_name: Linux 3-Shard Cluster
batchtime: 720 # 12 hours
expansions:
compile_flags: -j$(grep -c ^processor /proc/cpuinfo) CC=/opt/mongodbtoolchain/bin/gcc CXX=/opt/mongodbtoolchain/bin/g++ --release
setup: shard
cluster: shard
numShard: 3
run_on:
- "linux-64-amzn-perf-shard"
tasks:
- name: compile
distros:
- rhel55
- name: shard_cluster_test
- name: linux-3-node-replSet
display_name: Linux 3-Node ReplSet Cluster
batchtime: 720 # 12 hours
expansions:
compile_flags: -j$(grep -c ^processor /proc/cpuinfo) CC=/opt/mongodbtoolchain/bin/gcc CXX=/opt/mongodbtoolchain/bin/g++ --release
setup: replica
cluster: replica
numMember: 3
run_on:
- "linux-64-amzn-perf-replset"
tasks:
- name: compile
distros:
- rhel55
- name: replica_cluster_test