Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

From the hypervisor's perspective, a virtual machine appears as a single process that should be scheduled on the available CPUs. By design, hypervisors schedule the clock cycle on a different processor. While this is certainly acceptable in environments where the hypervisor is allowed to over-commit, this contradicts the requirements for real-time applications. Hence, Sonus requires CPU pinning to prevent applications from sharing a core.

Caption
0Figure
1CPU with Unpinned Applications

Image Modified

Caption
0Figure
1CPU with Pinned Applications

 Image Modified

 

By default, virtual CPUs are not assigned to a host CPU, but Sonus requires CPU pinning to maintain the requirements of real-time media traffic. The primary reason for pinning Sonus instances is to prevent other workloads (including those of the host OS) from causing significant jitter in media processing. It is also possible to introduce significant message queuing delays and buffer overflows at higher call rates. OpenStack states that no instance with pinned CPUs can use the CPUs of another pinned instance. This prevents resource contention and improves processor cache efficiency by reserving physical cores. Host Aggregate filters or Availability Zones can be used to select compute hosts for pinned and non-pinned instances. OpenStack clearly states that pinned instances must be separated from unpinned instances as latter will not respect the resourcing requirements of the former.

...