summaryrefslogtreecommitdiffstats
path: root/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites/vstf/vstf_scripts/vstf/controller/sw_perf')
-rw-r--r--testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/__init__.py1
-rw-r--r--testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/flow_producer.py11
-rw-r--r--testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/model.py16
-rw-r--r--testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/perf_provider.py52
-rw-r--r--testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/performance.py54
-rw-r--r--testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/raw_data.py14
6 files changed, 101 insertions, 47 deletions
diff --git a/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/__init__.py b/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/__init__.py
index df7d24d0..83b8d15d 100644
--- a/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/__init__.py
+++ b/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/__init__.py
@@ -6,4 +6,3 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-
diff --git a/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/flow_producer.py b/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/flow_producer.py
index 4a3b02c2..a4bd1467 100644
--- a/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/flow_producer.py
+++ b/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/flow_producer.py
@@ -21,6 +21,7 @@ LOG = logging.getLogger(__name__)
class FlowsProducer(object):
+
def __init__(self, conn, flows_settings):
self._perf = flows_settings
self._forwarding = ForwardingSettings().settings
@@ -43,12 +44,13 @@ class FlowsProducer(object):
raise Exception("error devs :%s", devs)
LOG.info(agent)
LOG.info(name)
- if not self._devs_map.has_key((agent, name)):
+ if (agent, name) not in self._devs_map:
query = Fabricant(agent, self._conn)
query.clean_all_namespace()
dev_info = query.get_device_verbose(identity=name)
if not isinstance(dev_info, dict):
- err = "get device detail failed, agent:%s net:%s" % (agent, name)
+ err = "get device detail failed, agent:%s net:%s" % (
+ agent, name)
raise Exception(err)
dev = {
"agent": agent,
@@ -127,7 +129,10 @@ class FlowsProducer(object):
def unit_test():
from vstf.rpc_frame_work.rpc_producer import Server
from vstf.common.log import setup_logging
- setup_logging(level=logging.INFO, log_file="/var/log/vstf/vstf-producer.log", clevel=logging.INFO)
+ setup_logging(
+ level=logging.INFO,
+ log_file="/var/log/vstf/vstf-producer.log",
+ clevel=logging.INFO)
conn = Server("192.168.188.10")
flow_settings = FlowsSettings()
diff --git a/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/model.py b/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/model.py
index c49df041..8e3e7b22 100644
--- a/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/model.py
+++ b/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/model.py
@@ -17,6 +17,7 @@ LOG = logging.getLogger(__name__)
class NetDeviceMgr(Fabricant):
+
@classmethod
def add(cls, dst, conn, dev):
self = cls(dst, conn)
@@ -38,6 +39,7 @@ class NetDeviceMgr(Fabricant):
class Actor(Fabricant):
+
def __init__(self, dst, conn, tool, params):
super(Actor, self).__init__(dst, conn)
self._tool = tool
@@ -46,12 +48,13 @@ class Actor(Fabricant):
def __repr__(self):
repr_dict = self.__dict__
- repr_keys = list(repr_dict.keys())
- repr_keys.sort()
- return '%s(%s)' % (self.__class__.__name__, ', '.join(['%s=%r' % (k, repr_dict[k]) for k in repr_keys]))
+ repr_keys = sorted(repr_dict.keys())
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(
+ ['%s=%r' % (k, repr_dict[k]) for k in repr_keys]))
class Sender(Actor):
+
def start(self, pktsize, **kwargs):
LOG.info("Sender.start")
if 'ratep' in kwargs and kwargs['ratep']:
@@ -106,6 +109,7 @@ class Sender(Actor):
class Receiver(Actor):
+
def start(self, **kwargs):
LOG.info("Receiver.start")
ret, info = self.perf_run(
@@ -136,6 +140,7 @@ class Receiver(Actor):
class NicWatcher(Fabricant):
+
def __init__(self, dst, conn, params):
super(NicWatcher, self).__init__(dst, conn)
self._params = params
@@ -144,7 +149,9 @@ class NicWatcher(Fabricant):
def start(self):
print "NicWatcher.start"
- self._pid = self.run_vnstat(device=self._params["iface"], namespace=self._params["namespace"])
+ self._pid = self.run_vnstat(
+ device=self._params["iface"],
+ namespace=self._params["namespace"])
print self._pid
def stop(self):
@@ -161,6 +168,7 @@ class NicWatcher(Fabricant):
class CpuWatcher(Fabricant):
+
def __init__(self, dst, conn):
super(CpuWatcher, self).__init__(dst, conn)
self._pid = None
diff --git a/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/perf_provider.py b/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/perf_provider.py
index 396e6eef..3fdbad60 100644
--- a/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/perf_provider.py
+++ b/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/perf_provider.py
@@ -26,6 +26,7 @@ def get_agent_dict(nodes):
class PerfProvider(object):
+
def __init__(self, flows_info, tool_info, tester_info):
self._flows_info = flows_info
self._tool_info = tool_info
@@ -33,7 +34,8 @@ class PerfProvider(object):
def _islation(self):
flows = self._flows_info["flows"]
- if flows == 2 and self._flows_info["senders"][0]["agent"] == self._flows_info["senders"][1]["agent"]:
+ if flows == 2 and self._flows_info["senders"][0][
+ "agent"] == self._flows_info["senders"][1]["agent"]:
return True
return False
@@ -53,8 +55,10 @@ class PerfProvider(object):
}
}
for i in range(flows):
- sender['params']['src'].append(self._flows_info["senders"][i]['dev'])
- sender['params']['dst'].append(self._flows_info["receivers"][i]['dev'])
+ sender['params']['src'].append(
+ self._flows_info["senders"][i]['dev'])
+ sender['params']['dst'].append(
+ self._flows_info["receivers"][i]['dev'])
result.append(sender)
else:
for i in range(flows):
@@ -63,12 +67,12 @@ class PerfProvider(object):
"params": {
"protocol": protocol,
"namespace": None if "netmap" == tool else self._flows_info["senders"][i]['dev']['namespace'],
- "src": [self._flows_info["senders"][i]['dev']],
- "dst": [self._flows_info["receivers"][i]['dev']],
+ "src": [
+ self._flows_info["senders"][i]['dev']],
+ "dst": [
+ self._flows_info["receivers"][i]['dev']],
"time": self._tool_info[tool]["time"],
- "threads": self._tool_info[tool]["threads"]
- }
- }
+ "threads": self._tool_info[tool]["threads"]}}
result.append(sender)
return result
@@ -91,9 +95,8 @@ class PerfProvider(object):
"params": {
"namespace": None if "netmap" == tool else self._flows_info["receivers"][i]['dev']['namespace'],
"protocol": protocol,
- "dst": [self._flows_info["receivers"][i]['dev']]
- }
- }
+ "dst": [
+ self._flows_info["receivers"][i]['dev']]}}
result.append(receiver)
return result
@@ -104,9 +107,10 @@ class PerfProvider(object):
"agent": watcher["agent"],
"params": {
"iface": watcher['dev']["iface"],
- "namespace": None if tool in ["pktgen", "netmap"] else watcher['dev']["namespace"],
- }
- }
+ "namespace": None if tool in [
+ "pktgen",
+ "netmap"] else watcher['dev']["namespace"],
+ }}
result.append(node)
return result
@@ -118,10 +122,12 @@ class PerfProvider(object):
"agent": watcher["agent"],
"params": {
"iface": watcher['dev']["iface"],
- "namespace": watcher['dev']["namespace"] if tool not in ["pktgen", "netmap"] else None,
- "ip": watcher['dev']["ip"] + '/24',
- }
- }
+ "namespace": watcher['dev']["namespace"] if tool not in [
+ "pktgen",
+ "netmap"] else None,
+ "ip": watcher['dev']["ip"] +
+ '/24',
+ }}
result.append(node)
return result
@@ -176,7 +182,10 @@ class PerfProvider(object):
def unit_test():
from vstf.common.log import setup_logging
- setup_logging(level=logging.DEBUG, log_file="/var/log/vstf/vstf-perf-provider.log", clevel=logging.INFO)
+ setup_logging(
+ level=logging.DEBUG,
+ log_file="/var/log/vstf/vstf-perf-provider.log",
+ clevel=logging.INFO)
from vstf.controller.settings.flows_settings import FlowsSettings
from vstf.controller.settings.tool_settings import ToolSettings
@@ -186,7 +195,10 @@ def unit_test():
tool_settings = ToolSettings()
tester_settings = TesterSettings()
- provider = PerfProvider(flows_settings.settings, tool_settings.settings, tester_settings.settings)
+ provider = PerfProvider(
+ flows_settings.settings,
+ tool_settings.settings,
+ tester_settings.settings)
tools = ['pktgen']
protocols = ['udp_bw', 'udp_lat']
diff --git a/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/performance.py b/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/performance.py
index 3fe91e93..7dc426f8 100644
--- a/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/performance.py
+++ b/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/performance.py
@@ -29,6 +29,7 @@ LOG = logging.getLogger(__name__)
class Performance(object):
+
def __init__(self, conn, provider):
self._provider = provider
self._conn = conn
@@ -221,7 +222,8 @@ class Performance(object):
lat_tool = "qperf"
lat_type = 'latency'
lat_tpro = protocol + '_lat'
- self.run_latency_test(lat_tool, lat_tpro, size, ratep=realspeed)
+ self.run_latency_test(
+ lat_tool, lat_tpro, size, ratep=realspeed)
lat_result = self.result(tool, lat_type)
LOG.info(bw_result)
LOG.info(lat_result)
@@ -272,23 +274,32 @@ class Performance(object):
record[mark.txMbps] += nic_data['txmB/s'] * 8
if record[mark.rxMbps] > record[mark.txMbps]:
- record[mark.rxMbps], record[mark.txMbps] = record[mark.txMbps], record[mark.rxMbps]
+ record[
+ mark.rxMbps], record[
+ mark.txMbps] = record[
+ mark.txMbps], record[
+ mark.rxMbps]
if record[mark.rxCount] > record[mark.txCount]:
- record[mark.rxCount], record[mark.txCount] = record[mark.txCount], record[mark.rxCount]
+ record[
+ mark.rxCount], record[
+ mark.txCount] = record[
+ mark.txCount], record[
+ mark.rxCount]
if record[mark.txCount]:
- record[mark.percentLoss] = round(100 * (1 - record[mark.rxCount] / record[mark.txCount]),
- cst.PKTLOSS_ROUND)
+ record[mark.percentLoss] = round(
+ 100 * (1 - record[mark.rxCount] / record[mark.txCount]), cst.PKTLOSS_ROUND)
else:
record[mark.percentLoss] = 100
record[mark.bandwidth] /= 1000000.0
if cpu_mhz and record[mark.cpu]:
- record[mark.mppsGhz] = round(record[mark.bandwidth] / (record[mark.cpu] * cpu_mhz / 100000),
- cst.CPU_USAGE_ROUND)
+ record[mark.mppsGhz] = round(
+ record[mark.bandwidth] / (record[mark.cpu] * cpu_mhz / 100000), cst.CPU_USAGE_ROUND)
- record[mark.bandwidth] = round(record[mark.bandwidth], cst.RATEP_ROUND)
+ record[mark.bandwidth] = round(
+ record[mark.bandwidth], cst.RATEP_ROUND)
elif ttype in {'latency'}:
record = {
@@ -319,7 +330,10 @@ class Performance(object):
def unit_test():
from vstf.common.log import setup_logging
- setup_logging(level=logging.DEBUG, log_file="/var/log/vstf/vstf-sw_perf.log", clevel=logging.INFO)
+ setup_logging(
+ level=logging.DEBUG,
+ log_file="/var/log/vstf/vstf-sw_perf.log",
+ clevel=logging.INFO)
conn = Server("192.168.188.10")
perf_settings = PerfSettings()
@@ -327,7 +341,10 @@ def unit_test():
tool_settings = ToolSettings()
tester_settings = TesterSettings()
flow_producer = FlowsProducer(conn, flows_settings)
- provider = PerfProvider(flows_settings.settings, tool_settings.settings, tester_settings.settings)
+ provider = PerfProvider(
+ flows_settings.settings,
+ tool_settings.settings,
+ tester_settings.settings)
perf = Performance(conn, provider)
tests = perf_settings.settings
for scenario, cases in tests.items():
@@ -348,7 +365,10 @@ def unit_test():
def main():
from vstf.common.log import setup_logging
- setup_logging(level=logging.DEBUG, log_file="/var/log/vstf/vstf-performance.log", clevel=logging.INFO)
+ setup_logging(
+ level=logging.DEBUG,
+ log_file="/var/log/vstf/vstf-performance.log",
+ clevel=logging.INFO)
from vstf.controller.database.dbinterface import DbManage
parser = argparse.ArgumentParser(add_help=True)
parser.add_argument("case",
@@ -374,9 +394,10 @@ def main():
action="store",
default="64",
help='test size list "64 128"')
- parser.add_argument("--affctl",
- action="store_true",
- help="when input '--affctl', the performance will do affctl before testing")
+ parser.add_argument(
+ "--affctl",
+ action="store_true",
+ help="when input '--affctl', the performance will do affctl before testing")
parser.add_argument("--monitor",
dest="monitor",
default="localhost",
@@ -399,7 +420,10 @@ def main():
tool_settings = ToolSettings()
tester_settings = TesterSettings()
flow_producer = FlowsProducer(conn, flows_settings)
- provider = PerfProvider(flows_settings.settings, tool_settings.settings, tester_settings.settings)
+ provider = PerfProvider(
+ flows_settings.settings,
+ tool_settings.settings,
+ tester_settings.settings)
perf = Performance(conn, provider)
scenario = db_mgr.query_scenario(casetag)
flow_producer.create(scenario, casetag)
diff --git a/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/raw_data.py b/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/raw_data.py
index aefb863d..828981db 100644
--- a/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/raw_data.py
+++ b/testsuites/vstf/vstf_scripts/vstf/controller/sw_perf/raw_data.py
@@ -15,6 +15,7 @@ LOG = logging.getLogger(__name__)
class RawDataProcess(object):
+
def __init__(self):
pass
@@ -24,7 +25,9 @@ class RawDataProcess(object):
buf = ' '.join(buf)
m = {}
digits = re.compile(r"\d{1,}\.?\d*")
- units = re.compile(r"(?:gib|mib|kib|kbit/s|gbit/s|mbit/s|p/s)", re.IGNORECASE | re.MULTILINE)
+ units = re.compile(
+ r"(?:gib|mib|kib|kbit/s|gbit/s|mbit/s|p/s)",
+ re.IGNORECASE | re.MULTILINE)
units_arr = units.findall(buf)
LOG.debug(units_arr)
digits_arr = digits.findall(buf)
@@ -96,9 +99,9 @@ class RawDataProcess(object):
m = self.process_vnstat(data)
if tool == 'sar' and data_type == 'cpu':
m = self.process_sar_cpu(data)
- if raw.has_key('cpu_num'):
+ if 'cpu_num' in raw:
m['cpu_num'] = raw['cpu_num']
- if raw.has_key('cpu_mhz'):
+ if 'cpu_mhz' in raw:
m['cpu_mhz'] = raw['cpu_mhz']
if tool == 'qperf':
m = self.process_qperf(data)
@@ -121,7 +124,10 @@ if __name__ == '__main__':
print p.process_vnstat(data)
cmd = "sar -u 2"
- child = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ child = subprocess.Popen(
+ cmd.split(),
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
import time
import os
from signal import SIGINT