When running a python app as WSGI, you need to use maximum 1 thread!
Example with apache config:
$ grep WSGIDaemonProcess /etc/apache2/sites-available/10-cinder_wsgi.conf WSGIDaemonProcess cinder-api display-name=cinder_wsgi group=cinder processes=8 threads=1 user=cinder
Documentation link: https://docs.openstack.org/nova/latest/configuration/config.html#api.max_limit
This settings needs to be tuned in order to make sure that Nova API will give you an expected number of objects..
We recommend adding the memcached settings (memcached_servers) to all services.
It will help keystone a lot (memcached will be used to store tokens instead of asking for new tokens on each call).
It will also reduce API response time.