Another thing that is probably contributing to the slow nova-api start time is that every nova.compute.api.API constructs a SchedulerReportClient, which grabs an in-memory lock per API worker during init:
Dec 05 20:14:27.694593 ubuntu-xenial-ovh-bhs1-0000959981 <email address hidden>[23459]: DEBUG oslo_concurrency.lockutils [None req-dfdfad07-2ff4-43ed-9f67-2acd59687e0c None None] Lock "placement_client" released by "nova.scheduler.client.report._create_client" :: held 0.006s {{(pid=23462) inner /usr/local/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py:339}}
We could probably be smarter about either making that a singleton in the API or only init on first access since most of the API extensions aren't going to even use that SchedulerReportClient.
Another thing that is probably contributing to the slow nova-api start time is that every nova.compute. api.API constructs a SchedulerReport Client, which grabs an in-memory lock per API worker during init:
Dec 05 20:14:27.694593 ubuntu- xenial- ovh-bhs1- 0000959981 <email address hidden>[23459]: DEBUG oslo_concurrenc y.lockutils [None req-dfdfad07- 2ff4-43ed- 9f67-2acd59687e 0c None None] Lock "placement_client" released by "nova.scheduler .client. report. _create_ client" :: held 0.006s {{(pid=23462) inner /usr/local/ lib/python2. 7/dist- packages/ oslo_concurrenc y/lockutils. py:339} }
We could probably be smarter about either making that a singleton in the API or only init on first access since most of the API extensions aren't going to even use that SchedulerReport Client.