Add OpenStack Density test results
Change-Id: I3e406c89e5e9538656b93b7cc1c66d2d5382c9fd
This commit is contained in:
parent
30b4a3b20f
commit
431dde8b6a
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
@ -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 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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)
|
217
doc/source/test_results/controlplane_density/index.rst
Normal file
217
doc/source/test_results/controlplane_density/index.rst
Normal 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
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user