Merge "Openstack performance tests results"

This commit is contained in:
Jenkins 2016-08-03 09:29:21 +00:00 committed by Gerrit Code Review
commit c0bbb74138
15 changed files with 1306 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,13 @@
{
"admin": {
"password": "password",
"tenant_name": "tenant",
"username": "user"
},
"auth_url": "http://1.2.3.4:5000/v2.0",
"region_name": "RegionOne",
"type": "ExistingCloud",
"endpoint_type": "internal",
"admin_port": 35357,
"https_insecure": true
}

View File

@ -0,0 +1,5 @@
---
concurrency: 5
compute: 196
gre_enabled: false
http_server_with_glance_images: "1.2.3.4"

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,12 @@
${WORK_DIR:?}
DEPLOYMENT_NAME="$(uuidgen)"
DEPLOYMENT_CONFIG="${WORK_DIR}/deployment.json"
PLUGIN_PATH="${WORK_DIR}/plugins/nova_scale.py"
JOB_PARAMS_CONFIG="${WORK_DIR}/job-params.yaml"
rally deployment create --filename $(DEPLOYMENT_CONFIG) --name $(DEPLOYMENT_NAME)
SCENARIOS="boot_attach_live_migrate_and_delete_server_with_secgroups create-and-delete-image keystone.json"
for scenario in SCENARIOS; do
rally --plugin-paths ${PLUGINS_PATH} task start --tag ${scenario} --task-args-file ${JOB_PARAMS_CONFIG} ${WORK_DR}/scenarios/${scenario}
done
task_list="$(rally task list --uuids-only)"
rally task report --tasks ${task_list} --out=${WORK_DIR}/rally_report.html

View File

@ -0,0 +1,305 @@
.. _openstack_control_plane_performance_report:
******************************************
OpenStack control plane performance report
******************************************
:Abstract:
This document includes OpenStack control plane performance test results.
All tests have been performed regarding
:ref:`openstack_control_plane_performance_test_plan`
Environment description
=======================
Environment contains 4 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 same network configuration:
.. image:: configs/Network_Scheme.png
:alt: Network Scheme of the environment
Here is the part of switch configuration for each switch port which 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, compute and compute-osd 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 |
| || memcached |
| || rabbitmq_server |
| || mysqld |
| || galera |
| || corosync |
| || pacemaker |
| || haproxy |
+------------+----------------------------+
|compute || nova-compute |
| || neutron-l3-agent |
| || neutron-metadata-agent |
| || neutron-openvswitch-agent |
+------------+----------------------------+
|compute-osd || nova-compute |
| || neutron-l3-agent |
| || neutron-metadata-agent |
| || neutron-openvswitch-agent |
| || ceph-osd |
+------------+----------------------------+
.. table:: Software version on servers with controller, compute and compute-osd 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
-------------------------------------------------
On this server should be installed Rally. How to do it you can find in
`Rally installation documentation`_
.. table:: Software version on server with rally role
+------------+-------------------+
|Software |Version |
+============+===================+
|Rally |0.4.0 |
+------------+-------------------+
|Ubuntu |Ubuntu 14.04.3 LTS |
+------------+-------------------+
Testing process
===============
.. table:: Some test parameters
+--------------------------------+--------+
|Name |Value |
+================================+========+
|Volume size to create in Cinder |1GB |
+--------------------------------+--------+
|Flavor to create VM from |m1.tiny |
+--------------------------------+--------+
|Image name to create VM from |cirros |
+--------------------------------+--------+
1. Create work directory on server with Rally role. In future we will call that directory as WORK_DIR
2. Create directory "plugins" in WORK_DIR and copy to that directory
:download:`nova_performance.py <../../test_plans/control_plane/plugins/nova_performance.py>` plugin.
3. Create directory "scenarios" in WORK_DIR and copy to that directory
:download:`boot_attach_live_migrate_and_delete_server_with_secgroups.json
<rally_scenarios/boot_attach_live_migrate_and_delete_server_with_secgroups.json>`,
:download:`create-and-delete-image.json <rally_scenarios/create-and-delete-image.json>`
and :download:`keystone.json <rally_scenarios/keystone.json>` scenarios.
4. Create deployment.json file in WORK_DIR and fill it with OpenStack environment info.
It should looks like this:
.. literalinclude:: configs/deployment.json
:language: bash
5. Create job-params.yaml file in WORK_DIR and fill it with scenarios info.
It should looks like this:
.. literalinclude:: configs/job-params.yaml
:language: bash
6. Perform tests:
.. literalinclude:: configs/run_test_script.sh
:language: bash
As a result of this part we got the following HTML file:
:download:`rally_report.html <configs/rally_report.html>`
Test results
============
All values in tables below are in seconds.
Cinder
------
+---------------+---------+----------+----------+---------+---------+
| Operation | Mean | 90%ile | 50%ile | Max | Min |
| | (sec) | (sec) | (sec) | (sec) | (sec) |
+===============+=========+==========+==========+=========+=========+
| create_volume | 2.619 | 2.754 | 2.593 | 2.988 | 2.453 |
+---------------+---------+----------+----------+---------+---------+
| delete_volume | 2.339 | 2.449 | 2.323 | 2.666 | 2.200 |
+---------------+---------+----------+----------+---------+---------+
Glance
------
+--------------+----------+----------+----------+----------+-----------+
| Operation | Mean | 90%ile | 50%ile | Max | Min |
| | (sec) | (sec) | (sec) | (sec) | (sec) |
+==============+==========+==========+==========+==========+===========+
| create_image | 44.204 | 56.243 | 43.835 | 74.826 | 22.382 |
+--------------+----------+----------+----------+----------+-----------+
| delete_image | 1.579 | 2.049 | 1.540 | 3.846 | 0.718 |
+--------------+----------+----------+----------+----------+-----------+
Keystone
--------
+--------------+-----------+----------+-----------+----------+-----------+
| Operation | Mean | 90%ile | 50%ile | Max | Min |
| | (sec) | (sec) | (sec) | (sec) | (sec) |
+==============+===========+==========+===========+==========+===========+
| authenticate | 0.099 | 0.135 | 0.093 | 0.718 | 0.054 |
+--------------+-----------+----------+-----------+----------+-----------+
Neutron
-------
+--------------------------+----------+----------+----------+----------+----------+
| Operation | Mean | 90%ile | 50%ile | Max | Min |
| | (sec) | (sec) | (sec) | (sec) | (sec) |
+==========================+==========+==========+==========+==========+==========+
| create_20_rules | 4.535 | 4.883 | 4.515 | 5.577 | 3.873 |
+--------------------------+----------+----------+----------+----------+----------+
| create_2_security_groups | 0.412 | 0.477 | 0.401 | 0.670 | 0.292 |
+--------------------------+----------+----------+----------+----------+----------+
| delete_2_security_groups | 0.380 | 0.480 | 0.371 | 0.771 | 0.234 |
+--------------------------+----------+----------+----------+----------+----------+
Nova
----
+----------------------+-----------+-----------+-----------+-----------+-----------+
| Operation | Mean | 90%ile | 50%ile | Max | Min |
| | (sec) | (sec) | (sec) | (sec) | (sec) |
+======================+===========+===========+===========+===========+===========+
| attach_volume | 2.806 | 2.985 | 2.781 | 3.294 | 2.563 |
+----------------------+-----------+-----------+-----------+-----------+-----------+
| boot_server | 11.989 | 12.937 | 11.953 | 14.265 | 9.482 |
+----------------------+-----------+-----------+-----------+-----------+-----------+
| delete_server | 2.531 | 2.670 | 2.467 | 4.817 | 2.348 |
+----------------------+-----------+-----------+-----------+-----------+-----------+
| detach_volume | 2.701 | 2.861 | 2.684 | 3.201 | 2.464 |
+----------------------+-----------+-----------+-----------+-----------+-----------+
| find_host_to_migrate | 0.554 | 0.682 | 0.520 | 0.954 | 0.419 |
+----------------------+-----------+-----------+-----------+-----------+-----------+
| live_migrate | 15.351 | 15.715 | 15.221 | 28.692 | 12.623 |
+----------------------+-----------+-----------+-----------+-----------+-----------+
.. references:
.. _Rally installation documentation: https://rally.readthedocs.io/en/latest/install.html

