Rate This Document
Findability
Accuracy
Completeness
Readability

Tuning Principles

The following describes how enabling cluster scheduling tuning works on physical machines and VMs.

  • In a multi-core system, enabling cluster scheduling tuning can significantly improve the performance and efficiency of a multi-threaded application. If CPU cores are not bound to the application or CPU affinity is not configured, tasks are scheduled by the OS kernel. By cluster scheduling tuning, tasks can be allocated to different clusters to implement load balancing. It can also preferentially select CPUs from a same cluster to wake up tasks, thereby reducing communication and synchronization overheads between CPUs, and improving application concurrency. In a system with more than 16 cores, the tuning effect is more obvious, with system resources fully utilized and the application throughput and concurrency enhanced.
  • To enable cluster scheduling tuning in VM scenarios, vCPU topology information of the CPU physical structure needs to be collected and sent to the VM OS. This ensures that the VM OS schedules vCPUs with comparable performance to the scheduling of physical CPUs in a physical machine.

In various application scenarios or test scenarios, especially in multi-core and multi-threaded application scenarios, enabling cluster scheduling tuning improves the performance by 2% to 20%. For example, after the feature is enabled, the overall TPC-DS test duration for running Spark on a VM with 32 cores and 128 GB memory is reduced by 4% to 8%.