[openstack-dev] [Ironic][Nova] liberty scale testing

Vasyl Saienko vsaienko at mirantis.com
Mon Apr 11 12:41:56 UTC 2016


Hello Community,

I want to share Ironic liberty scale testing. The tests were performed on
200 hw nodes lab (see server configuration below).

Hardware configuration:
HP ProLiant DL380 Gen9
CPU: 2 x E5-2680 v3 @ 2.50GHz
RAM: 256.0 GB
DISK: 12 x EH0600JDYTL HP 600-GB 12G 15K 2.5 DP SAS HDD Raid 10
NIC: 8 x 10.0 Gbps

Environment configuration:
3 controllers + ceph (*api, *scheduller, 1 active nova-compute, *ceph)
2 ironic (ironic-conductor)

We used the following test scenario:

1. Enrol hardware servers to Ironic
2. Launch rally boot_and_list
<https://github.com/openstack/rally/blob/master/samples/tasks/scenarios/nova/boot-and-list.json>,
boot_and_delete
<https://github.com/openstack/rally/blob/master/samples/tasks/scenarios/nova/boot-and-delete.json>
nova scenarios.
3. On each hardware server create 120 VMs with 1.5 Gb of RAM, 2 CPU and 11
GB of disk.
4. Enroll VMs to Ironic with libvirt driver [7], if needed.
5. Launch rally scenarios.
6. Go to step 4.

In general we add 4k+ nodes to Ironic and boot 4k Nova instances.
Brief test results are shown in the tables below.

boot_server

Total Nova instances

Min (sec)

95%ile (sec)

Max (sec)

Success

200

190.644

273.491

284.578

100.00%

500

168.075

293.545

335.318

100.00%

1000

210.525

286.275

315.824

99.00%

1800

158.064

526.742

569.499

99.50%

3700

160.575

559.092

662.142

99.20%

list_servers

Total Nova instances

Min (sec)

95%ile (sec)

Max (sec)

Success

200

0.258

0.687

0.775

100.00%

500

0.324

0.996

1.075

100.00%

1000

0.28

1.017

1.177

100.00%

1800

0.291

1.366

1.927

100.00%

3700

0.135

0.854

3.654

100.00%

delete_server

Total Nova instances

Min (sec)

95%ile (sec)

Max (sec)

Success

1000

20.364

20.731

20.879

100.00%

2200

20.325

20.84

21.047

100.00%

3700

20.342

20.874

21.01

100.00%

Nova tuning:
*max_concurrent_builds*: (IntOpt) Maximum number of instance builds to run
concurrently. Default is 10. In case of Ironic this value can be safely
increased since provisioning is done on the separate servers. We used 50
and didn't saw any performance degradation.

*scheduler_host_subset_size:* (IntOpt) New instances will be scheduled on a
host chosen randomly from a subset of the N best hosts. This property
defines the subset size that a host is chosen from. A value of 1 chooses
the first host returned by the weighing functions. This value must be at
least 1. Any value less than 1 will be ignored, and 1 will be used instead.
Since resource claim are performed at the nova compute, there might be
situations when several instances are placed on single compute
(hypervisor). As result one of them will fail to build. By increasing
*scheduler_host_subset_size
*to number of hypervisors we minimize such errors.

Issues:

   1. Claim resources at nova compute leads to situations when scheduler
   places several instances to single hypervisor. In case of Ironic one of
   instances will always fail to build. This situation is especially
   pronounced when we request boot instances with amount near to total amount
   of ironic nodes (nova hypervisors). Some work is being done already [1],
   [2], [3]

   2. Nova resource tracker
   <https://github.com/openstack/nova/blob/master/nova/compute/resource_tracker.py#L46>uses
   shared lock for compute when performing operations. In case of Ironic it
   leads to lock starvation with higher number of ironic nodes.

   3. Deleting single Nova instance initiates resource update for all
   hyporvisors in the cloud [4]. It makes booting/deleing operations super
   slow especially with issue 2. [5]



[1]
https://specs.openstack.org/openstack/nova-specs/specs/newton/approved/ironic-multiple-compute-hosts.html
[2] https://review.openstack.org/204641/
<https://review.openstack.org/#/c/204641/>
[3] https://review.openstack.org/225546/
<https://review.openstack.org/#/c/225546/>
[4] https://launchpad.net/bugs/1552446
[5] https://review.openstack.org/287498/
<https://review.openstack.org/#/c/287498/>
[6] https://review.openstack.org/287485/
[7] https://review.openstack.org <https://review.openstack.org/#/c/294688/>
/294688/ <https://review.openstack.org/#/c/294688/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160411/9b5a7e41/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rally_reports.tar.gz
Type: application/x-gzip
Size: 473248 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160411/9b5a7e41/attachment-0002.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cacti-results.tar.gz
Type: application/x-gzip
Size: 22484363 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160411/9b5a7e41/attachment-0003.bin>


More information about the OpenStack-dev mailing list