View File

@ -0,0 +1,68 @@
{% set flavor_name = flavor_name or "m1.tiny" %}
{% set image_name = image_name or "^(cirros.*uec|TestVM)$" %}
{
"NovaPerformancePlugin.boot_attach_live_migrate_and_delete_server_with_secgroups": [
{
"args": {
"flavor": {
"name": "{{flavor_name}}"
},
"image": {
"name": "{{image_name}}"
},
"security_group_count": 2,
"rules_per_security_group": 10,
"boot_server_kwargs": { "auto_assign_nic" : true },
"create_volume_kwargs": {},
"volume_size": 1,
"disk_over_commit": false,
"min_sleep": 0,
"max_sleep": 0,
"block_migration": false,
"do_migration": true,
"do_delete": true
},
"runner": {
"type": "constant",
"times": {{ 5 * compute }},
"concurrency": {{concurrency}}
},
"context": {
"users": {
"tenants": 1,
"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": 1
}
},
"sla": {
"failure_rate": { "max": 0 }
}
}
]
}

View File

@ -0,0 +1,25 @@
{
"GlanceImages.create_and_delete_image": [
{
"args": {
"image_location": "http://{{http_server_with_glance_images}}/images/glance_1g_image.raw",
"container_format": "bare",
"disk_format": "raw"
},
"runner": {
"type": "constant",
"times": 400,
"concurrency": 50
},
"context": {
"users": {
"tenants": 2,
"users_per_tenant": 3
}
},
"sla": {
"failure_rate": { "max": 0 }
}
}
]
}

View File

@ -0,0 +1,20 @@
{
"Authenticate.keystone": [
{
"runner": {
"type": "rps",
"times": 120000,
"rps": 180
},
"context": {
"users": {
"tenants": 10,
"users_per_tenant": 10
}
},
"sla": {
"failure_rate": { "max": 0 }
}
}
]
}

View File

@ -22,3 +22,5 @@ Test Results
openstack_load/index
1000_nodes/index
reliability/index
control_plane/main