summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/userguide/opnfv_yardstick_tc069.rst95
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc069.yaml38
-rw-r--r--yardstick/benchmark/contexts/node.py4
-rw-r--r--yardstick/benchmark/scenarios/networking/sfc_openstack.py2
4 files changed, 137 insertions, 2 deletions
diff --git a/docs/userguide/opnfv_yardstick_tc069.rst b/docs/userguide/opnfv_yardstick_tc069.rst
new file mode 100644
index 000000000..51807e246
--- /dev/null
+++ b/docs/userguide/opnfv_yardstick_tc069.rst
@@ -0,0 +1,95 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Huawei Technologies Co.,Ltd and others.
+
+*************************************
+Yardstick Test Case Description TC069
+*************************************
+
+.. _RAMspeed: http://alasir.com/software/ramspeed/
+
++-----------------------------------------------------------------------------+
+|Memory Bandwidth |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | OPNFV_YARDSTICK_TC069_Memory Bandwidth |
+| | |
++--------------+--------------------------------------------------------------+
+|metric | Megabyte per second (MBps) |
+| | |
++--------------+--------------------------------------------------------------+
+|test purpose | To evaluate the IaaS compute performance with regards to |
+| | memory bandwidth. |
+| | Measure the maximum possible cache and memory performance |
+| | while reading and writing certain blocks of data (starting |
+| | from 1Kb and further in power of 2) continuously through ALU |
+| | and FPU respectively. |
+| | Measure different aspects of memory performance via synthetic|
+| | simulations. Each simulation consists of four performances |
+| | (Copy, Scale, Add, Triad). |
+| | Test results, graphs and similar shall be stored for |
+| | comparison reasons and product evolution understanding |
+| | between different OPNFV versions and/or configurations. |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | File: opnfv_yardstick_tc069.yaml |
+| | |
+| | * SLA (optional): 7000 (MBps) min_bandwidth: The minimum |
+| | amount of memory bandwidth that is accepted. |
+| | * type_id: 1 - runs a specified benchmark (by an ID number): |
+| | 1 -- INTmark [writing] 4 -- FLOATmark [writing] |
+| | 2 -- INTmark [reading] 5 -- FLOATmark [reading] |
+| | 3 -- INTmem 6 -- FLOATmem |
+| | * block_size: 64 Megabytes - the maximum block size per array|
+| | * load: 32 Gigabytes - the amount of data load per pass |
+| | * iterations: 5 - test is run 5 times iteratively. |
+| | * interval: 1 - there is 1 second delay between each |
+| | iteration. |
+| | |
++--------------+--------------------------------------------------------------+
+|test tool | RAMspeed |
+| | |
+| | RAMspeed is a free open source command line utility to |
+| | measure cache and memory performance of computer systems. |
+| | RAMspeed is not always part of a Linux distribution, hence it|
+| | needs to be installed in the test image. |
+| | |
++--------------+--------------------------------------------------------------+
+|references | RAMspeed_ |
+| | |
+| | ETSI-NFV-TST001 |
+| | |
++--------------+--------------------------------------------------------------+
+|applicability | Test can be configured with different: |
+| | |
+| | * benchmark operations (such as INTmark [writing], |
+| | INTmark [reading], FLOATmark [writing], |
+| | FLOATmark [reading], INTmem, FLOATmem); |
+| | * block size per array; |
+| | * load per pass; |
+| | * number of batch run iterations; |
+| | * iterations and intervals. |
+| | |
+| | There are default values for each above-mentioned option. |
+| | |
++--------------+--------------------------------------------------------------+
+|pre-test | The test case image needs to be installed into Glance |
+|conditions | with RAmspeed included in the image. |
+| | |
+| | No POD specific requirements have been identified. |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | The host is installed as client. RAMspeed is invoked and logs|
+| | are produced and stored. |
+| | |
+| | Result: logs are stored. |
+| | |
++--------------+--------------------------------------------------------------+
+|test verdict | Test fails if the measured memory bandwidth is below the SLA |
+| | value or if there is a test case execution problem. |
+| | |
++--------------+--------------------------------------------------------------+
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc069.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc069.yaml
new file mode 100644
index 000000000..637e160c6
--- /dev/null
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc069.yaml
@@ -0,0 +1,38 @@
+---
+# Yardstick TC069 config file
+# Measure memory read and write bandwidth using ramspeed
+
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: Ramspeed
+ options:
+ type_id: 1
+ load: 32
+ block_size: 64
+
+ host: kratos.yardstick-TC069
+
+ runner:
+ type: Iteration
+ iterations: 5
+ interval: 1
+
+ sla:
+ min_bandwidth: 7000
+ action: monitor
+
+context:
+ name: yardstick-TC069
+ image: yardstick-trusty-server
+ flavor: yardstick-flavor
+ user: ubuntu
+
+ servers:
+ kratos:
+ floating_ip: true
+
+ networks:
+ test:
+ cidr: '10.0.1.0/24'
diff --git a/yardstick/benchmark/contexts/node.py b/yardstick/benchmark/contexts/node.py
index 54ee076f4..c3d652119 100644
--- a/yardstick/benchmark/contexts/node.py
+++ b/yardstick/benchmark/contexts/node.py
@@ -82,6 +82,8 @@ class NodeContext(Context):
LOG.error("Nodes: %r" % nodes)
sys.exit(-1)
- node = nodes[0]
+ # A clone is created in order to avoid affecting the
+ # original one.
+ node = dict(nodes[0])
node["name"] = attr_name
return node
diff --git a/yardstick/benchmark/scenarios/networking/sfc_openstack.py b/yardstick/benchmark/scenarios/networking/sfc_openstack.py
index 2a5fbde1c..d1d45d8e4 100644
--- a/yardstick/benchmark/scenarios/networking/sfc_openstack.py
+++ b/yardstick/benchmark/scenarios/networking/sfc_openstack.py
@@ -1,5 +1,5 @@
import os
-from novaclient.v2 import client as novaclient
+from novaclient import client as novaclient
from neutronclient.v2_0 import client as neutronclient