When running certain proprietary office software, there will sometimes be a notice about incompatibility with the underlying hardware when installing in a virtual machine. The vendor will usually strongly insist that the server software be run on a baremetal machine (directly installed on the underlying hardware) and will (most of the time) waive responsibility for anything that happens in terms of errors or performance.
One such software in specific is Sage. Sage is accounting and business software mostly used by construction/contractor companies. In one such installation, we at Black Sails noticed a significant performance drop after an installation on a virtual machine. After further investigation: it turns out it is because of LRO (Large Receive Offload) on ESX(i) needs to be turned on along with RSC (Receive Segment Coalescing) inside the Windows guest operating system. By default, LRO is enabled in the VMkernel and in the VMXNET3 virtual machine adapters.
To solve this verify that LRO is turned off in VMWare:
- In vSphere Client under the navigation menu on the left, beneath the host click Manage.
- Under the System tab, select Advanced settings.
- Search for Net.Vmxnet3HwLRO and make sure it is set to 1
In the Windows virtual machine:
- In Network and Sharing Center, right-click on the vmxnet3 network adapter and click properties.
- Under the Advanced tab, scroll down to Recv Segment Coalescing (IPv4) and make sure it’s Enabled
After these settings we noticed a considerable increase in Sage performance.
NOTE: There is anecdotal evidence that turning LRO OFF in VMWare will solve this problem. Test in your environment by connecting to the sage server from a client machine before and after enabling/disabling LRO in ESX.