Yardstick Docker is a set of docker images which contains benchmarks written on top of Yardstick framework.
Visit Yardstick Repository for detailed information on how to run Yardstick benchmarks and how to generate graphs.
For running benchmark need to start servers
and client
Server
is the remote standalone instance that theClient
communicates with.Client
is an instance of the benchmark that performs some operation that needs to be tested.
1.Pull latest docker image for server.
# docker pull yardstickbenchmarks/yardstick-server:1.0
2.Run container from server image.
# docker run -it --net=host -e GIT_REPO=BENCHMARK_REPO yardstickbenchmarks/yardstick-server:1.0
For example for Apache Ignite:
# docker run -it --net=host -e GIT_REPO=https://github.com/apacheignite/yardstick-ignite yardstickbenchmarks/yardstick-server:1.0
3.Pull latest docker image for client.
# docker pull yardstickbenchmarks/yardstick-client:1.0
4.Run container from client image.
# docker run -it --net=host -e GIT_REPO=BENCHMARK_REPO -v DIRECTORY:/mnt yardstickbenchmarks/yardstick-client:1.0
where DIRECTORY is absolute path to folder where will be uploaded results.
For example for Apache Ignite:
# docker run -it --net=host -e GIT_REPO=https://github.com/apacheignite/yardstick-ignite -v ~/benchmark-result:/mnt yardstickbenchmarks/yardstick-client:1.0
The easiest way to run benchmarks in AWS is an using created AMI image.
- Open the Amazon EC2 console.
- From the Amazon EC2 console dashboard, click Launch Instance.
- On the Choose an Amazon Machine Image (AMI) page, choose an community AMI and search
yardstick
. - Choose
yardstick-benchmark-server
. - On the Choose an Instance Type page, select the hardware configuration and size of the instance to launch. Recommend to choose high network performance instance types: m3.xlarge, m3.2xlarge, c4.2xlarge, c4.xlarge.
- On the Configure Instance Details page choose number of instances. Add benchmark configuration properties into Advanced Details section: GIT_REPO, AWS_ACCESS_KEY, AWS_SECRET_KEY. For more information about credential see amazon documentation. http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSGettingStartedGuide/AWSCredentials.html
- On the Tag Instance set value for Name tag. For example
server
. - On the Configure Security Group page create or choose security group which has an inbound rule for port 0-65535. For example:
- Review and run instances.
- Open the Amazon EC2 console.
- From the Amazon EC2 console dashboard, click Launch Instance.
- On the Choose an Amazon Machine Image (AMI) page, choose an community AMI and search
yardstick
. - Choose
yardstick-benchmark-client
. - On the Choose an Instance Type page, select the hardware configuration. Recommend to choose high network performance instance types: m3.xlarge, m3.2xlarge, c4.2xlarge, c4.xlarge.
- On the Configure Instance Details page choose number of instances. Add benchmark configuration properties into Advanced Details section: GIT_REPO, AWS_ACCESS_KEY, AWS_SECRET_KEY, ES3_BUCKET (optional).
ES3_BUCKET
is bucket where will be uploaded benchmark results. IfES3_BUCKET
is not provided then will useyardstick-benchmark
bucket. For more information about credential see amazon documentation. http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSGettingStartedGuide/AWSCredentials.html - On the Tag Instance set value for Name tag. For example
client
. - On the Configure Security Group page create or choose security group which has an inbound rule for port 0-65535. For example:
- Review and run instances.
-
Install ec2 cli tools. http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/set-up-ec2-cli-linux.html.
-
Create Virtual Private Cloud (VPC). http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-CreateVpc.html.
-
Create Subnet for your VPC. http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-CreateSubnet.html.
-
Create security group which has an inbound rule for port 0-65535.
ec2-create-group GROUP_NAME -d GROUP_DESCRIPTION -c VPC_ID
The command will print out
security group id
which will be used in the following command:ec2-authorize SECURITY_GROUP_ID -P tcp -p 0-65535 -s 0.0.0.0/0
-
Create
AWS access key
andAWS secret key
. http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSGettingStartedGuide/AWSCredentials.html -
Create Amazon EC2 Key Pairs. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html
-
Create file with benchmark properties.
GIT_REPO=benchmark_repo AWS_ACCESS_KEY=your_access_key AWS_SECRET_KEY=your_secret_key
-
Run benchmark yardstick server AMI which has
ami-29a0486d
image id.ec2-run-instances ami-29a0486d --instance-type INSTANCE_TYPE -k KEY_PAIRS -n NUMBER_INSTANCES -s SUBNET_ID -g SECURITY_GROUP_ID -f PATH_TO_PROPERTY_FILE
NOTE: Recommend to choose high network performance instance types: m3.xlarge, m3.2xlarge, c4.2xlarge, c4.xlarge.
-
Create file with benchmark properties.
GIT_REPO=benchmark_repo AWS_ACCESS_KEY=your_access_key AWS_SECRET_KEY=your_secret_key ES3_BUCKET=bucket_name
*NOTE:
ES3_BUCKET
is bucket where will be uploaded benchmark results. IfES3_BUCKET
is not provided then will useyardstick-benchmark
bucket.*a -
Run benchmark yardstick client AMI which has
ami-45a14901
image id.ec2-run-instances ami-45a14901 --instance-type INSTANCE_TYPE -k KEY_PAIRS -n 1 -s SUBNET_ID -g SECURITY_GROUP_ID -f PATH_TO_PROPERTY_FILE
NOTE: Recommend to choose high network performance instance types: m3.xlarge, m3.2xlarge, c4.2xlarge, c4.xlarge.
-
Add tag for client instance. Preview command returned information about instance which has
instance id
.ec2-create-tags ami-45a14901 INSTANCE_ID --tag "Name=Client"
For monitoring benchmark execution need to connect to instances. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html
-
For accessing to execution progress need to know a
container id
. The following command will show it.sudo docker ps
-
Show logs.
sudo docker -f logs CONTAINER_ID
-
Enter to docker container.
sudo docker exec -it container_id /bin/bash
-
After benchmark execution results will be uploaded to S3 bucket. If the bucket contains previous results, then the client also will generate comparative charts which will be stored to the bucket. The bucket will look like as:
-
That see benchmark results directly on S3 bucket, need allow browser loading unsafe scrips.
Region | Yardstick server | Yardstick client |
---|---|---|
us-east-1 | ami-425a402a | ami-8ea4bfe6 |
us-west-1 | ami-29a0486d | ami-45a14901 |
us-west-2 | ami-6ba79a5b | ami-65a79a55 |
eu-west-1 | ami-b14f39c6 | ami-b54f39c2 |
eu-central-1 | ami-8ac5fb97 | ami-88c5fb95 |
-
Apache Ignite.
https://github.com/yardstick-benchmarks/yardstick-ignite
-
Hazelcast.
-
Infinispan
https://github.com/yardstick-benchmarks/yardstick-infinispan
-
Apache Ignite vs Apache Spark
is comming
-
Apache Ignite vs Apache Cassandra
is comming
The following benchmarks are provided:
- Benchmarks atomic distributed cache put operation
- Benchmarks atomic distributed cache put and get operations together
- Benchmarks transactional distributed cache put operation
- Benchmarks transactional distributed cache put and get operations together
- Benchmarks distributed SQL query over cached data
- Benchmarks distributed SQL query with simultaneous cache updates
Yardstick Docker is available under Apache 2.0 Open Source license.