Add OpenStack Density test results

Change-Id: I3e406c89e5e9538656b93b7cc1c66d2d5382c9fd
This commit is contained in:
listomin 2016-06-21 20:40:46 +03:00 committed by Dina Belova
parent 30b4a3b20f
commit 431dde8b6a
11 changed files with 1309 additions and 1 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,62 @@
{% set flavor_name = flavor_name or "m1.tiny" %}
{% set image_name = image_name or "^(cirros.*uec|TestVM)$" %}
{
"NovaDensityPlugin.boot_attach_and_list_with_secgroups": [
{
"args": {
"flavor": {
"name": "{{flavor_name}}"
},
"image": {
"name": "{{image_name}}"
},
"security_group_count": 10,
"rules_per_security_group": 10,
"boot_server_kwargs": { "auto_assign_nic" : true },
"create_volume_kwargs": {},
"volume_size": 1
},
"runner": {
"type": "constant",
"times": {{ 10 * compute }},
"concurrency": {{concurrency}}
},
"context": {
"users": {
"tenants": 10,
"users_per_tenant": 10
},
"quotas": {
"neutron": {
"network": -1,
"security_group": -1,
"security_group_rule": -1,
"port": -1,
"subnet": -1,
"router": -1
},
"nova": {
"instances": -1,
"cores": -1,
"ram": -1,
"floating_ips": -1,
"security_groups": -1,
"security_group_rules": -1
},
"cinder": {
"volumes": -1,
"gigabytes": -1,
"snapshots": -1
}
},
"network": {
"start_cidr": "{{ "100.1.0.0/25" if gre_enabled else "1.0.0.0/25" }}",
"networks_per_tenant": 10
}
},
"sla": {
"failure_rate": { "max": 0 }
}
}
]
}

View File

@ -0,0 +1,173 @@
# Copyright 2016: Mirantis Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from rally import consts
from rally.plugins.openstack import scenario
from rally.plugins.openstack.scenarios.cinder import utils as cinder_utils
from rally.plugins.openstack.scenarios.nova import utils
from rally.task import types
from rally.task import validation
class NovaDensityPlugin(utils.NovaScenario, cinder_utils.CinderScenario):
"""boot_attach_and_list_with_secgroups"""
@types.convert(image={"type": "glance_image"},
flavor={"type": "nova_flavor"})
@validation.image_valid_on_flavor("flavor", "image")
@validation.required_parameters("security_group_count",
"rules_per_security_group")
@validation.required_contexts("network")
@validation.required_services(consts.Service.NOVA)
@validation.required_openstack(users=True)
@scenario.configure(context={"cleanup": ["cinder", "nova"]})
def boot_attach_and_list_with_secgroups(
self, image, flavor,
volume_size,
security_group_count,
rules_per_security_group,
do_delete=False,
detailed=True,
boot_server_kwargs=None,
create_volume_kwargs=None
):
if boot_server_kwargs is None:
boot_server_kwargs = {}
if create_volume_kwargs is None:
create_volume_kwargs = {}
security_groups = self._create_security_groups(
security_group_count)
self._create_rules_for_security_group(security_groups,
rules_per_security_group)
secgroups_names = [sg.name for sg in security_groups]
"""boot server"""
server = self._boot_server(image, flavor,
security_groups=secgroups_names,
**boot_server_kwargs)
volume = self._create_volume(volume_size, **create_volume_kwargs)
self._attach_volume(server, volume)
self._list_security_groups()
self._list_servers(detailed)
if do_delete:
self._detach_volume(server, volume)
self._delete_server(server)
self._delete_volume(volume)
self._delete_security_groups(security_groups)
"""boot_and_list_with_secgroups"""
@types.convert(image={"type": "glance_image"},
flavor={"type": "nova_flavor"})
@validation.image_valid_on_flavor("flavor", "image")
@validation.required_parameters("security_group_count",
"rules_per_security_group")
@validation.required_contexts("network")
@validation.required_services(consts.Service.NOVA)
@validation.required_openstack(users=True)
@scenario.configure(context={"cleanup": ["nova"]})
def boot_and_list_with_secgroups(
self, image, flavor,
security_group_count,
rules_per_security_group,
do_delete=False,
detailed=True,
boot_server_kwargs=None
):
if boot_server_kwargs is None:
boot_server_kwargs = {}
security_groups = self._create_security_groups(
security_group_count)
self._create_rules_for_security_group(security_groups,
rules_per_security_group)
secgroups_names = [sg.name for sg in security_groups]
"""boot server"""
server = self._boot_server(image, flavor,
security_groups=secgroups_names,
**boot_server_kwargs)
self._list_security_groups()
self._list_servers(detailed)
if do_delete:
self._delete_server(server)
self._delete_security_groups(security_groups)
"""boot_attach_and_list"""
@types.convert(image={"type": "glance_image"},
flavor={"type": "nova_flavor"})
@validation.image_valid_on_flavor("flavor", "image")
@validation.required_services(consts.Service.NOVA)
@validation.required_openstack(users=True)
@scenario.configure(context={"cleanup": ["cinder", "nova"]})
def boot_attach_and_list(
self, image, flavor,
volume_size,
do_delete=False,
detailed=True,
boot_server_kwargs=None,
create_volume_kwargs=None
):
if boot_server_kwargs is None:
boot_server_kwargs = {}
if create_volume_kwargs is None:
create_volume_kwargs = {}
"""boot server"""
server = self._boot_server(image, flavor,
**boot_server_kwargs)
volume = self._create_volume(volume_size, **create_volume_kwargs)
self._attach_volume(server, volume)
self._list_servers(detailed)
if do_delete:
self._detach_volume(server, volume)
self._delete_server(server)
self._delete_volume(volume)
"""boot_and_list"""
@types.convert(image={"type": "glance_image"},
flavor={"type": "nova_flavor"})
@validation.image_valid_on_flavor("flavor", "image")
@validation.required_services(consts.Service.NOVA)
@validation.required_openstack(users=True)
@scenario.configure(context={"cleanup": ["nova"]})
def boot_and_list(
self, image, flavor,
do_delete=False,
detailed=True,
boot_server_kwargs=None
):
if boot_server_kwargs is None:
boot_server_kwargs = {}
"""boot server"""
server = self._boot_server(image, flavor,
**boot_server_kwargs)
self._list_servers(detailed)
if do_delete:
self._delete_server(server)

