This is an automated email from the ASF dual-hosted git repository.

jbarrett pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode-benchmarks.git


The following commit(s) were added to refs/heads/develop by this push:
     new 439b857  Expanding and clarifying readme files for using aws and 
scripts. (#102)
439b857 is described below

commit 439b85762ed5d8261930c82bfc449cd9ab1ef41d
Author: Donal Evans <[email protected]>
AuthorDate: Mon Aug 26 12:11:46 2019 -0700

    Expanding and clarifying readme files for using aws and scripts. (#102)
---
 README.md                            | 22 +++++++-------
 infrastructure/scripts/aws/README.md | 57 +++++++++++++++++++++++++++++++-----
 2 files changed, 59 insertions(+), 20 deletions(-)

diff --git a/README.md b/README.md
index e3f6534..3fad270 100644
--- a/README.md
+++ b/README.md
@@ -13,19 +13,17 @@ test configuration and test execution framework.
 These benchmarks are under development.
 
 ## Running the benchmarks
-The benchmarks require machines with passwordless ssh enabled in order to run.
-So ensure that the authentication key pair for SSH does not have a passphrase. 
If you had 
-already previously created a key pair with a passphrase, you can create a 
different key pair which
-is of a different type than the previously created one. Public key needs to be 
in PEM format. Some newer OpenSSH
-versions default to a new format. Use `-m PEM` to force PEM format.
+The benchmarks require machines with passwordless ssh enabled in order to run, 
so ensure that the authentication key pair for SSH does not have a passphrase. 
If you have previously created a key pair with a passphrase, you can create a 
different key pair which
+is of a different type than the previously created one. Be sure to backup your 
existing key pair before creating a new one. The public key needs to be in PEM 
format, but some newer OpenSSH
+versions default to a new format. PEM format can be forced by using `-m PEM`:
 ```
 ssh-keygen -m PEM -t rsa
 ```
-While runinng a test on a single machine (i.e. localhost) add the generated 
key to `authorized_keys` to authorize the user.
+While runinng a test on a single machine (i.e. localhost) add the generated 
key to `authorized_keys` to authorize the user:
 ```
 cat <your_public_key_file> >> ~/.ssh/authorized_keys
 ```
-Test if you can ssh to localhost.
+Test if you can ssh to localhost:
 ```
 ssh localhost
 ```
@@ -59,9 +57,9 @@ Options:
     -d                    : Debug
     -i                    : Info
 ```    
-### Running in aws
+### Scripts for running in aws and analyzing results
 
-This project includes some scripts to automate running benchmarks in AWS. See 
the 
+This project includes some scripts to automate running benchmarks in AWS and 
analyzing the results produced (as well as the results produced from running 
locally). See the 
 [README.md](infrastructure/scripts/aws/README.md) in the infrastructure/aws 
directory.
 
 ## Project structure
@@ -72,12 +70,12 @@ The project is divided into two modules
 
 ## Sample benchmark
 
-Benchmarks are defined in a declarative configuration classes. Each 
configuration class is run as 
+Benchmarks are defined in declarative configuration classes. Each 
configuration class is run as 
 a junit test which calls the configure method and passes it to the TestRunner, 
which executes
 the test on the provided TEST_HOSTS.
 
-Benchmarks are composed of `before tasks`, `after tasks`, and `workload 
tasks`. The `before` and `after`
-tasks are run once. `Workload` tasks are run repeatedly and their execution 
time is measured and
+Benchmarks are composed of `before` tasks, `after` tasks, and `workload` 
tasks. Each seperate `before` and `after`
+task is run once. `Workload` tasks are run repeatedly and their execution time 
is measured and
 reported by the yardstick framework. 
 
 ```java
diff --git a/infrastructure/scripts/aws/README.md 
b/infrastructure/scripts/aws/README.md
index badff0a..177de15 100644
--- a/infrastructure/scripts/aws/README.md
+++ b/infrastructure/scripts/aws/README.md
@@ -4,11 +4,23 @@ These utilities create instances and run tests in your AWS 
account
 
 # Prerequisites
 * You must have the aws cli installed. If `aws` is not on your path then you 
can try to install it with `pip3 install awscli --upgrade --user`. See 
[Amazon's aws cli installation 
instructions](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)
-* You must also set your secret key for the CLI. You must set up a profile 
named `geode-benchmarks`, so use the command `aws configure --profile 
geode-benchmarks` to configure the CLI. You will need to specify the "AWS 
Access Key ID" and "AWS Secret Access Key". You can get these from an existing 
team member. Set the "Default region name" to "us-west-2". See [Amazon's 
instructions](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+* You must also set your secret key for the CLI. You must set up a profile 
named `geode-benchmarks`, so use the command `aws configure --profile 
geode-benchmarks` to configure the CLI. You will need to specify the "AWS 
Access Key ID" and "AWS Secret Access Key," which can be obtained from a team 
member. Set the "Default region name" to "us-west-2". See [Amazon's 
instructions](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+
+       Alternately, if you already have AWS credentials and just need to 
create the `geode-benchmarks` profile, you can first modify your existing AWS 
credentials file (found at `~/.aws/credentials`) and add the following lines:
+
+        [geode-benchmarks]
+        aws_access_key_id = Your access ID key
+        aws_secret_access_key = Your secret access key
+
+       Then modify the `config` file found in the same directory and add the 
following:
+
+        [profile geode-benchmarks]
+        region = us-west-2
+
 
 # Image
 
-If you need to build the image, you must have packer installed. But you can 
run the following scripts (launch, run, destroy) without building the image.
+If you need to build the image, you must have packer installed. The following 
scripts (launch, run, analyze, destroy) can be run without building the image.
 Build the image in the image directory using the `build_image.sh` script.
 
 
@@ -20,13 +32,13 @@ One of the ways that can be done is via environment 
variables.
     prompt> aws configure
     AWS Access Key ID [****************foo1]:
     AWS Secret Access Key [****************bar2]:
-    Default region name [us-west-1]:
+    Default region name [us-west-2]:
 
 Export environment variables as follows.
 
     export AWS_ACCESS_KEY_ID=myaccesskeyfoo1
     export AWS_SECRET_ACCESS_KEY=mysecretaccesskeybar2
-    export AWS_REGION="us-west-1"
+    export AWS_REGION="us-west-2"
 
 
 # launch_cluster.sh
@@ -85,12 +97,29 @@ Options:
     -B|--gbb|--baseline-branch|--baseline-geode-branch   : Geode Baseline 
Branch (default: develop)
     -m|--metadata                                        : Test metadata to 
output to file, comma-delimited (optional)
     --ci                                                 : Set when the 
instances are being started for use in Continuous Integration
-    --                                                   : All subsequent 
arguments are passed to the benchmark tast as arguments
+    --                                                   : All subsequent 
arguments are passed to the benchmark task as arguments
     -h|-?|--help                                         : Help message
 
     e.g. ./run_against_baseline.sh -t test_environment  -v <sha1 of target 
version> -V <sha1 of base version>  -R <baseline repo e.g. user/geode> -B 
<baseline branch name> -b <target branch name> -r <target repo e.g. user/geode>
 
 
+# analyze_tests.sh
+Compares the results of two benchmark runs and outputs analysis of their 
relative performance.
+
+Usage:
+
+    ./analyze_tests.sh  [-o <output directory> | [--baselineDir <baseline 
directory> --branchDir <branch directory>]] [options ...] [-- arguments ...]
+
+Options:
+
+    -o|--output|--outputDir  : The directory containing benchmark results
+    --baseline|--baselineDir : The directory containing baseline benchmark 
results
+    --branch|--branchDir     : The directory containing branch benchmark 
results
+    --ci                     : Set if starting instances for Continuous 
Integration
+    --                       : All subsequent arguments are passed to the 
benchmark task as arguments.
+    -h|--help                : This help message
+
+
 # destroy_cluster.sh
 Destroys a cluster that you created.
 
@@ -105,12 +134,24 @@ Options:
     -h|-?|--help : Help message
 
 
-#Example
+## Example
+
+Example 1 - Generating and comparing two benchmark runs using run_tests.sh and 
analyze_tests.sh. 
+
+The first command creates a new cluster with 4 instances and the tag 
"mycluster" using launch_cluster.sh.
+
+The second command runs only the `MyCustomBenchmark` benchmark test (by using 
the `-- --tests=MyCustomBenchmark` argument) found on the `myBenchmarkBranch` 
branch of the `myGit/geode-benchmarks` repository. This benchmark runs against 
the develop branch of Geode, adds some metadata, and outputs the results to 
`~/benchmarking/baseline` using run_test.sh. 
+
+The third command runs the same benchmark against the `myGeodeBranch` branch 
of the `myGit/geode` repository and outputs the results to 
`~/benchmarking/branch` using run_tests.sh. 
+
+The fourth command compares the results found in `~/benchmarking/branch` to 
the results found in `~/benchmarking/baseline` and outputs analysis of the 
operations per second and latency of the branch benchmark relative to the 
baseline using analyze_tests.sh.
 
-Example 1 - run_test.sh:
+The fifth command destroys the cluster using destroy_cluster.sh.
 ```bash
 ./launch_cluster.sh --tag mycluster --count 4
-./run_tests.sh --tag mycluster --geode-branch develop --benchmark-branch 
benchmarkBranch --metadata 
"'name':'HelenaTestingCPUs','CPU':'256','geodeBranch':'CPUTest'"
+./run_tests.sh --tag mycluster --geode-branch develop --benchmark-repo 
myGit/geode-benchmarks --benchmark-branch myBenchmarkBranch --metadata 
"'name':'HelenaTestingCPUs','CPU':'256','geodeBranch':'CPUTest'" --output 
~/benchmarking/baseline -- --tests=MyCustomBenchmark
+./run_tests.sh --tag mycluster --geode-repo myGit/geode --geode-branch 
myGeodeBranch --benchmark-repo myGit/geode-benchmarks --benchmark-branch 
myBenchmarkBranch --metadata 
"'name':'HelenaTestingCPUs','CPU':'256','geodeBranch':'CPUTest'" --output 
~/benchmarking/branch -- --tests=MyCustomBenchmark
+./analyze_tests.sh --branch ~/benchmarking/branch --baseline 
~/benchmarking/baseline
 ./destroy_cluster.sh --tag mycluster
 ```
 

Reply via email to