yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #05776
[Bug 1213080] Re: no config for multiple conductor workers
** Changed in: nova
Status: Fix Committed => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1213080
Title:
no config for multiple conductor workers
Status in OpenStack Compute (Nova):
Fix Released
Bug description:
Nova-conductor processes access the database directly. Since the
database connection driver is typically implemented in a library
beyond the purview of eventlet’s monkeypatching (i.e., a native python
extension like _mysql.so), blocking database calls will block all
eventlet coroutines. Since much of what nova-conductor does is access
the database, a nova-conductor process’s handling of requests is
effectively serial.
To mitigate this problem, you can simply run more nova-conductor
processes. Deploying multiple conductor workers per host avoids
serialization on database accesses caused by libmysqlclient.so
blocking eventlet's single thread. In an experiment on a 24-core
machine, when creating 20 VMs in parallel, maximum creation time was
reduced by approx. 10s when using 20 conductor processes vis-a-vis a
single conductor process. Profiling showed that all of the savings
came from faster calls into nova.db.sqlalchemy.api.
To make running multiple nova-conductor processes straightforward,
there should be a workers=N option in the [conductor] section of
nova.conf -- just like the osapi_compute_workers=N flag in the
[DEFAULT] section.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1213080/+subscriptions