Now that I’ve scared you, lets take a look at these use cases.
Generally the consensus is that setting the EVC mode on a cluster is a good thing to make it easier to admit future ESXi hosts and it doesn’t cause any performance degradation. After all, even with it set, it doesn’t prevent you from using the latest clock frequencies, deeper core counts, etc. – BUT – it does mask some of the latest instructions.
This is where performance can be impacted.
If you are hosting an application that could make use of instructions masked out by EVC, you’re missing out on some potential performance gains.
Let’s reference an old, but still very relevant, study by the VMware Performance Engineering team:
For most enterprise applications you can see there is no, or an almost immeasurable, performance impact when using EVC. But, there are certain corner cases, like encryption, that are crippled when instructions sets like AES-NI set are not available (Example: Oracle Transparent Data Encryption, OpenSSL).
So it makes sense that when new host hardware is acquired, to evaluate whether to add it to an existing cluster at a lower level of compatibility, or create a new cluster for applications that can leverage the new capabilities.
Some other great EVC references:
- EVC and CPU Compatibility FAQ (KB 1005764)
- Enhanced vMotion Compatibility (EVC) processor support (KB 1003212)
Unfortunately there’s no easy way to know if your applications are using any of these special instruction sets. Vendor documentation will need to be checked or a simple benchmark can be done if you suspect it may be of value. If you know of any specific examples, feel fee to leave a comment here for future readers.