From 36f6aa40ca02ef9ef1d24e61af337a960b8a76cd Mon Sep 17 00:00:00 2001 From: "wu.zhihui" Date: Thu, 20 Oct 2016 20:31:24 +0800 Subject: reorganize playbooks directory MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In this patch, playbooks will not be deleted temporarily.Diectory playbooks will be reorganized like this benchmarks/ ├── fio_jobs │   └── test_job ├── perftest    ├── common    │   ├── git_proxy_pbook.yaml    │   ├── sys_info_pbook.yaml    │   └── sys_proxy_pbook.yaml    ├── dhrystone.yaml    ├── dpi.yaml    ├── etc    │   ├── dpi_average.sh    │   ├── info_collect.py    │   └── test_job    ├── fio.yaml    ├── iperf.yaml    ├── ramspeed.yaml    ├── ssl.yaml    └── whetstone.yaml utils/ └── transform ├── dpi_transform.py ├── final_report.py ├── fio_transform.py ├── __init__.py ├── iperf_transform.py ├── ramspeed_transform.py ├── ssl_transform.py └── ubench_transform.py JIRA: QTIP-131 Change-Id: I41003f2f1935efd15b6221ac05200f391fa8a6a9 Signed-off-by: wu.zhihui --- benchmarks/perftest/common/git_proxy_pbook.yaml | 11 ++ benchmarks/perftest/common/sys_info_pbook.yaml | 42 +++++++ benchmarks/perftest/common/sys_proxy_pbook.yaml | 53 ++++++++ benchmarks/perftest/dhrystone.yaml | 112 +++++++++++++++++ benchmarks/perftest/dpi.yaml | 120 ++++++++++++++++++ benchmarks/perftest/etc/dpi_average.sh | 14 +++ benchmarks/perftest/etc/info_collect.py | 86 +++++++++++++ benchmarks/perftest/etc/test_job | 13 ++ benchmarks/perftest/fio.yaml | 105 ++++++++++++++++ benchmarks/perftest/iperf.yaml | 161 ++++++++++++++++++++++++ benchmarks/perftest/ramspeed.yaml | 109 ++++++++++++++++ benchmarks/perftest/ssl.yaml | 113 +++++++++++++++++ benchmarks/perftest/whetstone.yaml | 111 ++++++++++++++++ 13 files changed, 1050 insertions(+) create mode 100644 benchmarks/perftest/common/git_proxy_pbook.yaml create mode 100644 benchmarks/perftest/common/sys_info_pbook.yaml create mode 100644 benchmarks/perftest/common/sys_proxy_pbook.yaml create mode 100644 benchmarks/perftest/dhrystone.yaml create mode 100644 benchmarks/perftest/dpi.yaml create mode 100644 benchmarks/perftest/etc/dpi_average.sh create mode 100644 benchmarks/perftest/etc/info_collect.py create mode 100644 benchmarks/perftest/etc/test_job create mode 100644 benchmarks/perftest/fio.yaml create mode 100644 benchmarks/perftest/iperf.yaml create mode 100644 benchmarks/perftest/ramspeed.yaml create mode 100644 benchmarks/perftest/ssl.yaml create mode 100644 benchmarks/perftest/whetstone.yaml (limited to 'benchmarks') diff --git a/benchmarks/perftest/common/git_proxy_pbook.yaml b/benchmarks/perftest/common/git_proxy_pbook.yaml new file mode 100644 index 00000000..5cb6f450 --- /dev/null +++ b/benchmarks/perftest/common/git_proxy_pbook.yaml @@ -0,0 +1,11 @@ +#git +- name: set git proxy(http) + shell: "git config --global http.proxy {{ http_proxy }}" + when: http_proxy is defined + ignore_errors: yes + +- name: set git proxy(https) + shell: "git config --global https.proxy {{https_proxy}}" + when: https_proxy is defined + ignore_errors: yes + diff --git a/benchmarks/perftest/common/sys_info_pbook.yaml b/benchmarks/perftest/common/sys_info_pbook.yaml new file mode 100644 index 00000000..5c2d8f79 --- /dev/null +++ b/benchmarks/perftest/common/sys_info_pbook.yaml @@ -0,0 +1,42 @@ + - name: Epel Release install when CentOS + shell: sudo yum install epel-release -y + when: ansible_os_family == "RedHat" + + - name: Inxi install when CentOS + shell: sudo yum install inxi -y + when: ansible_os_family == "RedHat" + + - name: Software Properties Common + shell: sudo apt-get install software-properties-common -y + when: ansible_os_family == "Debian" + + - name: adding trusty-backport main repo + shell: sudo apt-add-repository "deb http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse" + when: ansible_os_family == "Debian" + + - name: adding trusty main repo + shell: sudo apt-add-repository "deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse" + when: ansible_os_family == "Debian" + + - name: system info collection tool install when Ubuntu + shell: sudo apt-get update && apt-get install inxi -y + when: ansible_os_family == "Debian" + + - name: Install ansible copy dependencies if remote host has selinux enabled + shell: sudo yum install libselinux-python -y + when: ansible_os_family == "RedHat" + + - name: Install ansiblle copy dependencies if remote host has selinux enaled + shell: sudo apt-get install python-selinux -y + when: ansible_os_family == "Debian" + + - name: system_info script copy + copy: src=../etc/info_collect.py dest={{home_dir.stdout}}/qtip_result/ + + - name: collecting system informaton for non-network test cases + shell: cd $HOME/qtip_result && sudo python info_collect.py c + when: not network + + - name: collecting system information for network test cases + shell: cd $HOME/qtip_result && sudo python info_collect.py n + when: network diff --git a/benchmarks/perftest/common/sys_proxy_pbook.yaml b/benchmarks/perftest/common/sys_proxy_pbook.yaml new file mode 100644 index 00000000..bf4a8ccb --- /dev/null +++ b/benchmarks/perftest/common/sys_proxy_pbook.yaml @@ -0,0 +1,53 @@ +#env +- name: insert shell proxy http + lineinfile: dest=/etc/profile.d/proxy.sh state=present create=yes owner=root group=root mode=0644 regexp="export http_proxy={{ http_proxy }}" + insertafter=EOF line="export http_proxy={{ http_proxy }}" + when: http_proxy is defined + ignore_errors: yes + +- name: insert shell proxy https + lineinfile: dest=/etc/profile.d/proxy.sh state=present create=yes owner=root group=root mode=0644 regexp="export https_proxy={{ https_proxy }}" + insertafter=EOF line="export https_proxy={{ https_proxy }}" + when: https_proxy is defined + ignore_errors: yes + +- name: insert no proxy + lineinfile: dest=/etc/profile.d/proxy.sh state=present create=yes owner=root group=root mode=0644 regexp="{{ no_proxy }}" + insertafter=EOF line="export no_proxy={{ no_proxy }}" + when: no_proxy is defined + ignore_errors: yes + +#wget +- name: insert wget proxy(http) + lineinfile: dest=/etc/wgetrc state=present regexp="http_proxy={{ http_proxy }}" + insertafter="^#http_proxy" line="http_proxy={{ http_proxy }}" + when: http_proxy is defined + ignore_errors: yes + +- name: insert wget proxy(https) + lineinfile: dest=/etc/wgetrc state=present regexp="https_proxy={{ https_proxy }}" + insertafter="^#https_proxy" line="https_proxy={{ https_proxy }}" + when: https_proxy is defined + ignore_errors: yes + +#yum +- name: insert yum proxy(http) + lineinfile: dest=/etc/yum.conf state=present regexp="proxy={{ http_proxy }}" + insertafter=EOF line="proxy={{ http_proxy }}" + when: ansible_os_family == "RedHat" and http_proxy is defined + ignore_errors: yes + +#apt + +- name: insert apt proxy(http) + lineinfile: dest=/etc/apt/apt.conf state=present create=yes regexp="Acquire::http::Proxy \"{{ http_proxy }}\";" + insertafter=EOF line="Acquire::http::Proxy \"{{ http_proxy }}\";" + when: ansible_os_family == "Debian" and http_proxy is defined + ignore_errors: yes + +- name: insert apt proxy(https) + lineinfile: dest=/etc/apt/apt.conf state=present create=yes regexp="Acquire::https::Proxy \"{{ https_proxy }}\";" + insertafter=EOF line="Acquire::https::Proxy \"{{ https_proxy }}\";" + when: ansible_os_family == "Debian" and https_proxy is defined + ignore_errors: yes + diff --git a/benchmarks/perftest/dhrystone.yaml b/benchmarks/perftest/dhrystone.yaml new file mode 100644 index 00000000..5f83bbb0 --- /dev/null +++ b/benchmarks/perftest/dhrystone.yaml @@ -0,0 +1,112 @@ + - hosts: localhost + connection: local + gather_facts: no + + tasks: + - name: making dhrystone directory + file: path={{workingdir}}/{{Dest_dir}}/dhrystone state=directory + + - name: making temporary dhrystone directory + file: path={{workingdir}}/{{Dest_dir}}/dhrystone/dhrystone_temp state=directory + + - hosts: "{{role}}" + become: yes + remote_user: "{{username}}" + + tasks: + - name: checking home directory + shell: echo $HOME + register: home_dir + + - name: cleaning tempT + shell: sudo rm -rf $HOME/tempT + + - name: cleaning qtip_result + shell: sudo rm -rf $HOME/qtip_result + + - name: make directory + shell: sudo mkdir $HOME/qtip_result + + - include: ../common/sys_proxy_pbook.yaml + + - include: ../common/sys_info_pbook.yaml + vars: + network: false + + - name: Installing UnixBench dependencies if CentOS + shell: sudo yum install git gcc patch perl-Time-HiRes -y + when: ansible_os_family == "RedHat" + + - name: Installing UnixBench dependencies if Ubuntu + shell: sudo apt-get install git gcc patch perl -y + when: ansible_os_family == "Debian" + + - include: ../common/git_proxy_pbook.yaml + + - name: Clone unixbench + git: repo=https://github.com/kdlucas/byte-unixbench.git + dest=$HOME/tempT + + - name: make + shell: sudo make --directory $HOME/tempT/UnixBench/ + + - name: Run dhrystone + shell: cd $HOME/tempT/UnixBench/&& sudo ./Run -v dhrystone + + - name: collecting and transforming result script copy + copy: src={{workingdir}}/utils/transform/ubench_transform.py dest={{home_dir.stdout}}/qtip_result/ + + - name: transforming result + shell: cd $HOME/qtip_result/ && sudo python ubench_transform.py + + - name: copying consolidated report script + copy: src={{workingdir}}/utils/transform/final_report.py dest={{home_dir.stdout}}/qtip_result/ + + - name: making consolidated report + shell: cd $HOME/qtip_result && sudo python final_report.py Dhrystone {{fname}} + + - name: making directory + file: path={{home_dir.stdout}}/qtip_result/log state=directory + + - name: copying result to temp directory + shell: sudo cp -r $HOME/tempT/UnixBench/results/* $HOME/qtip_result/log/ + + - name: registering files + shell: (cd $HOME/qtip_result/; find . -maxdepth 1 -name "*.json") | cut -d'/' -f2 + register: files_to_copy + + - name: copy results + fetch: src={{home_dir.stdout}}/qtip_result/{{item}} dest={{workingdir}}/{{Dest_dir}}/dhrystone/dhrystone_temp + with_items: "{{files_to_copy.stdout_lines}}" + + - name: registering log files + shell: (cd $HOME/qtip_result/log/; find . -maxdepth 1 -name "*.log") | cut -d'/' -f2 + register: copy_log_results + + - name: copying log results + fetch: src={{home_dir.stdout}}/qtip_result/log/{{item}} dest={{workingdir}}/{{Dest_dir}}/dhrystone/dhrystone_temp + with_items: "{{copy_log_results.stdout_lines}}" + + - name: cleaning tempT + shell: sudo rm -rf $HOME/tempT + + - name: cleaning_qtip_result + shell: sudo rm -rf $HOME/qtip_result + + + - hosts: localhost + connection: local + gather_facts: no + + tasks: + - name: extracting_json + shell: ( find {{workingdir}}/{{Dest_dir}}/dhrystone/dhrystone_temp/ -name "*.json" | xargs cp -t {{workingdir}}/{{Dest_dir}}/dhrystone/) + + - name: making_logs_folder + shell: mkdir -p {{workingdir}}/{{Dest_dir}}/dhrystone/logs + + - name: extracting_log + shell: ( find {{workingdir}}/{{Dest_dir}}/dhrystone/dhrystone_temp/ -name "*.log" | xargs cp -t {{workingdir}}/{{Dest_dir}}/dhrystone/logs) + + - name: removing dhrystone_temp + shell: rm -rf {{workingdir}}/{{Dest_dir}}/dhrystone/dhrystone_temp diff --git a/benchmarks/perftest/dpi.yaml b/benchmarks/perftest/dpi.yaml new file mode 100644 index 00000000..59d01d58 --- /dev/null +++ b/benchmarks/perftest/dpi.yaml @@ -0,0 +1,120 @@ + - hosts: localhost + connection: local + gather_facts: no + + tasks: + - name: making dpi directory + file: path={{workingdir}}/{{Dest_dir}}/dpi state=directory + + - name: making temporary whetstone directory + file: path={{workingdir}}/{{Dest_dir}}/dpi/dpi_temp state=directory + + - hosts: "{{role}}" + become: yes + remote_user: "{{username}}" + + tasks: + - name: echo + shell: echo $USER + + - name: checking home directory + shell: echo $HOME + register: home_dir + + - name: cleaning + shell: sudo rm -rf $HOME/tempD + + - name: cleaning previous results + shell: sudo rm -rf $HOME/qtip_result + + - name: make qtip_result + shell: sudo mkdir $HOME/qtip_result + + - include: ../common/sys_proxy_pbook.yaml + + - include: ../common/sys_info_pbook.yaml + vars: + network: false + + - name: Installing nDPI dependencies if CentOS + shell: sudo yum install git gcc patch perl-Time-HiRes autofconf automake libpcap-devel libtool -y + when: ansible_os_family == "RedHat" + + - name: Installing nDPI dependcies if Ubuntu + shell: sudo apt-get install git gcc patch autoconf automake libpcap-dev libtool -y + when: ansible_os_family == "Debian" + + - name: making nDPI temporary directory + shell: sudo mkdir $HOME/tempD + + - include: ../common/git_proxy_pbook.yaml + + - name: Clone nDPI + git: repo=https://github.com/ntop/nDPI.git + dest=$HOME/tempD/nDPI + + - name: autogen + shell: cd $HOME/tempD/nDPI && sudo ./autogen.sh + + - name: configure + shell: cd $HOME/tempD/nDPI && sudo ./configure + + - name: make + shell: cd $HOME/tempD/nDPI && sudo make + + - name: Fetching Test_pcap file + shell: cd $HOME/tempD/nDPI/example && wget http://build.opnfv.org/artifacts.opnfv.org/qtip/utilities/test.pcap + + - name: fetch Averaging script + copy: src=../etc/dpi_average.sh dest={{home_dir.stdout}}/tempD/nDPI/example mode=777 + + - name: Run nDPI benchmark + shell: cd $HOME/tempD/nDPI/example && sudo ./dpi_average.sh + + - name: copy result to temp_direc + shell: sudo cp $HOME/tempD/nDPI/example/dpi_dump.txt $HOME/qtip_result + + - name: fetch dpi result transform script + copy: src={{workdingdir}}/utils/transform/dpi_transform.py dest={{home_dir.stdout}}/qtip_result + + - name: Transforming results + shell: cd $HOME/qtip_result && sudo python dpi_transform.py + + - name: copy report formation script + copy: src={{workdingdir}}/utils/transform/final_report.py dest={{home_dir.stdout}}/qtip_result + + - name: consolidating report + shell: cd $HOME/qtip_result && sudo python final_report.py DPI {{fname}} + + - name: registering files + shell: (cd $HOME/qtip_result/; find . -maxdepth 1 -name "*.json") | cut -d'/' -f2 + register: files_to_copy + + - name: copy results + fetch: src={{home_dir.stdout}}/qtip_result/{{item}} dest={{workingdir}}/{{Dest_dir}}/dpi/dpi_temp + with_items: "{{files_to_copy.stdout_lines}}" + + - name: registering log files + shell: (cd $HOME/qtip_result/; find . -maxdepth 1 -name "*.log") | cut -d'/' -f2 + register: copy_log_results + + - name: copying log results + fetch: src={{home_dir.stdout}}/qtip_result/{{item}} dest={{workingdir}}/{{Dest_dir}}/dpi/dpi_temp + with_items: "{{copy_log_results.stdout_lines}}" + + - hosts: localhost + connection: local + gather_facts: no + + tasks: + - name: extracting_json + shell: ( find {{workingdir}}/{{Dest_dir}}/dpi/dpi_temp/ -name "*.json" | xargs cp -t {{workingdir}}/{{Dest_dir}}/dpi/) + + - name: making_logs_folder + shell: mkdir -p {{workingdir}}/{{Dest_dir}}/dpi/logs + + - name: extracting_log + shell: ( find {{workingdir}}/{{Dest_dir}}/dpi/dpi_temp/ -name "*.log" | xargs cp -t {{workingdir}}/{{Dest_dir}}/dpi/logs) + + - name: removing dpi_temp + shell: rm -rf {{workingdir}}/{{Dest_dir}}/dpi/dpi_temp diff --git a/benchmarks/perftest/etc/dpi_average.sh b/benchmarks/perftest/etc/dpi_average.sh new file mode 100644 index 00000000..405d3ff6 --- /dev/null +++ b/benchmarks/perftest/etc/dpi_average.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +COUNTER=0 +WDIR=$PWD +while [ $COUNTER -lt 10 ]; do + + echo $WDIR + $( ./ndpiReader -i test.pcap >> $WDIR/dpi_dump.txt ) + let COUNTER=COUNTER+1 + echo "Run number: $COUNTER" + +done + + diff --git a/benchmarks/perftest/etc/info_collect.py b/benchmarks/perftest/etc/info_collect.py new file mode 100644 index 00000000..3fc35d5a --- /dev/null +++ b/benchmarks/perftest/etc/info_collect.py @@ -0,0 +1,86 @@ +import os +import pickle +import json +import sys + +os.system('inxi -b -c0 -n > $PWD/est_2') +est_ob = open("est_2", "r+") +est_ob2 = open("est_1", "w+") +in_string = est_ob.read().replace('\n', ' ') +cpu_idle = float(os.popen("""top -bn1 | grep "Cpu(s)" | awk '{print $8}'""").read().rstrip()) +cpu_usage = 100 - cpu_idle +est_ob2.write(in_string) +est_ob.close() +est_ob2.close() + +inxi_host = os.popen("""cat $PWD/est_1 | grep -o -P '(?<=Host:).*(?=Kernel)' """).read().lstrip().rstrip() +inxi_mem = os.popen("""cat $PWD/est_1 | grep -o -P '(?<=Memory:).*(?=MB)' """).read().lstrip().rstrip() + "MB" +inxi_cpu = os.popen("""cat $PWD/est_1 | grep -o -P '(?<=CPU).*(?=speed)' | cut -f2 -d':'""").read().lstrip().rstrip() +inxi_distro = os.popen(""" cat $PWD/est_1 | grep -o -P '(?<=Distro:).*(?=Machine:)' """).read().rstrip().lstrip() +inxi_kernel = os.popen(""" cat $PWD/est_1 | grep -o -P '(?<=Kernel:).*(?=Console:)' """).read().rstrip().lstrip() +inxi_HD = os.popen(""" cat $PWD/est_1 | grep -o -P '(?<=HDD Total Size:).*(?=Info:)' """).read().rstrip().lstrip() +inxi_product = os.popen(""" cat $PWD/est_1 | grep -o -P '(?<=product:).*(?=Mobo:)' """).read().rstrip().lstrip() + +info_dict = {'hostname': inxi_host, + 'product': inxi_product, + 'os': inxi_distro, + 'kernel': inxi_kernel, + 'cpu': inxi_cpu, + 'cpu_usage': '{0}%'.format(str(round(cpu_usage, 3))), + 'memory_usage': inxi_mem, + 'disk_usage': inxi_HD} +network_flag = str(sys.argv[1]).rstrip() + +if (network_flag == 'n'): + + info_dict['network_interfaces'] = {} + tem_2 = """ cat $PWD/est_1 | grep -o -P '(?<=Network:).*(?=Info:)'""" + print os.system(tem_2 + ' > Hello') + i = int(os.popen(tem_2 + " | grep -o 'Card' | wc -l ").read()) + print i + + for x in range(1, i + 1): + tem = """ cat $PWD/est_1 | grep -o -P '(?<=Card-""" + str(x) + """:).*(?=Card-""" + str(x + 1) + """)'""" + if i == 1: + tem = """ cat $PWD/est_1 | grep -o -P '(?<=Network:).*(?=Info:)'""" + inxi_card_1 = ((os.popen(tem + " | grep -o -P '(?<=Card:).*(?=Drives:)'|sed 's/ *driver:.*//'").read().rstrip().lstrip())) + print inxi_card_1 + info_dict['network_interfaces']['interface_' + str(x)] = {} + info_dict['network_interfaces']['interface_' + str(x)]['network_card'] = inxi_card_1 + inxi_card_2 = ((os.popen(tem + "| grep -o -P '(?<=Card:).*(?=Drives:)'|sed -e 's/^.*IF: //'").read())).rstrip().lstrip() + info_dict['network_interfaces']['interface_' + str(x)]['interface_info'] = inxi_card_2 + elif x < (i): + print "two" + inxi_card_1 = ((os.popen(tem + "| sed 's/ *driver:.*//'").read().rstrip().lstrip())) + info_dict['network_interfaces']['interface_' + str(x)] = {} + info_dict['network_interfaces']['interface_' + str(x)]['network_Card'] = inxi_card_1 + inxi_card_2 = ((os.popen(tem + "|sed -e 's/^.*IF: //'").read())).rstrip().lstrip() + info_dict['network_interfaces']['interface_' + str(x)]['interface_info'] = inxi_card_2 + elif x == i: + print "Three" + info_dict['network_interfaces']['interface_' + str(x)] = {} + inxi_card_1 = ((os.popen(""" cat $PWD/est_1 | grep -o -P '(?<=Card-""" + str(x) + """:).*(?=Drives:)'| sed 's/ *driver:.*//' """).read().rstrip().lstrip())) + info_dict['network_interfaces']['interface_' + str(x)]['network_Card'] = inxi_card_1 + inxi_card_2 = ((os.popen(""" cat $PWD/est_1 | grep -o -P '(?<=Card-""" + str(x) + """:).*(?=Drives:)'| sed -e 's/^.*IF: //' """).read().rstrip().lstrip())) + info_dict['network_interfaces']['interface_' + str(x)]['interface_info'] = inxi_card_2 + else: + print "No network cards" + os.system("bwm-ng -o plain -c 1 | grep -v '=' | grep -v 'iface' | grep -v '-' > bwm_dump") + n_interface = int(os.popen(" cat bwm_dump | grep -v 'total' | wc -l ").read().rstrip()) + interface = {} + for x in range(1, n_interface): + interface_name = os.popen(" cat bwm_dump | awk 'NR==" + str(x) + "' | awk '{print $1}' ").read().rstrip().replace(':', '') + interface[str(interface_name)] = {} + interface[str(interface_name)]['Rx (KB/s)'] = os.popen(" cat bwm_dump | awk 'NR==" + str(x) + "' | awk '{print $2}' ").read().rstrip() + interface[str(interface_name)]['Tx (KB/s)'] = os.popen(" cat bwm_dump | awk 'NR==" + str(x) + "' | awk '{print $4}' ").read().rstrip() + interface[str(interface_name)]['Total (KB/s)'] = os.popen(" cat bwm_dump | awk 'NR== " + str(x) + "' | awk '{print $6}' ").read().rstrip() + + info_dict['interface_io'] = interface + +print info_dict + +with open('./sys_info_temp', 'w+')as out_info: + pickle.dump(info_dict, out_info) + +with open('temp', 'w+') as result_json: + json.dump(info_dict, result_json, indent=4, sort_keys=True) diff --git a/benchmarks/perftest/etc/test_job b/benchmarks/perftest/etc/test_job new file mode 100644 index 00000000..6817abca --- /dev/null +++ b/benchmarks/perftest/etc/test_job @@ -0,0 +1,13 @@ +[global] + +runtime= 600 +ioengine=libaio +iodepth=2 +direct=1 +bs=4k +rw=randrw + +[job1] +size=5G + + diff --git a/benchmarks/perftest/fio.yaml b/benchmarks/perftest/fio.yaml new file mode 100644 index 00000000..bd29c127 --- /dev/null +++ b/benchmarks/perftest/fio.yaml @@ -0,0 +1,105 @@ + - hosts: localhost + connection: local + gather_facts: no + + tasks: + - name: making fio directory + file: path={{workingdir}}/{{Dest_dir}}/fio state=directory + + - name: making temporary fio directory + file: path={{workingdir}}/{{Dest_dir}}/fio/fio_temp state=directory + + + - hosts: "{{role}}" + become: yes + remote_user: "{{username}}" + + tasks: + - name: checking home directory + shell: echo $HOME + register: home_dir + + - name: cleaning + shell: sudo rm -rf $HOME/fio + + - name: cleaning previous results + shell: sudo rm -rf $HOME/qtip_result + + - name: making fio temporary directory + shell: sudo mkdir $HOME/fio + + - name: making results temporary directory + shell: sudo mkdir $HOME/qtip_result + + - include: ../common/sys_proxy_pbook.yaml + + - include: ../common/sys_info_pbook.yaml + vars: + network: false + + - name: Installing fio dependencies when CentOS + shell: sudo yum install wget gcc libaio-devel -y + when: ansible_os_family == "RedHat" + + - name: Installing fio dependencies when Ubuntu + shell: sudo apt-get install wget gcc libaio-dev -y + when: ansible_os_family == "Debian" + + - name: Fetching fio + shell: cd $HOME/fio/ && wget http://freecode.com/urls/3aa21b8c106cab742bf1f20d60629e3f -O fio.tar.gz + - name: Untar fio + shell: cd $HOME/fio/ && sudo tar -zxvf fio.tar.gz + - name: configure + shell: cd $HOME/fio/fio-2.1.10 && sudo ./configure && sudo make + + - name: Fetching fio job + copy: src=../etc/fio_test_job dest={{home_dir.stdout}}/fio/fio-2.1.10/ + + - name: Benchmarking block storage through fio + shell: cd $HOME/fio/fio-2.1.10 && sudo ./fio --output-format=json --output=$HOME/qtip_result/fio_result.json fio_test_job + + - name: Fetching result transformation script + copy: src={{workingdir}}/utils/fio_transform.py dest={{home_dir.stdout}}/qtip_result + + - name: Transforming result + shell: cd $HOME/qtip_result && sudo python fio_transform.py + + - name: copy report formation script + copy: src={{workingdir}}/utils/transform/final_report.py dest={{home_dir.stdout}}/qtip_result + + - name: consolidating report + shell: cd $HOME/qtip_result && sudo python final_report.py FIO {{fname}} + + - name: registering files + shell: (cd $HOME/qtip_result/; find . -maxdepth 1 -name "*.json") | cut -d'/' -f2 + register: files_to_copy + + - name: copy results + fetch: src={{home_dir.stdout}}/qtip_result/{{item}} dest={{workingdir}}/{{Dest_dir}}/fio/fio_temp + with_items: "{{files_to_copy.stdout_lines}}" + + - name: registering log files + shell: (cd $HOME/qtip_result/; find . -maxdepth 1 -name "*.log") | cut -d'/' -f2 + register: copy_log_results + + - name: copying log results + fetch: src={{home_dir.stdout}}/qtip_result/{{item}} dest={{workingdir}}/{{Dest_dir}}/fio/fio_temp + with_items: "{{copy_log_results.stdout_lines}}" + + - hosts: localhost + connection: local + gather_facts: no + + tasks: + - name: extracting_json + shell: ( find {{workingdir}}/{{Dest_dir}}/fio/fio_temp/ -name "*.json" | xargs cp -t {{workingdir}}/{{Dest_dir}}/fio/) + + - name: making_logs_folder + shell: mkdir -p {{workingdir}}/{{Dest_dir}}/fio/logs + + - name: extracting_log + shell: ( find {{workingdir}}/{{Dest_dir}}/fio/fio_temp/ -name "*.log" | xargs cp -t {{workingdir}}/{{Dest_dir}}/fio/logs) + + - name: removing fio_log + shell: rm -rf {{workingdir}}/{{Dest_dir}}/fio/fio_temp + diff --git a/benchmarks/perftest/iperf.yaml b/benchmarks/perftest/iperf.yaml new file mode 100644 index 00000000..af5b836a --- /dev/null +++ b/benchmarks/perftest/iperf.yaml @@ -0,0 +1,161 @@ + - hosts: localhost + connection: local + gather_facts: no + + tasks: + - name: getting directory + shell: sudo echo $PWD + register: qtip_dir + + - name: making Iperf directory + file: path={{workingdir}}/{{Dest_dir}}/iperf state=directory + + - name: making temporary iperf directory + file: path={{workingdir}}/{{Dest_dir}}/iperf/iperf_temp state=directory + + + - hosts: "{{role}}" + become: yes + remote_user: "{{username}}" + + tasks: + - name: Rolename + set_fact: + rolename: "{{role}}" + when: role is defined + + - name: installertype + set_fact: + installertype: "{{installer}}" + + - name: Get Hostname + shell: echo $HOSTNAME + register: hostID + + - name: echo + shell: echo index_var + + - name: checking home directory + shell: echo $HOME + register: home_dir + + - name: cleaning + shell: sudo rm -rf $HOME/iperf + + - name: cleaning previous results + shell: sudo rm -rf $HOME/qtip_result + + - name: making Iperf temporary directory + shell: sudo mkdir $HOME/iperf + + - name: making results temporary directory + shell: sudo mkdir $HOME/qtip_result + + - include: ../common/sys_proxy_pbook.yaml + + - include: ../common/sys_info_pbook.yaml + vars: + network: true + + - name: Installing Epel-release when CentOS + shell: sudo yum install epel-release -y + when: ansible_os_family == "RedHat" + + - name: Allow iperf server port in iptables input rules + shell: iptables -A INPUT -p tcp --dport {{iperf_port}} -j ACCEPT + vars: + iperf_port: 5201 + ignore_errors: yes + when: rolename == "1-server" and installertype == 'fuel' + + - name: Installing IPERF when Ubuntu + shell: sudo apt-get install iperf3 -y + when: ansible_os_family == "Debian" + + - name: Installing Iperf3 + shell: sudo yum install iperf3 -y + when: ansible_os_family == "RedHat" + + - name: Running iperf on server + shell: iperf3 -s + async: 400 + poll: 0 + when: rolename == "1-server" + + - name: Running Iperf on Host + shell: iperf3 --time {{duration}} -b 0 G -c {{ip1}} -J -O10 >> {{home_dir.stdout}}/qtip_result/iperf_raw.json + ignore_errors: yes + with_items: + - "{{ip1}}" + when: rolename == "2-host" and "{{privateip1}}" == "NONE" + + - name: Running Iperf on Host + shell: iperf3 --time {{duration}} -b 0 G -c {{privateip1}} -J -O10 >> {{home_dir.stdout}}/qtip_result/iperf_raw.json + ignore_errors: yes + with_items: + - "{{ip1}}" + when: rolename == "2-host" and "{{privateip1}}" != "NONE" + + - name: Fetching result transformation script + copy: src={{workingdir}}/utils/transform/iperf_transform.py dest={{home_dir.stdout}}/qtip_result + - name: Transforming result + + shell: cd $HOME/qtip_result && sudo python iperf_transform.py + when: rolename =="2-host" and "{{ip2}}" == '' + + - name: copy report formation script + copy: src={{workdingdir}}/utils/transform/final_report.py dest={{home_dir.stdout}}/qtip_result + when: rolename =="2-host" and "{{ip2}}" == '' + + - name: consolidating report + shell: cd $HOME/qtip_result && sudo python final_report.py IPERF {{fname}} + when: rolename =="2-host" and "{{ip2}}" == '' + + - name: Files to Copy + shell: (cd $HOME/qtip_result/; find . -maxdepth 1 -name "*.json") | cut -d'/' -f2 + register: files_to_copy + when: rolename =="2-host" and "{{ip2}}" == '' + + - name: copy results + fetch: src={{home_dir.stdout}}/qtip_result/{{item}} dest={{workingdir}}/{{Dest_dir}}/iperf/iperf_temp + with_items: "{{files_to_copy.stdout_lines}}" + when: rolename =="2-host" and "{{ip2}}" == '' + + - name: registering log files + shell: (cd $HOME/qtip_result/; find . -maxdepth 1 -name "*.log") | cut -d'/' -f2 + register: copy_log_results + when: rolename =="2-host" and "{{ip2}}" == '' + + - name: copying log results + fetch: src={{home_dir.stdout}}/qtip_result/{{item}} dest={{workingdir}}/{{Dest_dir}}/iperf/iperf_temp + with_items: "{{copy_log_results.stdout_lines}}" + when: rolename =="2-host" and "{{ip2}}" == '' + + + - hosts: localhost + connection: local + gather_facts: no + + tasks: + - name: Rolename + set_fact: + rolename: "{{role}}" + when: role is defined + + - name: extracting_json + shell: ( find {{workingdir}}/{{Dest_dir}}/iperf/iperf_temp/ -name "*.json" | xargs cp -t {{workingdir}}/{{Dest_dir}}/iperf/) + when: rolename == "2-host" + + - name: making_logs_folder + shell: mkdir -p {{workingdir}}/{{Dest_dir}}/iperf/logs + + - name: extracting_log + shell: ( find {{workingdir}}/{{Dest_dir}}/iperf/iperf_temp/ -name "*.log" | xargs cp -t {{workingdir}}/{{Dest_dir}}/iperf/logs) + when: rolename == "2-host" + + - name: removing iperf_raw file + shell: rm -rf {{workingdir}}/{{Dest_dir}}/iperf/iperf_raw.json + when: rolename == "2-host" + + - name: removing iperf_temp + shell: rm -rf {{workingdir}}/{{Dest_dir}}/iperf/iperf_temp diff --git a/benchmarks/perftest/ramspeed.yaml b/benchmarks/perftest/ramspeed.yaml new file mode 100644 index 00000000..f62c6056 --- /dev/null +++ b/benchmarks/perftest/ramspeed.yaml @@ -0,0 +1,109 @@ + - hosts: localhost + connection: local + gather_facts: no + + tasks: + - name: making ramspeed directory + file: path={{workingdir}}/{{Dest_dir}}/ramspeed state=directory + + - name: making temporary ramspeed directory + file: path={{workingdir}}/{{Dest_dir}}/ramspeed/ramspeed_temp state=directory + + + - hosts: "{{role}}" + become: yes + remote_user: "{{username}}" + + tasks: + - name: checking home directory + shell: echo $HOME + register: home_dir + + - name: cleaning + shell: sudo rm -rf $HOME/ramspeed + + - name: cleaning previous results + shell: sudo rm -rf $HOME/qtip_result + + - name: making ramspeed temporary directory + shell: sudo mkdir $HOME/ramspeed + + - name: making results temporary directory + shell: sudo mkdir $HOME/qtip_result + + - include: ../common/sys_proxy_pbook.yaml + + - include: ./common/sys_info_pbook.yaml + vars: + network: false + + - name: Installing RAM_Speed dependencies when CentOS + shell: sudo yum install wget gcc -y + when: ansible_os_family == "RedHat" + + - name: Installing RAM_Speed dependencies when Ubuntu + shell: sudo apt-get install wget gcc -y + when: ansible_os_family == "Debian" + + - name: make dummy file + shell: sudo touch $HOME/ramspeed/ramspeed.tar.gz + + - name: Fetching RAM_Speed + shell: cd $HOME/ramspeed/ && sudo wget -O ramspeed.tar.gz https://docs.google.com/uc?id=0B92Bp5LZTM7gRFctalZLMktTNDQ + + - name: Untar RAM_SPeed + shell: cd $HOME/ramspeed/ && sudo tar -zxvf ramspeed.tar.gz + + - name: configure + shell: cd $HOME/ramspeed/ramsmp-3.5.0 && ./build.sh + + - name: Benchmarking IntMem Bandwidth + shell: cd $HOME/ramspeed/ramsmp-3.5.0 && ./ramsmp -b 3 -l 5 -p 1 >> $HOME/qtip_result/Intmem + + - name: Benchmarking FloatMem Bandwidth + shell: cd $HOME/ramspeed/ramsmp-3.5.0 && ./ramsmp -b 6 -l 5 -p 1 >> $HOME/qtip_result/Floatmem + + - name: Fetching result transformation script + copy: src={{workdingdir}}/utils/transform/ramspeed_transform.py dest={{home_dir.stdout}}/qtip_result + + - name: Transforming result + shell: cd $HOME/qtip_result && sudo python ramspd_transform.py + + - name: copy report formation script + copy: src={{workingdir}}/utils/transform/final_report.py dest={{home_dir.stdout}}/qtip_result + + - name: consolidating report + shell: cd $HOME/qtip_result && sudo python final_report.py RamSpeed {{fname}} + + - name: registering files + shell: (cd $HOME/qtip_result/; find . -maxdepth 1 -name "*.json") | cut -d'/' -f2 + register: files_to_copy + + - name: copy results + fetch: src={{home_dir.stdout}}/qtip_result/{{item}} dest={{workingdir}}/{{Dest_dir}}/ramspeed/ramspeed_temp + with_items: "{{files_to_copy.stdout_lines}}" + + - name: registering log files + shell: (cd $HOME/qtip_result/; find . -maxdepth 1 -name "*.log") | cut -d'/' -f2 + register: copy_log_results + + - name: copying log results + fetch: src={{home_dir.stdout}}/qtip_result/{{item}} dest={{workingdir}}/{{Dest_dir}}/ramspeed/ramspeed_temp + with_items: "{{copy_log_results.stdout_lines}}" + + - hosts: localhost + connection: local + gather_facts: no + + tasks: + - name: extracting_json + shell: ( find {{workingdir}}/{{Dest_dir}}/ramspeed/ramspeed_temp/ -name "*.json" | xargs cp -t {{workingdir}}/{{Dest_dir}}/ramspeed/) + + - name: making_logs_folder + shell: mkdir -p {{workingdir}}/{{Dest_dir}}/ramspeed/logs + + - name: extracting_log + shell: ( find {{workingdir}}/{{Dest_dir}}/ramspeed/ramspeed_temp/ -name "*.log" | xargs cp -t {{workingdir}}/{{Dest_dir}}/ramspeed/logs) + + - name: removing ramspeed_log + shell: rm -rf {{workingdir}}/{{Dest_dir}}/ramspeed/ramspeed_temp diff --git a/benchmarks/perftest/ssl.yaml b/benchmarks/perftest/ssl.yaml new file mode 100644 index 00000000..4b5f036a --- /dev/null +++ b/benchmarks/perftest/ssl.yaml @@ -0,0 +1,113 @@ + - hosts: localhost + connection: local + gather_facts: no + + tasks: + - name: making ssl directory + file: path={{workingdir}}/{{Dest_dir}}/ssl state=directory + + - name: making temporary ssl directory + file: path={{workingdir}}/{{Dest_dir}}/ssl/ssl_temp state=directory + + - hosts: "{{role}}" + become: yes + remote_user: "{{username}}" + + tasks: + - name: checking home directory + shell: sudo echo $HOME + register: home_dir + + - name: cleaning + shell: sudo rm -rf $HOME/Open_SSL + + - name: cleaning previous results + shell: sudo rm -rf $HOME/qtip_result + + - name: making OpenSSL temporary directory + shell: sudo mkdir $HOME/Open_SSL + + - name: making results temporary directory + shell: sudo mkdir $HOME/qtip_result + + - include: ../common/sys_proxy_pbook.yaml + + - include: ../common/sys_info_pbook.yaml + vars: + network: false + + - name: Installing OpenSSL dependencies when CentOS + shell: sudo yum install git wget gcc patch perl-Time-HiRes autofconf automake libpcap-devel libtool -y + when: ansible_os_family == "RedHat" + + - name: Installing OpenSSL dependencies when Ubuntu + shell: sudo apt-get install git gcc wget perl autoconf automake libpcap-dev libtool -y + when: ansible_os_family == "Debian" + + - name: Fetching OpenSSL + shell: cd $HOME/Open_SSL/ && sudo wget http://artifacts.opnfv.org/qtip/utilities/openssl-1.0.2f.tar.gz + + - name: Untar OpenSSL + shell: cd $HOME/Open_SSL/ && sudo tar -zxvf openssl-1.0.2f.tar.gz + - name: configure + shell: cd $HOME/Open_SSL/openssl-1.0.2f && sudo ./config + + - name: make + shell: cd $HOME/Open_SSL/openssl-1.0.2f && sudo make + + - name: make install + shell: cd $HOME/Open_SSL/openssl-1.0.2f && sudo make install + + - name: Benchmarking RSA signatures + shell: cd $HOME/Open_SSL/openssl-1.0.2f/apps && sudo ./openssl speed rsa >> $HOME/qtip_result/RSA_dump + + - name: Benchmaring AES-128-cbc cipher encryption throughput + shell: cd $HOME/Open_SSL/openssl-1.0.2f/apps && sudo ./openssl speed -evp aes-128-cbc >> $HOME/qtip_result/AES-128-CBC_dump + + - name: Fetching result transformation script + copy: src={{workingdir}}/utils/transform/ssl_transform.py dest={{home_dir.stdout}}/qtip_result + + - name: Transforming result + shell: cd $HOME/qtip_result && python ssl_transform.py + + - name: copy report formation script + copy: src={{workingdir}}/utils/transform/final_report.py dest={{home_dir.stdout}}/qtip_result + + - name: consolidating report + shell: cd $HOME/qtip_result && python final_report.py SSL {{fname}} + + - name: registering files + shell: (cd $HOME/qtip_result/; find . -maxdepth 1 -name "*.json") | cut -d'/' -f2 + register: files_to_copy + + - name: copy results + fetch: src={{home_dir.stdout}}/qtip_result/{{item}} dest={{workingdir}}/{{Dest_dir}}/ssl/ssl_temp + with_items: "{{files_to_copy.stdout_lines}}" + + - name: registering log files + shell: (cd $HOME/qtip_result/; find . -maxdepth 1 -name "*.log") | cut -d'/' -f2 + register: copy_log_results + + - name: copying log results + fetch: src={{home_dir.stdout}}/qtip_result/{{item}} dest={{workingdir}}/{{Dest_dir}}/ssl/ssl_temp + with_items: "{{copy_log_results.stdout_lines}}" + + - hosts: localhost + connection: local + gather_facts: no + + tasks: + - name: echo + shell: echo $PWD + + - name: extracting_json + shell: ( find {{workingdir}}/{{Dest_dir}}/ssl/ssl_temp/ -name "*.json" | xargs cp -t {{workingdir}}/{{Dest_dir}}/ssl/) + + - name: making_logs_folder + shell: mkdir -p {{workingdir}}/{{Dest_dir}}/ssl/logs + + - name: extracting_log + shell: ( find {{workingdir}}/{{Dest_dir}}/ssl/ssl_temp/ -name "*.log" | xargs cp -t {{workingdir}}/{{Dest_dir}}/ssl/logs) + + - name: removing ssl_temp + shell: rm -rf {{workingdir}}/{{Dest_dir}}/ssl/ssl_temp diff --git a/benchmarks/perftest/whetstone.yaml b/benchmarks/perftest/whetstone.yaml new file mode 100644 index 00000000..32a22fe3 --- /dev/null +++ b/benchmarks/perftest/whetstone.yaml @@ -0,0 +1,111 @@ + - hosts: localhost + connection: local + gather_facts: no + + tasks: + - name: making whetstone directory + file: path={{workingdir}}/{{Dest_dir}}/whetstone state=directory + + - name: making temporary whetstone directory + file: path={{workingdir}}/{{Dest_dir}}/whetstone/whetstone_temp state=directory + + - hosts: "{{role}}" + become: yes + remote_user: "{{username}}" + + tasks: + - name: storing_home + shell: echo $HOME + register: home_dir + + - name: cleaning tempT + shell: sudo rm -rf $HOME/tempT + + - name: cleaning_qtip_result + shell: sudo rm -rf $HOME/qtip_result + + - name: make directory + shell: sudo mkdir $HOME/qtip_result + + - include: ../common/sys_proxy_pbook.yaml + + - include: ../common/sys_info_pbook.yaml + vars: + network: false + + - name: Installing UnixBench dependencies if CentOS + shell: sudo yum install git gcc patch perl-Time-HiRes -y + when: ansible_os_family == "RedHat" + + - name: Installing UnixBench dependencies if Ubuntu + shell: sudo apt-get install git gcc patch perl -y + when: ansible_os_family == "Debian" + + - include: ./git_proxy_pbook.yaml + + - name: Clone unixbench + git: repo=https://github.com/kdlucas/byte-unixbench.git + dest=$HOME/tempT + + - name: make + shell: sudo make --directory $HOME/tempT/UnixBench/ + + - name: Run Whetstone + shell: cd $HOME/tempT/UnixBench/&&./Run -v whetstone + + - name: collecting and transforming result script copy + copy: src={{workingdir}}/utils/transform/ubench_transform.py dest={{home_dir.stdout}}/qtip_result/ + + - name: transforming result + shell: cd $HOME/qtip_result && sudo python ubench_transform.py + + - name: copying consolidated report script + copy: src={{workingdir}}/utils/transform/final_report.py dest={{home_dir.stdout}}/qtip_result/ + + - name: making consolidated report + shell: cd $HOME/qtip_result && sudo python final_report.py Whetstone {{fname}} + + - name: making directory + file: path={{home_dir.stdout}}/qtip_result/log state=directory + + - name: copying result to temp directory + shell: sudo cp -r $HOME/tempT/UnixBench/results/* $HOME/qtip_result/log + + - name: registering files + shell: (cd $HOME/qtip_result/; find . -maxdepth 1 -name "*.json") | cut -d'/' -f2 + register: files_to_copy + + - name: copy results + fetch: src={{home_dir.stdout}}/qtip_result/{{item}} dest={{workingdir}}/{{Dest_dir}}/whetstone/whetstone_temp + with_items: "{{files_to_copy.stdout_lines}}" + + - name: registering log files + shell: (cd $HOME/qtip_result/log/; find . -maxdepth 1 -name "*.log") | cut -d'/' -f2 + register: copy_log_results + + - name: copying log results + fetch: src={{home_dir.stdout}}/qtip_result/log/{{item}} dest={{workingdir}}/{{Dest_dir}}/whetstone/whetstone_temp + with_items: "{{copy_log_results.stdout_lines}}" + + - name: cleaning tempT + shell: sudo rm -rf $HOME/tempT + + - name: cleaning_qtip_result + shell: sudo rm -rf $HOME/qtip_result + + - hosts: localhost + connection: local + gather_facts: no + + tasks: + - name: extracting_json + shell: ( find {{workingdir}}/{{Dest_dir}}/whetstone/whetstone_temp/ -name "*.json" | xargs cp -t {{workingdir}}/{{Dest_dir}}/whetstone/) + + - name: making_logs_folder + shell: mkdir -p {{workingdir}}/{{Dest_dir}}/whetstone/logs + + - name: extracting_log + shell: ( find {{workingdir}}/{{Dest_dir}}/whetstone/whetstone_temp/ -name "*.log" | xargs cp -t {{workingdir}}/{{Dest_dir}}/whetstone/logs) + + - name: removing whetstone_temp + shell: rm -rf {{workingdir}}/{{Dest_dir}}/whetstone/whetstone_temp -- cgit 1.2.3-korg