← Back to team overview

yahoo-eng-team team mailing list archive

[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