6.5.2. OpenStack control plane performance report for 200 nodes¶
Abstract: | This document includes OpenStack control plane performance test results for 200 nodes. All tests have been performed regarding OpenStack control plane performance test plan |
---|
6.5.2.1. Environment description¶
Environment contains 4 types of servers:
- rally node
- controller node
- compute-osd node
- compute node
Role | Servers count |
---|---|
rally | 1 |
controller | 3 |
compute | 176 |
compute-osd | 20 |
6.5.2.1.1. Hardware configuration of each server¶
All servers have same configuration describing in table below
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 |
6.5.2.1.2. Network configuration of each server¶
All servers have same network configuration:
Here is the part of switch configuration for each switch port which connected to ens1f0 interface of a server:
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
6.5.2.1.3. Software configuration on servers with controller, compute and compute-osd roles¶
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
|
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:
6.5.2.1.4. 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
Software | Version |
---|---|
Rally | 0.4.0 |
Ubuntu | Ubuntu 14.04.3 LTS |
6.5.2.2. Testing process¶
Name | Value |
---|---|
Volume size to create in Cinder | 1GB |
Flavor to create VM from | m1.tiny |
Image name to create VM from | cirros |
Create work directory on server with Rally role. In future we will call that directory as WORK_DIR
Create directory “plugins” in WORK_DIR and copy to that directory
nova_performance.py
plugin.Create directory “scenarios” in WORK_DIR and copy to that directory
boot_attach_live_migrate_and_delete_server_with_secgroups.json
,create-and-delete-image.json
andkeystone.json
scenarios.Create deployment.json file in WORK_DIR and fill it with OpenStack environment info. It should looks like this:
{ "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 }
Create job-params.yaml file in WORK_DIR and fill it with scenarios info. It should looks like this:
--- concurrency: 5 compute: 196 gre_enabled: false http_server_with_glance_images: "1.2.3.4"
Perform tests:
${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
As a result of this part we got the following HTML file:
6.5.2.3. Test results¶
All values in tables below are in seconds.
6.5.2.3.1. Cinder¶
Operation | Mean (sec) | 90%ile (sec) | 50%ile (sec) | Max (sec) | Min (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 |
6.5.2.3.2. Glance¶
Operation | Mean (sec) | 90%ile (sec) | 50%ile (sec) | Max (sec) | Min (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 |
6.5.2.3.3. Keystone¶
Operation | Mean (sec) | 90%ile (sec) | 50%ile (sec) | Max (sec) | Min (sec) |
---|---|---|---|---|---|
authenticate | 0.099 | 0.135 | 0.093 | 0.718 | 0.054 |
6.5.2.3.4. Neutron¶
Operation | Mean (sec) | 90%ile (sec) | 50%ile (sec) | Max (sec) | Min (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 |
6.5.2.3.5. Nova¶
Operation | Mean (sec) | 90%ile (sec) | 50%ile (sec) | Max (sec) | Min (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 |