Skip to content

Commit 3ea82b1

Browse files
authored
Merge pull request #41 from mongodb-labs/blagoev/perf-4531
add a script to run ycsb locally on a linux. perf-4531
2 parents 42d4edb + 03eb632 commit 3ea82b1

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

ycsb-mongodb/scripts/ycsb.sh

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#!/bin/bash
2+
# Script to install and run YCSB locally on a Linux machine.
3+
4+
MAVEN_VERSION="3.9.4"
5+
YCSB_VERSION="0.17.0"
6+
LOAD_THREADS=16
7+
RUN_THREADS=16
8+
9+
if command -v yum &> /dev/null; then
10+
sudo yum install java-devel -y
11+
elif command -v apt &> /dev/null; then
12+
sudo apt install default-jdk -y
13+
else
14+
echo "Package manager not supported!"
15+
exit 1
16+
fi
17+
18+
if ! command -v maven &> /dev/null; then
19+
echo "Installing maven ..."
20+
pushd /tmp
21+
wget "https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz"
22+
sudo tar -xzvf "apache-maven-${MAVEN_VERSION}-bin.tar.gz" -C /usr/local
23+
popd
24+
pushd /usr/local
25+
sudo ln -s apache-maven-* maven
26+
echo "export M2_HOME=/usr/local/maven" | sudo tee -a /etc/profile.d/maven.sh
27+
echo "export PATH=${M2_HOME}/bin:${PATH}" | sudo tee -a /etc/profile.d/maven.sh
28+
popd
29+
fi
30+
31+
pushd ~
32+
if [ -d "ycsb-${YCSB_VERSION}" ]; then
33+
echo "Found YCSB in home directory!"
34+
else
35+
echo "Installing YCSB ..."
36+
wget "https://github.com/brianfrankcooper/YCSB/releases/download/${YCSB_VERSION}/ycsb-${YCSB_VERSION}.tar.gz"
37+
tar -xzvf "ycsb-${YCSB_VERSION}.tar.gz"
38+
39+
pushd "ycsb-${YCSB_VERSION}"
40+
echo "recordcount=56320000" > workloads/workloadEvergreen_100read
41+
echo "operationcount=20000000" >> workloads/workloadEvergreen_100read
42+
echo "maxexecutiontime=360" >> workloads/workloadEvergreen_100read
43+
echo "workload=site.ycsb.workloads.CoreWorkload" >> workloads/workloadEvergreen_100read
44+
echo "readallfields=true" >> workloads/workloadEvergreen_100read
45+
echo "readproportion=1.0" >> workloads/workloadEvergreen_100read
46+
echo "updateproportion=0.0" >> workloads/workloadEvergreen_100read
47+
echo "scanproportion=0" >> workloads/workloadEvergreen_100read
48+
echo "insertproportion=0.0" >> workloads/workloadEvergreen_100read
49+
echo "requestdistribution=zipfian" >> workloads/workloadEvergreen_100read
50+
popd
51+
fi
52+
53+
pushd "ycsb-${YCSB_VERSION}"
54+
echo "Running the load phase ..."
55+
./bin/ycsb load mongodb -s -P workloads/workloadEvergreen_100read -threads $LOAD_THREADS
56+
57+
echo "Running the run phase ..."
58+
./bin/ycsb run mongodb -s -P workloads/workloadEvergreen_100read -threads $RUN_THREADS
59+
60+
popd
61+
popd
62+
63+
exit 0

0 commit comments

Comments
 (0)