Which is a valid reason NOT to set affinity on a single virtual machine (VM)?
Affinity settings are ignored as part of a VMotion
Affinity can only be set on hyperthreaded systems.
A VM with affinity might not receive 100 percent of the CPU.
Setting affinity will monopolize a CPU making it unusable for other VMs on the server.
By specifying a CPU affinity setting for each virtual machine, you can restrict the assignment of virtual machines to a subset of the available processors in multiprocessor systems. By using this feature, you can assign each virtual machine to processors in the specified affinity set. In this context, the term CPU refers to a logical processor on a hyperthreaded system, but refers to a core on a non-hyperthreaded system. The CPU affinity setting for a virtual machine applies not only to all of the virtual CPUs associated with the virtual machine, but also to all other threads (also known as worlds) associated with the virtual machine. Such virtual machine threads perform processing required for emulating mouse, keyboard, screen, CD-ROM and miscellaneous legacy devices.
Consider your resource management needs before you enable CPU affinity on hosts using hyperthreading. For example, if you bind a high priority virtual machine to CPU 0 and another high priority virtual machine to CPU 1, the two virtual machines have to share the same physical core. In this case, it can be impossible to meet the resource demands of these virtual machines. Ensure that any custom affinity settings make sense for a hyperthreaded system.