Add I/O Semaphore to limit number of concurrent disk operations

Registered by Jack Ding

On a compute node there is a limited amount of disk performance, and if we load it down heavily enough it's possible to cause control-plane operations to time out or to adversely affect guest local disk performance. As such, we want to introduce an I/O semaphore (with the concurrency value set by a new config option) to limit the number of concurrent high-IOPS (Inputs/Outputs per Second) disk operations. This could reduce disk contention from image operations like image download, image format conversion, snapshot extraction, etc.

The new config option can be set in nova.conf per compute host and would be virt-driver-agnostic. It is default to 0 which means no limit.

Blueprint information

Matt Riedemann
Jack Ding
Jack Ding
Series goal:
Accepted for stein
Milestone target:
milestone icon stein-2
Started by
Matt Riedemann
Completed by
Matt Riedemann

Related branches



Gerrit topic:,topic:bp/io-semaphore-for-concurrent-disk-ops,n,z

Addressed by:
    Add I/O Semaphore to limit concurrent disk ops

Notes from the Stein PTG discussion about this:

I/O semaphore
- new config option to specify the number of concurrent high-IOPS operations like image download, image conversion, snapshot extraction
- also offloaded some of these to threads
- Set in nova.conf per compute host. Code on this is very simple.
- Config option would not be driver-specific.
- See:
- We're doing this already for live migration
- Default to 0 which means, no limit
- AGREE: this sounds like an improvement. may not be totally robust but it's better than what we have and a good first step.

-- mriedem 20181030

This blueprint was mentioned in the Nov 1 nova meeting and there were no objections to approve this specless blueprint so I'm approving for Stein. -- mriedem 20181101


Work Items

This blueprint contains Public information 
Everyone can see this information.