summaryrefslogtreecommitdiffstats
path: root/perf-framework/README
blob: 7733c353506badece2e4372770d726b9e198542a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
Brief desciption of individual scripts:
----------------------------------------
acl - Enable/Disable acl on the backend filesystem.
analyze_perf_data - Create plots using the data generated during perf runs.
batchrun - Used for running multiple tarballs one after the other.
buildit - Build scripts used by deploy_gluster for parallel builds.
calc_all - Print results of all 3 runs performed in perf.sh
calc_avg - Print average of 3 runs performed in perf.sh
calc_best - Print best of the 3 runs performed in perf.sh
calc_worst - Print worst of the 3 runs performed in perf.sh
check_install - Print checksums of built and installed binaries
check_install.new - Check if installation succeeded on all machines.
create_gluster_vol - Create a gluster volume using parameters in gf_perf_conig
deploy_gluster - Install gluster from source on multiple machines
gf_perf_config - Example config file. Most scripts depend on this config file.
perf.sh - Perf test wrapper that runs perf-test.sh thrice.
perf-test.sh - Perf test
quota_gsync_run - Used to run different Quota/Gsync combinations
run - Used to run any command on multiple systems
setbatch - Set the tarballs for batch run
setrun - Set the tarball for a single run
start_perf_measure - Launch statistics collection script on all machines
involved in a perf run, start the perf run and save statistics post run.
stat_collect - Helper script to collect system statistics during perf runs.

diff_perfrun
------------
<File Begin>
DATA FOR BASELINE - Output of calc_avg for the baseline
followed by
DATA FOR THE NEW RUN - Output of calc_avg for the new run
<FILE END>

It also assumes that there are 4 columns - one each for Quota/Gsync combination.
You can then put in a criteria for percentage deviation from the baseline which should send out an alert.


Setting up the environment:
------------------------------------
* Initialize the required variables by modifying the example gf_perf_config
present in the git repo.

Building and deploying GlusterFS
------------------------------------
* Populate the BRICKS variable in gf_perf_config
* If you want to deploy a tarball, update the tarball in gf_perf_config
and then run "deploy_gluster". This will copy the tarball to all the bricks and
will build it there. This uses a script called buildit which is part of the
repo.

Running the tests
------------------------------------
* Use start_perf_measure to run the tests. The test run details can be changed
in gf_perf_config before the run. You can specify whether the configuration is
a distribute, replicate or distributed-replicate (distrep).
* This will generate statistics in the log_repo for the current run under the
director - "$log_repo/<current run>"
* The run "id" is maintained by a ".runfile" which gets generated on the first
run and is later updated as required during subsequent runs.
* NOTE: You can use "batchrun" to start tests for all combinations. Downloading
the tarball to the cwd is the responsibility of the user.

Analyzing the output
------------------------------------
* Use analyze_perf_measure to generate plots of resource utilization for all the
bricks and the client.

Running Quota and Gsync combinations:
------------------------------------
* After an initial run (as described above) is complete, you can run different
combinations of Quota/Gsync by running quota_gsync_run.
* NOTE: Before running this script, it is important to comment out the line -
./create_gluster_vol in the script start_perf_measure.
Otherwise, a new volume will be created for every combination, which will wipe
out the Quota/Gsync settings. Look at the usage in batchrun.
TODO: Need to use the gluster command line to enable/disable quota/gsync instead
of directly modifying the volume file.

Setting up automated-email setup:
--------------------------------
* Setup automated emails to send results as soon as the runs are done. The whole
email setup is done using Lakshmipathi's inotify program available at
http://github.com/gluster/qa/blob/master/c_pgms/inotify.c & when a file is scpd
to the particular destination, inotify sends across the mail from a shell.gluster.com
account.