I am running a Windows 2012 R2 servers on a VMware ESXi environment ( 6.5.0 Update 1 (Build 5969303 ) . I experience an extreme poor performance on the Windows 2012R2 server when connection with any RDP-client ( Windows and Mac )
The hardware shouldn’t be an issue.
- the server does not have a high overall load
- there is no high CPU load
- there is enough RAM
- there is no high I/O
This is what I did to solve the issue and get back to fast RDP-performance.
1. Finetune “Remote Desktop Services” in Group Policy
Open Group Policy Editor ( Start -> Run -> gpedit.msc )
Goto Computer Config > Windows Settings > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections > Select RDP transport protocol = Use only TCP
You can also set this on the client side by specifying:
Computer Config > Windows Settings > Admin Templates > Windows Components > Remote Desktop Services > Remote Desktop Connection Client > Turn off UDP on Client = Enabled
2. Disable “DisableTaskOffload” in the Registry
I also added below registry setting to improve performance.
A little explanation of TCP Offloading:
“TCP offload engine is a function used in network interface cards (NIC) to offload processing of the entire TCP/IP stack to the network controller. By moving some or all of the processing to dedicated hardware, a TCP offload engine frees the system’s main CPU for other tasks. However, TCP offloading has been known to cause some issues, and disabling it can help avoid these issues.”
- Open RegEdit on the Windows Server machine.
- Navigate to this registry key in the tree on the left: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
- Right-click on the right side, and add a new DWORD (32-bit) Value
- Set the value name to DisableTaskOffload and the value data to 1
Now Reconnect to the Server via RDP (to a new session) and your performance should be normal.