View File

@ -0,0 +1,217 @@
.. _Results_of_OpenStack_services_density_testing:
*********************************************
Results of OpenStack Services density testing
*********************************************
:Abstract:
This document includes density test results of OpenStack
services. All tests have been performed
regarding :ref:`controlplane_density_`
Environment description
=======================
Environment contains 5 types of servers:
- rally node
- controller node
- compute-osd node
- compute node
.. table:: Amount of servers each role
+------------+--------------+
|Role |Servers count |
+============+==============+
|rally |1 |
+------------+--------------+
|controller |3 |
+------------+--------------+
|compute |176 |
+------------+--------------+
|compute-osd |20 |
+------------+--------------+
Hardware configuration of each server
-------------------------------------
All servers have same configuration describing in table below
.. table:: Description of servers hardware
+-------+----------------+-------------------------------+
|server |vendor,model |HP,DL380 Gen9 |
+-------+----------------+-------------------------------+
|CPU |vendor,model |Intel,E5-2680 v3 |
| +----------------+-------------------------------+
| |processor_count |2 |
| +----------------+-------------------------------+
| |core_count |12 |
| +----------------+-------------------------------+
| |frequency_MHz |2500 |
+-------+----------------+-------------------------------+
|RAM |vendor,model |HP,752369-081 |
| +----------------+-------------------------------+
| |amount_MB |262144 |
+-------+----------------+-------------------------------+
|NETWORK|interface_name |p1p1 |
| +----------------+-------------------------------+
| |vendor,model |Intel,X710 Dual Port |
| +----------------+-------------------------------+
| |bandwidth |10G |
+-------+----------------+-------------------------------+
|STORAGE|dev_name |/dev/sda |
| +----------------+-------------------------------+
| |vendor,model | | raid10 - HP P840 |
| | | | 12 disks EH0600JEDHE |
| +----------------+-------------------------------+
| |SSD/HDD |HDD |
| +----------------+-------------------------------+
| |size | 3,6TB |
+-------+----------------+-------------------------------+
Network configuration of each server
------------------------------------
All servers have the similar network configuration:
.. image:: configs/Network_Scheme.png
:alt: Network Scheme of the environment
Here is a part of switch configuration for each switch port which is
connected to ens1f0 interface of a server:
.. code:: bash
switchport mode trunk
switchport trunk native vlan 600
switchport trunk allowed vlan 600-602,630-649
spanning-tree port type edge trunk
spanning-tree bpduguard enable
no snmp trap link-status
Software configuration on servers with controller and compute roles
-------------------------------------------------------------------
.. table:: Services on servers by role
+------------+---------------------------+
|Role |Service name |
+============+===========================+
|controller || horizon |
| || keystone |
| || nova-api |
| || nava-scheduler |
| || nova-cert |
| || nova-conductor |
| || nova-consoleauth |
| || nova-consoleproxy |
| || cinder-api |
| || cinder-backup |
| || cinder-scheduler |
| || cinder-volume |
| || glance-api |
| || glance-glare |
| || glance-registry |
| || neutron-dhcp-agent |
| || neutron-l3-agent |
| || neutron-metadata-agent |
| || neutron-openvswitch-agent|
| || neutron-server |
| || heat-api |
| || heat-api-cfn |
| || heat-api-cloudwatch |
| || ceph-mon |
| || rados-gw |
| || heat-engine |
+------------+---------------------------+
|compute || nova-compute |
| || neutron-l3-agent |
| || neutron-metadata-agent |
| || neutron-openvswitch-agent|
+------------+---------------------------+
.. table:: Software version on servers with controller and compute roles
+------------+-------------------+
|Software |Version |
+============+===================+
|OpenStack |Mitaka |
+------------+-------------------+
|Ceph |Hammer |
+------------+-------------------+
|Ubuntu |Ubuntu 14.04.3 LTS |
+------------+-------------------+
You can find outputs of some commands and /etc folder in the following
archives:
:download:`controller-1.tar.gz <configs/controller-1.tar.gz>`
:download:`controller-2.tar.gz <configs/controller-2.tar.gz>`
:download:`controller-3.tar.gz <configs/controller-3.tar.gz>`
:download:`compute-1.tar.gz <configs/compute-1.tar.gz>`
:download:`compute-osd-1.tar.gz <configs/compute-osd-1.tar.gz>`
Software configuration on servers with Rally role
-------------------------------------------------
Rally should be installed manually on this server. The extended instructions
can be found in `Rally installation documentation`_
.. table:: Software version on server with Rally role
+------------+-------------------+
|Software |Version |
+============+===================+
|Rally |0.4.0 |
+------------+-------------------+
|Ubuntu |Ubuntu 14.04.3 LTS |
+------------+-------------------+
Test results
============
As a result of this part we got the following HTML file:
:download:`rally_report.html <results/rally_report.html>`
All results added below are part of this report, all values are presented in
seconds.
Cinder
------
+---------------+---------+----------+----------+---------+---------+
| Operation | Mean | 90%ile | 50%ile | Max | Min |
+===============+=========+==========+==========+=========+=========+
| create_volume | 2.58966 | 2.7106 | 2.55807 | 3.81035 | 2.40941 |
+---------------+---------+----------+----------+---------+---------+
Neutron
-------
+---------------------------+----------+-----------+----------+-----------+----------+
| Operation | Mean | 90%ile | 50%ile | Max | Min |
+===========================+==========+===========+==========+===========+==========+
| create_100_rules | 90.6873 | 160.768 | 90.1278 | 176.444 | 21.1011 |
+---------------------------+----------+-----------+----------+-----------+----------+
| create_10_security_groups | 9.26443 | 16.6121 | 9.28746 | 21.1762 | 1.23875 |
+---------------------------+----------+-----------+----------+-----------+----------+
| list_security_groups | 3.34852 | 5.61315 | 3.45464 | 7.33637 | 0.13018 |
+---------------------------+----------+-----------+----------+-----------+----------+
Nova
----
+---------------+----------+----------+----------+----------+-----------+
| Operation | Mean | 90%ile | 50%ile | Max | Min |
+===============+==========+==========+==========+==========+===========+
| attach_volume | 2.85446 | 3.03082 | 2.74456 | 6.36683 | 2.49666 |
+---------------+----------+----------+----------+----------+-----------+
| boot_server | 19.064 | 24.7443 | 18.9116 | 28.9823 | 11.2053 |
+---------------+----------+----------+----------+----------+-----------+
| list_servers | 4.12437 | 7.17804 | 4.11694 | 9.48992 | 0.174039 |
+---------------+----------+----------+----------+----------+-----------+
.. references:
.. _Rally installation documentation: https://rally.readthedocs.io/en/latest/install.html

File diff suppressed because one or more lines are too long

View File

@ -23,4 +23,4 @@ Test Results
1000_nodes/index 1000_nodes/index
reliability/index reliability/index
control_plane/main control_plane/main
controlplane_density/index