Ask Your Question

Revision history [back]

apache2 neutron wsgi don't ack rabbitMQ messages

Hi guys,

another day, another problem :).

  • Icehouse
  • Apache2.4
  • Ubuntu 14.04

I'm scaling our Neutron API endpoints to different servers to reach more throughput. In this case i decided to use apache2 with WSGI module to run the server in multi threaded mode to use optimal all CPU cores and handle more parallel requests.

I create a vHost and a wsgi startup script file

script:

from neutron.openstack.common import log as logging
from neutron.common import config

logging.setup('neutron')
config.parse(['--config-file', '/etc/neutron/neutron.conf', '--config-file', '/etc/neutron/plugins/ml2/ml2_conf.ini'])
application = config.load_paste_app("neutron")

vhost:

Listen *:9696
<VirtualHost *:9696>
    WSGIScriptAlias / /var/www/cgi-bin/neutron
    WSGIDaemonProcess neutron-public user=neutron group=neutron processes=3 threads=10
    WSGIProcessGroup neutron-public
    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorization On

    LogLevel info
    ErrorLog /var/log/apache2/neutron-error.log
    CustomLog /var/log/apache2/neutron-access.log combined
</VirtualHost>

So the server is running well, all requests are working well but i see on the messaging bus (rabbitmq) unack messages in two queues as far as the apache2 is running. The unack messages on both queues (n-lbaas-plugin & q-metering-plugin) is increasing over time. As soon as i switch to the build-IN webserver of Neutron all messages on both queues will ack and deliver.

Is there any trick or is that a problem with multi thread ?

Cheers and thanks Heiko