Fileserver in a multi-user environment is a central topic, because of user home drives and folder redirection in place. These days virtual Windows fileserver are quickly deployed but not really configured and left with just defaults. With Server 2012 R2 it means SMB 3.02 and is better than previous versions but 2012 R2 offers more and you should use it. Especially VMWare environments are not using features because they are turned off by default. Activating them alone is also not enough if the VM hasn't the right amount of resources and I often find central fileserver with just 1 vCPU and 4 GB RAM!
Virtual Receive-side Scaling (vRSS)
virtual RSS is the magic word and an option in the configuration of the network adapter. You can check If it is active by using Powershell (PoSh). Either with
Get-SmbClientNetworkInterface) or with
Get-NetAdapterRSS and returns "true" or "false" as value. When using VMWare the default answer is will be "false" and therefore not active. With Hyper-V and XenServer the return value is "true" and therefore active.
With the following PoSh command RSS can be activated:
Set-NetAdapterRSS -Name "AdapterName" -Enabled $True
What is RSS good for? Without RSS all network I/O is processed through a single CPU and with RSS enabled ALL available CPU's are used to bring data on the wire. This, of course, improves the SMB performance. In addition, the server RAM is used for caching purpose to further optimize SMB traffic. Therefore more CPU's with RSS enabled and more RAM is advisable.
According to Microsoft a current CPU under best conditions can get 7 Gbit/s on the network and wouldn't be enough with 10 Gbit/s networks. It means without RSS 10G networks will never be fully used. When RSS is turned on and 4 CPU's are available, then it could get up to 28 Gbit/s. Since the CPU's are doing other things at the same time, I would guess only max 30% CPU will be used for network I/O. That would give us still more than 9 Gbit/s
For those who need even more performance should use SMB-Direct and requires an RDMA capable network adapter but I have not seen any virtual adapter that supports that functionality.
My minimum recommendation for Server 2012 R2 as Fileserver with active RSS are 4 vCPU and 16 GB RAM
- Virtual Receive-side Scaling in Windows Server 2012 R2