1. Proposed title of this feature request:
CPU Performance Service Levels using CPU Shares and Placement Resource Classes
2. What is the nature and description of the request?
a mechanism within Nova to allow users to
request and receive predictable CPU performance service levels for their
instances. By leveraging CPU shares managed via control groups (cgroups)
and integrating with OpenStack Placement using standardized resource
classes, we aim to provide a standardized and quantifiable way for users
to express desired performance tiers and for cloud administrators to
enforce performance guarantees, particularly in oversubscribed
environments.
3. Why does the customer need this? (List the business requirements here)
Users currently lack a standardized and reliable method within Nova to
request and guarantee specific levels of CPU performance for their
instances. While existing mechanisms like CPU pinning or NUMA topology
awareness provide some control, they are often complex to manage and do not
offer a simple, quantifiable way to express desired performance tiers across a shared
infrastructure, leading to unpredictable performance, especially in
oversubscribed environments, making it difficult for users to run
performance-sensitive workloads with confidence.
The goal is to introduce a mechanism that allows users to request CPU
performance service levels based on CPU shares, providing a more
predictable and manageable approach to CPU resource allocation and
performance guarantees.
Use Cases
---------
- A user wants to launch a database server instance and ensure it receives
a guaranteed minimum level of CPU performance, even under high load
from other instances on the same host. - A user is running a batch processing job that requires a consistent amount
of CPU time to complete within a specific timeframe. They need to request
a performance tier that guarantees this. - A cloud administrator wants to offer different tiers of compute service
(e.g., "Bronze", "Silver", "Gold") based on guaranteed CPU performance,
allowing users to choose the level that best suits their workload and
budget. - As a cloud administrator, I want to achieve higher utilization of my
infrastructure by allowing lower performance tier instances to use more
resources when there is low contention but reduce them to a lower
level of performance when higher priority workloads become active.
For example, running lower priority batch processing jobs when higher
priority customer workloads are idle.
4. List any affected packages or components.
openstack-nova
openstack-placement
- is related to
-
RHOSSTRAT-1032 Resource Provider Weigher
-
- New
-
- links to