
Issue 11
© Solarflare Communications 2014
257
Solarflare Server Adapter
User Guide
Binding NetQueue queues and Virtual Machines to CPUs
Depending on the workload, NetQueue can show improved performance if each of the queues’
associated interrupt and the virtual machine are pinned to the same CPU. This is particularly true of
workloads where sustained high bandwidth is evenly distributed across multiple virtual machines
(such as you might do when benchmarking). To pin a Virtual Machine to one or more CPUs:
1
Log in to the VMware Infrastructure Client.
2
Expand the host and select the virtual machine to pin from the inventory panel.
3
Select the
Summary
tab for that virtual machine.
4
Click
Edit Settings
.
5
From the resulting dialog box select the
Resources
tab
6
Click
Advanced CPU
on the left.
7
Select the CPU(s) to which the virtual machine is to be bound (on the right hand side of the
dialog box).
To bind a queue’s interrupt to a CPU, from the VMware ESX console OS enter:
# echo move $IRQVEC $CPU > /proc/vmware/intr-tracker
(Where
$IRQVEC
is the interrupt vector in hex, and
$CPU
is the CPU number in decimal.)
To determine the value for
$IRQVEC
enter:
# cat /proc/vmware/interrupts
Locate the interrupts associated with the Solarflare adapter (e.g. vmnic2). Interrupts are listed in
order: the first interrupt will be for the
default
queue, the second interrupt for the queue dedicated
to the first virtual machine to have been started, the third interrupt for the queue dedicated to the
second virtual machine to have been started, and so on.
If there are more virtual machine’s than CPUs on the host, optimal performance is obtained by
pinning each virtual machine and associated interrupt to the same CPU. If there are fewer virtual
machines than CPUs, optimal results are obtained by pinning the virtual machine and associated
interrupt respectively to two cores which share an L2 cache.