Skip to content

Commit

Permalink
Merge pull request #9 from dustinblack/perf-tests
Browse files Browse the repository at this point in the history
Perf tests
Self-tested; merging for BZ 1535407
  • Loading branch information
dustinblack committed Jan 31, 2018
2 parents d2c2984 + 32d7315 commit 49ce42d
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 6 deletions.
19 changes: 15 additions & 4 deletions ansible/g1-perf-test.yml
Expand Up @@ -35,21 +35,21 @@
run_once: true
template:
src: g1-jobfile-fio.j2
dest: "/root/g1-perf-jobfile.fio"
dest: "{{ perf_jobfile }}"

- name: Create server list file
delegate_to: "{{ play_hosts[0] }}"
run_once: true
file:
dest: /root/g1-perf-server.list
dest: "{{ perf_server_list }}"
mode: 0644
state: touch

- name: Populate server list file
delegate_to: "{{ play_hosts[0] }}"
run_once: true
lineinfile:
dest: /root/g1-perf-server.list
dest: "{{ perf_server_list }}"
state: present
regexp: "^{{ item['node'] }}"
line: "{{ item['node'] }}"
Expand All @@ -58,12 +58,23 @@

#TODO: server list for non-arbiter

- name: Populate server list file
delegate_to: "{{ play_hosts[0] }}"
run_once: true
lineinfile:
dest: "{{ perf_server_list }}"
state: present
regexp: "^{{ item }}"
line: "{{ item }}"
with_items: "{{ hostnames }}"
when: arbiter != True

- shell: /bin/bash -c 'echo "Starting performance tests..." > {{ fifo }}'

- name: Start fio client request
delegate_to: "{{ play_hosts[0] }}"
run_once: true
shell: /bin/bash -c '/bin/fio --output=/root/g1-perf-results.out --client=/root/g1-perf-server.list /root/g1-perf-jobfile.fio'
shell: /bin/bash -c '/bin/fio --output={{ perf_output }} --client={{ perf_server_list }} {{ perf_jobfile }}'

#- name: Analyze performance results
#TODO
Expand Down
16 changes: 14 additions & 2 deletions gluster-colonizer.py
Expand Up @@ -111,6 +111,11 @@
peerInventory = "/var/tmp/peerInventory.ansible-" + "".join(random.sample(rand_filename_sample, rand_filename_len))
ansible_ssh_key = "/home/ansible/.ssh/id_rsa"

# Performance test files
perf_jobfile = "/var/tmp/g1-perf-jobfile.fio-" + "".join(random.sample(rand_filename_sample, rand_filename_len))
perf_server_list = "/var/tmp/g1-perf-server.list-" + "".join(random.sample(rand_filename_sample, rand_filename_len))
perf_output = "/root/g1-perf-results.out"

# Set maximum number of nodes
# TODO: Move this to OEMID file
nodes_max = 24
Expand Down Expand Up @@ -1243,8 +1248,15 @@ def autoNodeInformation():

if run_perf_tests:
logger.info("Beginning performance tests. Please be patient...")
run_ansible_playbook(g1_path + '/ansible/g1-perf-test.yml --extra-vars="{default_volname: ' + str(default_volname) + ',replica_peers: ' + str(peer_list_min) + ',arbiter: ' + str(arbiter) +'}"')
logger.info("Performance tests complete.")
playbook_args = g1_path + '/ansible/g1-perf-test.yml --extra-vars="{default_volname: ' + str(default_volname) + ',hostnames: ' + str(hostnames) + ',arbiter: ' + str(arbiter) + ',perf_jobfile: ' + str(perf_jobfile) + ',perf_server_list: ' + str(perf_server_list) + ',perf_output : ' + str(perf_output)
if 'peer_set' in globals():
playbook_args += ',replica_peers: ' + str(peer_list_min)
playbook_args += '}"'
perf_tests_complete = run_ansible_playbook(playbook_args, continue_on_fail=True)
if perf_tests_complete:
logger.info("Performance tests complete. Results at: %s" % str(perf_output))
else:
logger.warning("Performance tests failed. Please see log for more information.")
else:
logger.warning("Performance tests skipped")
#TODO: Add instructions for running the performance tests later
Expand Down

0 comments on commit 49ce42d

Please sign in to comment.