6.4.1. OpenStack control plane performance report for 1000 nodes¶
- Abstract
This document includes OpenStack control plane performance test results for 1000 compute nodes cluster. All tests have been performed regarding OpenStack control plane performance test plan
6.4.1.1. Environment description¶
Environment contains 4 types of servers:
rally node
controller node
osd node
hypervisor
compute node
Role |
Servers count |
Server Type |
---|---|---|
rally |
1 |
bare-metal |
controller |
3 |
bare-metal |
osd |
20 |
bare-metal |
compute |
1000 |
virtual |
6.4.1.1.1. Hardware configuration of each server¶
All bare-metal servers have the 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 |
All virtual servers has the same configuration. QEMU-KVM used as hypervisor.
For datailed info about VM configuration look into sample
domain.xml
.
6.4.1.1.2. Network configuration of each server¶
Lab network configuration you can find in scheme below:
Here is the part of switch configuration for each switch port which connected to p1p1 interface of a bare-metal 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.4.1.1.3. Software configuration on servers with controller, osd and compute 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
|
osd |
ceph-osd
|
compute |
nova-compute
neutron-l3-agent
neutron-metadata-agent
neutron-openvswitch-agent
|
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.4.1.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.4.1.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: 1000 gre_enabled: false http_server_with_glance_images: "1.2.3.4"
Perform tests:
rally --plugin-paths /home/rally/plugins task start \ keystone.json \ --task-args '{"gre_enabled": true, "compute": 375, "concurrency": 5}' \ --out=keystone.html rally --plugin-paths /home/rally/plugins task start \ boot_attach_live_migrate_and_delete_server_with_secgroups.json \ --task-args '{"gre_enabled": true, "compute": 375, "concurrency": 5}' \ --out=boot_attach_live_migrate_and_delete_server_with_secgroups.html rally --plugin-paths /home/rally/plugins task start \ create-and-delete-image.json \ --task-args '{"gre_enabled": true, "compute": 375, "concurrency": 5, "http_server_with_glance_images": "1.2.3.4"}' \ --out=create-and-delete-image.html
As a result of this part we got the following HTML file:
6.4.1.3. Test results¶
All values in tables below are in seconds.
6.4.1.3.1. Cinder¶
Operation |
Mean |
90%ile |
50%ile |
Max |
Min |
---|---|---|---|---|---|
create_volume |
2.59589 |
2.72586 |
2.57214 |
3.05174 |
2.40753 |
delete_volume |
2.31282 |
2.42514 |
2.30285 |
2.77269 |
0.4474 |
6.4.1.3.2. Glance¶
Operation |
Mean |
90%ile |
50%ile |
Max |
Min |
---|---|---|---|---|---|
create_image |
44.797 |
59.5237 |
43.129 |
73.7454 |
26.3647 |
delete_image |
1.51749 |
1.98148 |
1.51694 |
2.93414 |
0.649655 |
6.4.1.3.3. Keystone¶
Operation |
Mean |
90%ile |
50%ile |
Max |
Min |
---|---|---|---|---|---|
keystone |
0.0772378 |
0.10375 |
0.071027 |
0.624643 |
0.0493538 |
6.4.1.3.4. Neutron¶
Operation |
Mean |
90%ile |
50%ile |
Max |
Min |
---|---|---|---|---|---|
create_20_rules |
4.45449 |
4.75529 |
4.4336 |
5.72318 |
3.71847 |
create_2_security_groups |
0.358809 |
0.405863 |
0.350541 |
1.10707 |
0.261818 |
delete_2_security_groups |
0.314609 |
0.397726 |
0.308533 |
0.602876 |
0.191209 |
6.4.1.3.5. Nova¶
Operation |
Mean |
90%ile |
50%ile |
Max |
Min |
---|---|---|---|---|---|
attach_volume |
2.77096 |
2.93019 |
2.753 |
3.5367 |
2.50419 |
boot_server |
13.1012 |
14.1159 |
12.9169 |
17.6851 |
11.2657 |
delete_server |
2.4879 |
2.62365 |
2.42707 |
4.98843 |
2.32484 |
detach_volume |
2.64998 |
2.80518 |
2.62848 |
3.30333 |
2.39798 |
find_host_to_migrate |
1.19893 |
1.36617 |
1.21302 |
1.77083 |
0.896176 |
live_migrate |
14.6121 |
15.3808 |
14.9722 |
26.7783 |
12.3919 |
6.4.1.4. Issues which have been found during the tests¶
Issue description |
Root cause, Link |
Link to bug |
Is fixed |
---|---|---|---|
Live migration failure.
Port range intersection.
|
Qemu and nova use the same
port range.
|
Yes |
Test result from run where bug mentioned above was not fixed: rally_report.html