Enabling CPU binding

Dynamic Cluster supports CPU binding of virtual machines in VMware and KVM environments.

About this task

By default on a multi-core hypervisor system, a virtual machine is eligible to run on any core of the hypervisor. From time to time, the hypervisor system may switch a VM to a different core based on the load conditions of the core. This behaviour may lead to performance degradation for memory intensive VMs because memory access latency increases if the VM accesses its memory at different memory node. If memory is always allocated from the local node where the VM is running, this latency will be smaller. Ideally, when powering on a virtual machine, a VM should be bound to run on a particular core for its entire lifetime, and therefore use its local memory node based on the default hypervisor policy.

Dynamic Cluster supports this CPU binding feature of virtual machines in VMware and KVM environments. Our tests show a significant performance improvement for jobs running in VMs with CPU binding compared to those running in unbound VMs.

Note:
  • Dynamic Cluster will not bind a single VM to different memory nodes.
  • You cannot enable CPU binding if you are using live migration in the VMware environment.
  • You can enable CPU binding if you are using live migration in the KVM environment, but the VM loses the CPU binding after the live migration is complete.

Complete the following steps to enable CPU binding:

Procedure

  1. Edit the following file on your LSF master host:

    /opt/platform/eservice/esc/conf/services/vmoagent_service.xml

  2. In the file, find the following line:

    <ego:EnvironmentVariable name="VMO_AGENT_VM_CPU_BINDING">FALSE</ego:EnvironmentVariable>

  3. Change the value to TRUE:

    <ego:EnvironmentVariable name="VMO_AGENT_VM_CPU_BINDING">TRUE</ego:EnvironmentVariable>

  4. Save the changes to the file.
  5. Log in as the Platform Cluster Manager administrator. # egosh user logon -u Admin -x Admin
  6. Restart Platform Cluster Manager:
    # egosh service stop VMOAgent
    # egosh service start VMOAgent