Poor performance on Server 2016 Remote Desktop, especially on thin clients

We recently replaced our 2008 R2 Remote Desktop server with a 2016 virtual machine running under Hyper-V.  We connect to the new Remote Desktop server using thin clients (HP, various models) and Windows computers.

Performance over the WAN from branch offices is noticeably poorer on the new server, especially on the thin clients.  Even on the local network though, performance on thin clients is not as good as we used to enjoy on the Server 2008 R2 machine.

We have turned down desktop experience settings (animation, font smoothing, etc.) and this helps but it's still not as good as previously.  How can we improve the performance for our Remote Desktop users?
David HaycoxConsultant EngineerAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Jose Gabriel Ortega CastroCEOCommented:
What hardware do you have?
You said what you did with the hardware but you never mention what are your resources.
Did you change the network card?

How is the server itself performing?
Philip ElderTechnical Architect - HA/Compute/StorageCommented:
First, to get help with explaining how Hyper-V virtual machines work I suggest the following articles:

Some Hyper-V Hardware and Software Best Practices
Practical Hyper-V Performance Expectations

They explain how a VM works on a physical machine.

I suspect the following:
 1: Too many vCPUs assigned (CPU pipeline juggling)
 2: Too much vRAM assigned (NUMA)
 3: No RDS Farm (Broker/Gateway/Web VM + Session Host VMs)
 4: Hyper-V Host does not have enough IOPS/Disk Subsystem Misconfiguration
 5: Broadcom Gigabit NICs on the host with Virtual Machine Queues not disabled

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Protecting & Securing Your Critical Data

Considering 93 percent of companies file for bankruptcy within 12 months of a disaster that blocked access to their data for 10 days or more, planning for the worst is just smart business. Learn how Acronis Backup integrates security at every stage

David HaycoxConsultant EngineerAuthor Commented:
Server is performing well with no obvious other issues.  The hardware is an HP ProLiant DL380 Gen9, with 64GB RAM.  Disk arrays are 2x300GB SAS in RAID-1 and 4x600GB SAS in RAID-10.

Some interesting points, Philip.  On those:

1. We recently assigned more vCPUs in a vain attempt to address this problem.  Will remove them at next opportunity.
2. RAM is assigned using Dynamic Memory.  Setting it statically is on our to-do list.  Is that recommended?
3. There's no RDS Farm as we didn't see the point; there's only one Session Host VM (maximum about 20 users).
4. We're pretty sure this is fine.  How would we check?
5. Hmm, yes we have these - 4x Broadcom NetXtreme Gb, plus 2x HPE FlexFabric 10Gb, all in a network team.  This is looking likely, although I don't see much info about this since 2015.  Still, it's no trouble to disable the VMQs.
Philip ElderTechnical Architect - HA/Compute/StorageCommented:
1: More vCPUs does not mean better in a virtualization setting.
2: No. In a RDS Farm setting it's better to set static.
 3a: Best practice is to park Broker/Gateway/Web on one VM and at least one Session Host
 3b: What apps? Things like browsers and QuickBooks are hogs
 4a: Open ResMon on the host and look for latencies on *.VHDX files Anything over 50ms to 75ms is going to impact users
 4b: A four SAS disk RAID 10 is good for about 1,200 IOPS. That's not so good.
5: I'm not so sure it's a good idea to be teaming 10GbE and 1GbE ports together. VMQ on Gigabit ports definitely needs to be disabled.
David HaycoxConsultant EngineerAuthor Commented:
1. Agreed.  We only added more vCPUs after the problem started, and have removed them now.  Currently 16 vCPUs for about 20 concurrent users.  Is that still too many?
2. Done, 32GB statically assigned.
3a. There's a VM running the Essentials role that does the gateway and licensing, but no broker or web.  For just the one session host, is it required?
3b. Browsers (mostly Chrome), Office 2016, Adobe Reader, Sage Accounts 50 and Payroll, WorkDESK (line-of-business application)
4a. Response time on any of the VHDX files hasn't gone above 13ms since I've had it open, and it's Monday morning so it shouldn't get much busier than this.
4b. SSDs were offered but turned down based on cost.  Option to add more disks later, this would increase the speed of course.
5. To qualify, there are no 10GbE switch ports so all NICs are connected at Gigabit.  Have disabled VMQ on all supported physical ports, and the network team.  Can easily remove the 10GbE NICs from the team, will still leave 4Gb to the switch which is plenty.  Is that advisable, given they are all running at 1Gb?

Thanks again.
Philip ElderTechnical Architect - HA/Compute/StorageCommented:
Please read my articles especially the one on performance. It explains things quite clearly.

1: Yes. 4 vCPUs is probably getting close to max.
2: Okay
3a: Best practice is to put Broker/Gateway/Web on its own. We avoid Essentials as a rule but it already has Gateway on it. Up to you.
3b: We prefer Firefox over Chrome as it's a little less of a resource hog.
4a: That's more than adequate.
4b: Yes.
5: Just in the Broadcom Gigabit NIC driver for each physical port. 10GbE not being used then remove and disable them.
David HaycoxConsultant EngineerAuthor Commented:
1. vCPUs reduced to 4.
3. Will leave as is, at least for now; I don't think this is relevant in this case.
5. 10GbE ports disabled and removed from team, leaving 4xGb with VMQ disabled.

Thanks very much!
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Windows Server 2016

From novice to tech pro — start learning today.