Quality of Service (QoS) is the definition for the overall performance of a telephony or compute network, particularly the performance seen by the users of the network. With the development of OpenStack, there are a lot of services being splitted out and working together to provide infrastructure as a service. As a service, it is the time to think about the quality of the service, i.e., OpenStack QoS.
OpenStack provides IaaS to users, so there exists the problems on how to measure the quality of the service, how to make sure the quality of each component, and so on. Likewise, to quantitatively measure quality of service, the normal related aspects are considered, such as error rates (or success rates), bandwidth, throughput, transmission delay, availability, jitter, and so on.
In OpenStack, we have 3 major components to provider different services to IaaS: compute, network and storage. Also, in OpenStack, we have 2 sorts of users: cloud admins and cloud users. For different users, what they expect is different.
For cloud users, they expect their applications or services run smoothly and safely. For instance, they expect to access the VM with remote desktop tool like VNC at an acceptable speed, which requires the network bandwidth of the VM is good and the transmission delay is short. If they expect the services in the VM to be run at an acceptable speed, that will require CPU as a resource is allocated reasonably. If any of the applications or the services is running on databases, that might require reading or writing storage is fast.
For cloud admins, they rarely consider the quality of a specific VM but the overall cloud. For instance, they might consider how fast the Horizon UI is, throughput of the RabbitMQ, success ratio of nova scheduler, whether the number of VMs on a host is so huge that has significant impact on other VMs, the overall power consumption of the cloud, and so on.
The following aspects should fall into compute:
- The number of sockets, cores and threads per host.
- The number being used per host (regarding pin)
- The frequency of each CPU
- The number of vcpu per VM.
- CPU Cache
- The total CPU LLC cache size per host
- The total cache size being used per host.
- The CPU cache size being used per VM
- CPU Utilization
- The overall CPU utilization per host
- (Hard to tell how much utilization for a VM, can we?)
- Power Consumption
- The power consumption on a host
- (Hard to tell how much power consumed by a VM!)
If you're interested in the project for OpenStack QoS, please email to shane.wang <at> intel.com