Link to home
Avatar of Bert2005
Bert2005Flag for United States of America

asked on

Would moving away from two VMs running WSE and RDS and going back to just a client/server setup be better, at least for me?

Currently, my system consists of a server using Windows Server 2019 Standard as the Hyper-V and two VMs both using Windows Server 2016, one Windows Essential. Windows Essential provides the domain controller and active directory but not the DHCP server -- don't ask -- although you will, lol. The other is the RDS server which contains all the apps and data and uses Windows Essential for what it provides and for databases.

The users RDP from their computers to remote to the RDS server, basically like the thin clients. My IT person set it up this way, and it does have many advantages. However, I do not like it after using it for two years for the following reasons:

1. Without thinking if I install a program on my user account, it is installed to all users

2. USB is very difficult to use -- I have three USB servers for various must need programs or I use the actual client computer to connect which is laborious and confusing at times.

3. We have nearly 30 print drivers as you can really associate certain print drivers to specific users.

4. Maybe it is a step back to get away from VMs, and they are cool and all and provide many advantages like check points and be able to move them or build another one immediately, but for a less than high grade techie, I lose out on all that.

5. NOT TO YELL BUT SINCE no matter what hard drives or upgraded hardware technology you put in the server, (SSD card for what the VMs run on), you really don't get that much improved performance. On the other hand, I can change my SSD3 on my client to a SSD card and get much better performance as the applications are opening on my computers and everything is running on my computer. Prior to this change, Outlook, Word, Browsers and other apps opened in microseconds, now they can take three to five seconds to load. Everything was snappier. 

Anyway, my thoughts were what if I just changed the setup and installed Windows Server Essentials as my OS and used it for the main server with a RAID 10 Raid configuration? Or even combine everything to one VM running WSE, but still connect to it only as the SQL database. All of my Office apps are in the cloud.

Thank you. I know, going away from VMs is probably a huge step backward.

Avatar of arnold
Flag of United States of America image

Here is the current scenario, you have two VMs that are backed up (hopefully)
Understood the changes you want to make on the server side.
What will the change be on the user side?
Would you now have to backup each individual workstation to avoid user data loss?

With time, the user mailbox on O365 is not zero when you started, so the access of 5 seconds deals with a refresh.
You could look at the user outlook settings and how much they are caching?

much depends on how much data they need cached.

Give it a try, configure one user/workstation to access as you envision the entire environment to look and see whether you are gaining or losing.

in the current environment, if a workstation dies, you get a new one of any quality as long as it is pro so long as it can join the domain, and use RDP the user is back in business.

potentially, the system does not need to join the domain.
anything with RDP on the network can connect .....

how much does your Host have in Memory
how much memory is allocated to each of your two VMs?
Avatar of Bert2005


Not worried too much about the email. It should be the same either way. If you access directly from webmail, it is just there and instantaneous. If you download the actual suite, now opening it depends on the slow RDS.

RAM 48 GB. 6 for HV. 28 for RDS and 14 for WSE.

Yes, being able to swap out any computer is a huge advantage.

I am not sure how to set it straight from the client to the program on RDS. For one thing, the most important app (the slowest app) can't install unless it finds SQL.
Usually, an installer asks where the DB is.
Either that, or you are to use odbctab to setup a system DSN to connect to the DB.
Is this a custom application? Do you have the application installer?
It could be in parts.
1) sets up the DB
2) installs the services on the server
3) installs the client

VM to VM throughput could be at 10gig while the physical network is commonly 1gig.

VM migration to new HW is also a fairly quick process as compared to a physical one.

Looking at your response, it puzzles me.
Is the concept of virtualization is the motivation?

How is the RDS configured, are all user profiles store stored on the RDS?
It can't find the database, because it doesn't have permissions to get to the path. It tries to get to riverviewESS, and it won't find it.

The installer will install the program on the server with SQL Express and the program which you really don't need, because you aren't going to run the program there. You then run the same installer to install the program without SQL. Yes, it installs the services.

VM migration may be a little more difficult since the network is set up with each VM connected. I would likely start over.

Not sure what is puzzling. Using programs on VM:

Start button could take two to three seconds. PDFs take 3 to 5 seconds to open. Outlook and Word take three to six seconds to load.

On my actual computer. Start button instantaneous, PDFs 0.5 seconds. Outlook and Word nearly instantaneous. This is with an SSD III. Which is pretty fast but not as fast as an NVe card (if I wrote that correctly. And, a year from now when speeds are 24 GB/s for the hard drives, the VMs on the server will still be slow. I love using a computer, when it is click, click, click. Not watch the blue circle. Now, I am sure it would be nearly as fast if it were accessing a database on a VM.

Yes, the user profiles or accounts are on RDS with redirection.

In the past, I used to back up every client. But, important files could be maintained on the server and not worry about the individual clients. Maybe weekly.

And, yes, the VMs are backed up with Veeam nightly to several places. The key is that being at my level or maybe if that doesn't even matter, the VMs don't help me that much compared to the simplicity and speed of just a regular setup.

Not to mention the USB connection headaches or even if it is possible. Already purchased three USB hubs or switches or whatever they are for Dymo and other peripherals. And, the 300 print drivers. And, the uninstall of a browser, which if not careful, uninstalls it from everyone's profile and vice versa.
Setting up the application and complexities that seem you are encountering is the reason.

The puzzling deals with where you think you will gain.

Your RDS setup is unclear in terms of whether you are publishing application to the users or the users have a RDS environment to run applications installed on the server.

Do the current workstations domain joined?
If you are having this much difficulty setting

You keep referencing USB without a context. What do USBs used for?
What 300 print drivers and info on this matter.
Dymo printers?

Often access to the server will be limited to you, the users will commonly not have such access.
No complexities.
I will gain a simpler network with the ability to run applications ON the clients where the hardware will affect how well they run.
It is an RDS environment. Uses remote to the VM and run everything on the server via RDP.
No I do not believe they are domain joined, but I could be wrong
Normally, you plug in any USB peripheral. I plug in a microphone, and it will work with my computer. It can't make the jump to the RDS. The VM doesn't really support USB connections to the client computers. Dymo printers are printers that can print labels. For my business they are indispensable. You have to either minimize your RDS desktop and use the software from the client or get a USB switch designed for Dymo to convert the USB to Ethernet so it is on the network. Trust me. Try it.
Print drivers show up under everyone's account so instead of a user simply using their own computer with their own account and installing only the print drivers they need (say to even a USB connected printer), they get every single print driver on the network.
This isn't a traditional server. Everyone has to be able to access the Remote Desktop Server in order to use the applications. It is a thin client system. Although I like to call it thick client because the thin clients are fairly powerful workstations.
It has its benefits. One is what you said. You can replace a dead computer easily. Another is you can install an app once. It is simply the same as terminal services. But, when a user accesses that app it doesn't run as well because it can only get its resources from the VM it is running in.
My guess is that our main app (which is poorly written anyway and so a bit slow) would run much better on a fast SSD than in the VM. I know this to be a fact, because it used to be faster just like everything was faster when it ran on the clients and simply accessed the server for the data.
I am not really looking to fix the RDS setup I have. It is what it is. It works, but it has its pitfalls, one of them being performance. So, my question is what experts thought of changing everything back to the way it was and would it be worth doing that but still using a  VM as the server or using Windows Server 2019 Standard or WSE running directly on the Dell Server.
The clients don't connect directly to the VM so USBs are pretty much useless. 

You can attach printers to the RDS session.

I.e. He Dymo printer can be plugged into the workstation, the user can as part of the RDS connection options attach the printer to which they can print from their session.

You can use one workstation as a test case, setup the client application on it. The Windows firewall on the system that has the SQL server should already be open.
Potentially, you need to open port 1434 and possibly turn on the SQL browser service.
The items you cited as slow, are tolerable, as long as the users close the document without closing the application.

Is the RDS running the SQL server?
I would wager that you are way out of available iOPS.   I would double the amount of memory for the RDS VM

Tell use more about your servers disk subsystem..

Drive Count, Type,RAW IOPS, DTR(MB/s)
1,SATA 7.2K,88,5.5
1,SAS 15K,1148,72
6,SAS 15K Raid5,1157,50.6
6,SAS 15K raid10,840,42

Open in new window

No, the RDS is not running SQL server.
The slowness is not tolerable.

These are all good questions. Of course, Veeam needs so much memory on each VM to run SureBackup.

I really appreciate all the help. I am not trying to make the VMs faster, that ship has already sailed. What I want to do is either:

1. Start over and install WSE on the server and use it as my server OS on all SSDs with a RAID 10 and access it like a normal server running active directory, domain controller, dhcp, SQL. 
2. Start over and make a WSE VM and run everything on it, and allow the clients to get all of its data and access the databases from that server. Hard wired or even wireless like I did in the old days.

While there are advantages to using RDS by remoting to it from the client work stations, the advantages are outweighed by not being able to have powerful workstations that run programs MUCH faster and open them. To have to hover over the start button for what seems like eternity, then wait another three seconds for the Start Menu to open is not acceptable, when I can do this on a workstation in microseconds.

What I am hoping to learn from the experts is either a) no don't do that for these reasons or b) I would use a VM for the server or just run the server directly on the server.

I do have fun playing with the VMs. I do see the unique advantages of them. I do like checkpoints prior to making changes. But, all in all, I don't have the expertise to do the things virtual machines allow like move them, etc.

This entire set up with thin clients and remoting to the RDS server to do everything (nothing done on the work stations was set up by an IT person who is brilliant but was right in the middle of loving this setup and setting up all his clients this way. I just don't like it and want to go back. Looking for help or ideas with going back.

I am trying to answer the question. The issue is that without testing the client install on each workstation and seeing whether its performance on the workstation is comparable or better than the one on the RDS VM
Deals with a single change.
This will also address the ease by which the client application can be deployed.

You can slowly transition to the client based if that is preferred, you can then turn off, the RDS VM, and possibly reallocate the memory from the RDS to the WSE VM to see if the issue further improves.

Looking back at your comment, Veeam .. has a free version and should only consume resources overnight/offhours when it backs up the VMs.

not sure why it consumes so much resources on the VM.

Have a look at altero's backup (free version for 2 VM backups)

I get the impression that you have veeam running on multiple systems.

is the DB running on the WSE VM?
Veeam runs on its own $5,000 server. Yes, they recommend that Veeam be run on its own server. Not sure why I spent that much on just a backup server, but it does use Hyper-V and the OS and then 20 TBs of space for backups. Plus you can do trial restores there.. I think I was going to do failover at some point. Veeam only runs at night and doesn't take up resources during the day. However, Veeam runs a program called SureBackup which essentially runs and tests a backup each night which is an awesome feature of it. It is too complicated right now to explain it, but it makes its own network which requires using memory from the production server. You allot so much memory to it. You have to toy around with a little bit to insure it has enough memory for both Essentials and RDS to run or it will produce an error. My SureBackup is set up perfectly and hasn't crashed in forever. It isn't quite the same as doing a test restore from a backup, but it certainly lets you know when there are problems with nightly backups and gives all the error messages so you can troubleshoot the problem. I love Veeam It is a bit over my head and made for IT users, but it is designed extremely well and support is awesome.

I will look at your other ideas as soon as I can. Thanks.
which style of remote desktop services are you running?  Session Based?  Separate VM's (it looks like session based)
With 30 users you are approaching the limit for session based on one server.

You haven't mentioned your disk subsystem
We are using session based with five employees. Don't hold me to it, because IT set up the system. I believe the OS runs on a RAID one on an SSD, and the VMs run on a RAID 10 on plain SATA drives.

I did an entire question on whether changing to all SSD drives would help, and the overall consensus was no.

I would add more RAM to the server, but I didn't know in the beginning that you could only use 8 sticks of RAM with one processor and 16 with two or I would have purchased a mobo with two. I have 8 sticks times 8GBs for 64 GBs of RAM. I think the RAM that is the largest is 20 GBs so you can run up to 320GBs of RAM, which would be overkill. I think increased RAM is the best way to increase the speed of the VMs.

With the same amount of money and even with a lot more for the server, I believe the performance would improve dramatically without using RDP to RDS.

Fortunately, networked printers are about the same price as USB as we have to run network printers on even exam rooms in the very back of the office. Pretty much gave away the USB ones. And, have to be really careful when installing a program.

As you know, it is basically the same setup as when I used to use RDP to remote from home to my workstation, and of course, with just key strokes and mouse clicks the performance was extremely good, because everything was running on SSDs. Now, I remote to a VM which is not actually running the programs on an SSD.

But, I appreciate any help in the meantime of improving the performance of the VMs.

Certainly, if I were using the workstations to do all the heavy lifting with the apps and simply getting the data from the VMs, it would still make sense to improve performance of the VMs.
move the vm storage to an SSD or at minimum create a new vhd and put this vhd  on the ssd AND set the vm paging file to use this new vhd.

Raid 10 means 4 disks minimum you say SATA why not SAS ? If you have 8 dimm slots that means dual channel cpu if you had 12 slots it would bean triple channel, 16 slots quad channel. Even my oldest server uses triple channel (intel Xeon 5650

Veeam doesn't require its own computer..
Issue with applications users use they commonly rely on data in databases. Databases inherently slow down with time as more data is added.

Depending on the software if they do not maintain the live table as a separate one, pulling data out will appear to slow down. How big is the SQL DB as compared to the 14GB ypur Wse VM currently has?

You could use SQL tools to see if the DB is tuned, has suggestion.
I will have to get back to you on this. David, thanks. Yes, Veeam can run on the production server, but it isn't considered best practices with Veeam.

From Veeam:

It is strongly recommended that no highly-transactional and business-critical software is deployed on the same machine as the Veeam backup server. This could be (but not limited to) software such as Active Directory, Exchange Server or other intensive production databases on the SQL server instance. If possible it would be preferable to have no other software at all running on the Veeam Backup Server.

The size of the databases is 13 GB. I apologize I don't know where the number 14 GBs came from.

I don't know why my IT person chose SATA over SAS. I know we did it in about 45 minutes, but he specifically chose SATA. I guess because in his mind the VMs don't run any faster on faster hard drives. I will have to make a pointer or add the URL of the long thread on increasing VM performance by running on SSDs.

Usually, the sata to sas choice deals with capacity and cost.
Seems the choice did not deal with performance and longevity.
Sas throughput is 6-12gb versus Sara's 6gb ...

SSD capacity is costlier than sas hdds.

Back to the topic, a 13GB DB, how much memory does the system where the DB is running , have?

Compare RDS system memory use when all users are connected, potentially trim that back and use the amount taken to the VM that has the DB.

Can you confirm whether advanced settings on the Wse and presumably where the DB is, is prioritizing for programs for both process and memory.(as application server versus to background resources, five server)

On the aesthetics, potentially set everything for best performance...
I will. When I get a chance. Thanks. 
Sorry it took so long. So, a few comments.

RDS server: 38 GBs memory. Set to Programs
WSE server: 22 GBs memory. Set to background services
HV: 4 GBs of memory

I don't know why, but I have tried to install my main program, Amazing Charts which is an EMR, on the regular computers and not in RDS. It should install but I keep getting an error message (yes I should have it -- something about not being able to get one file). It should install, because it is just the client of the AC on WSE which has the SQL server databases.

I know that SQL is tuned and running properly as I have a person who knows SQL Server VERY WELL, and he has run all sorts of tests on it. He will watch as queries take microseconds to run, yet the program will take 8 to 10 seconds to perform the task. Much of the slowness of the program is due to the program itself. The program likely wouldn't run much faster on WSE on SSDs or a SSD card. It would certainly start faster, and I am sure many of the windows would pop up more quickly.

I do know that it is not even close when comparing opening programs or files on the regular desktop than running them in RDS. It would be a major undertaking to convert it back. I should never have let Sandeep talk me into this "thick client" RDS setup.
Since your Wse, is running the SQL, your system will benefit for changing it to prioritize applications/programs versus background.

You could further boost CPU, or perhaps check the user under whose credentials SQL is running, whether it can lock pages in memory.
All good ideas. I will try today. Thanks. Not sure how to boost CPU.

Isn't SQL something that should be running as background? Just asking.
SQL runs as a service, but it is an application not a service like fileserver.
This is why it benefits when the system runs in application server mode.

The option to boot cpufor SQL, is set using ssms, properties of the database server reference. Includes where you can set minimum/Max memory use as well.
We use SSMS. My IT guy is good. Very, very good. He is on here. This is his job. He has the MVPs, etc. He works for a firm in India tweaking and testing SQL services and their query response times to business application times in the setting of new companies or existing having slowness in an app. They then compare query response times with overall times and either change the app or change SQL. It is in application mode.

Thank you for all your help in trying to speed up the VMs. :) That really isn't my question. I HATE, HATE  this RDS/WSE essentials with thin clients remoting to RDS. I hate that when I install a program I want on my computer it installs to every computer. I hate purchasing print servers for USB hardware. I hate the fact that I can't get an SSD card on my computer to that Word and other applications open instantly. I like the fact that I can thrown in any computer when the thin client dies and be ready to rock and roll (albeit at slow speeds). I hate having to install my EMR twice. Once on WSE and then again for the clients, i.e. on the RDS server. I hate everything about it.

I want to either run one VMS as a database and file server with SQL, Active Directory, Domain controller just like a "read" client/server set up with the individual work stations connected via ethernet to the VM via Hyper-V. I want the apps running on the work stations.

My question is would that be best accomplished using a VM as the server using WSE or just having WSE on the server itself.

I want to completely get rid of the (WSE VM plus the RDS VM) and remoting to the RDS server from the clients.

You can not run WSE as the host if that is the question you are after.
I am not sure why you are having such an issue installing the application on the workstation.

Identifying whether the windows firewall or something else is in play.

Can you establish an RDP session to the WSE from your workstation, assuming you have an admin user that is authorized to connect to the WSE Remote Administation...

Deals with whether there is a firewall setting that locks out access to the DB.

not sure during the configuration what is being entered for the DB. potentially enabling the sql server browser, opening port 1434 in addition to 1433 might help.

The DB itself does not limit the source from which connection can be made.
I understand what you are after, but it is impossible for me to know whether the remedy you are looking to fix is better or worse than what you have.

This is why To test whether a single workstation with the client and accessing the VM will have a better, worse, or the same performance.

I.e. is the slowness deals with the refresh of the screen, or is it with the interchange of the client and the sql server.....

you could use RDP and lower the color scheme from 24 bit as an example to 16 and see whether the performance of the RDP session changes. Deals with reducing the information flow dealing with what to display on the screen (RDP session)
I HATE, HATE  this RDS/WSE essentials with thin clients remoting to RDS. I hate that when I install a program I want on my computer it installs to every computer.

That is because you are not installing it on YOUR computer but on the RDP Server itself. Solution setup remote apps on the RDP server  and use a real computer rather than a thin client.

I hate purchasing print servers for USB hardware. I hate the fact that I can't get an SSD card on my computer to that Word and other applications open instantly.

Again refer to my first statement

I like the fact that I can thrown in any computer when the thin client dies and be ready to rock and roll (albeit at slow speeds). I hate having to install my EMR twice. Once on WSE and then again for the clients, i.e. on the RDS server. I hate everything about it. Don't know why the dual installations just on the RDS server should be sufficient.
I will get back to Arnold later.

We are all saying the same thing.

I have a computer. I can log into it. It is a workstation. Nothing at all is on it except RDP icon so I can remote into the actual RDS server. All of the users do the same. So, all of the users are remoted into the RDS server. Via the magic of sessions and what used to be called terminal services, they all can use the Adobe app, they all can use the EMR that was installed once but accessible to all. When I remote into RDS, I can use a browser, say Firefox. I want Firefox. So, I download it on RDS. But, it gets downloaded to me but also to everyone. If I uninstall Firefox FROM THE RDS, then it uninstalls it for everyone.

I can use MY Computer. I can install things directly to my desktop. Not really helpful on the network. It is not on the RDS. But, it is nice to do some things there. I could have the VMs off and browse the Internet. I can use software that uses USB and we do. I get how it is set up.

I do not know why Sandeep set up two VMs. In fact, I believe he said that himself. I think because he did the whole thing in two or three hours. I don't know.

When I say I read your first statement it proves my point. I am not using MY COMPUTER. I am using a VM (RDS) on the server in the basement on Hyper-V. Given an SSD card could be very fast it does me no good. It doesn't speed up key strokes and mouse clicks. I can use an SSD for the drive that the VMs use, but it won't add that much efficiency.

"The name, “thin client” was not coined until 1993 by Tim Negris. He envisioned thin clients with a strong design, and a cost efficient solution to expensive hardware.  In the late 1990’s the internet started to effect the way we looked at computers. Instead of seeing computing as separate devices, people saw the power of connecting devices together. With thin client computing, users can access data through one centralized server."

I am basically using a thin client. I say thin client to represent the way it is set up. I joke by saying thick client, because I have this powerful machine that could be very, very fast in a domain running all the programs and simply accessing data from databases and files. I used a server with SBS installed. That was simply an operating system that no one remoted to.  The computer which did all the heavy lifting was connected to the data and the files (the server) via Ethernet and a switch. It was much faster. I could install programs on my workstation. All I am saying is I want to go away from RDS and back to the old setup.
I'll await your ...

One thing perhaps you need to install the SQL Client Library based on the SQL server running on the WSE
is it SQL server (MS) or Mysql, MariaDB, postrgresql, or one of many other possible backend that EMR might use.

Could you add to your response which Product line EMR you are using ....
just curious which
I hope I don't sound like I am arguing. I am trying to give the correct information. So...

1. Why can't I have a server and simply install Windows Server 2019 Standard, use it as AD, DC, DHCP, and file server as well as my EMR (Amazing Charts SQL Server 2012 Express). Therefore use WSE. I thought Microsoft had sort of created Essentials to replace SBS to some degree. I don't mean use it as a hyper-v.
2. I am with you. I can RDP easily to RDS or any of the VMs. (ESS, RDS all the other servers). The error error message I get is:
User generated image
I can run any other program on my computer desktop.

All users without admin privileges can remote to the WSE VM, the RDS server (obviously as that is where the programs are run), I can remote to hyper-v. As an aside, I can RDP from home to RDS as can all users. There are no issues with RDP.

I would believe the firewall except I can't seem to install AC on a computer desktop. I haven't tried them all.

Port 61067 is the port. Again, WSE what we refer to as riverviewEss has the database. RDS is the VM which has all the programs. It runs the session hosts. It is the server that allows what used to be called terminal services. Microsofts way of allow concurrent sessions from users at the same time on one app. Just like companies with 1,000 users don't want to install QuickBooks on every computer, they just install QBs on the terminal server or now, RDS server, and allow all of the users on thin clients (again i say thick clients) because a thin client needs only -- OS, nice to have A/V and RDP connection. The applications are accessed on RDS and it runs the apps. For whatever reason, Sandeep added a second VM to run as the Domain Server, Active Directory and DHCP. So, when a user remotes to RDS (which is their session and appears as their desktop), RDS has to get the data from riverviewEss. Trust me, with folder redirection, etc. it can be rather confusing and cause issues.

I think it is much better. (I know I can't install AC on the individual computer, but I could if I started over. I would rather the applications be run by the workstations and only access data and databases from the server. The server would house the databases (like I used for years). The server would manage AD, DC, DHCP, etc. There would be no RDP connection. The workstations would just connect to a switch which would in turn be connected to the server and all information would flow via 1Gbs ethernet cable.

The issue is if I run all the programs on the individual workstations, I can take advantage of more RAM, SSDs, etc. The VM speed running the application does not depend that heavily on whether it uses an SSD drive or an SAS drive. Once it "spins up" or starts running, it is running in RAM I believe. Could be wrong there. There is really no way to speed up these VMs and that is not what I am looking for. I would like USB connections which is not possible when connecting a USB flash drive or other peripherals to the individual workstation. You have to move the file or files from the VM servers to the desktop to copy it.


The slowness deals with the time it takes for applications such as PDFs, etc. to open on the VM. One thing Ihaven't mentioned is that Amazing Charts is a good EMR, but it is also the cheapest and was poorly written. It takes about 7 to 10 seconds to open, part of that watching it redraw itself. Then individual parts such as opening the prescription writer is very slow. A good deal of that is the program. As an example, I had an issue with crashes. Normally, when it was set up client/server, they could have troubleshot the issue in 20 minutes. Unfortunately, I have to teach the IT tech what RDS is and how it is different than the traditional Client/Server setup. Setting paths and permissions and .xml files makes no sense to him until. It took him four hours as he had no idea how to set permissions, etc. He pleaded with me to get away from this Remote Desktop Services.

It is simply that maintaining the setup now is much more difficult than a traditional client server.

Pros and Cons of Terminal Services for Business | eMazzanti Technologies This article helped him to understand and see the pros and cons. I don't think we are big enough to use it. I mean I guess one huge thing is I have three client machines I am not using which could be changed for a broken desktop in seconds and we are up and running. Part of the issue is what makes it so good, installing AC, Adobe, etc. once and not on eight different machines.

I doubt changing it back will speed up AC. Much of the slowness -- actually 99% of the slowness is due to the program. When clicking on prescriptions, it sends a query to SQL to pull the scripts over. That takes around 8.4 seconds. The query in SQL is in microseconds. The lag is how the program works.

Even so, all applications would run much, much faster on a workstation running a

Samsung 980 PRO 1TB PCIe NVMe Gen4 Internal Gaming SSD M.2 (MZ-V8P1T0B).

My question is if I did client/server with all the apps on the workstations and them do the work, would connecting to the Dell Server work best simply without Hyper-V and using an OS installed on the server or connecting to a VM as a server.

I think I lost some of what I wrote. I guess it may not be speed, it may be simplicity I am looking for. This is an interesting question I had which verifies some of what you are saying and some of what I am saying although I don't think it is the particular question I had in mind from EE.

Solved: Are VMs faster on SSDs than are HDDs? | Experts Exchange ( 

Yes, you could install Windows standard 2019 on the server, configure it as an the added costs for client licensing (user or device) every add-on.
Etc. the Wse includes 25 or 50 user..

The issue currently that is hindering going that route, is what is preventing the emr AC app from being installed on a workstation.

Potentially, the app during install is looking for something on a share that it expects.
The file in question might be the configuration file identifying the SQL, etc.

Does the Wse have a shared folder
Net share

I.e. The install requires mapping a network share from Wse server and running the AC setup from there.

When you login to the RDS, look at computer listing of drives
Do you have a share , mapped drive from the Wse?
Right-click on the AC app shortcut, or the item you double-click to launch, and look at properties.
Is it referencing a local install, or is it pointing to a network share?

Starting over, with a different piece of hardware while the existing continues to run?

Software deployment is possible through AD computer GPO, much depends on the software.

The main concern is to first identify why the AC EHR fails to install on the workstations.
Once the cause is identified and eliminates this as an issue, you will be able to confirm whether it performs better,........
At which point you can decide whether you need to start over,.

If you have another HW onto which you can install ws2019, joint into the existing AD (you'd want this deals with retaining the existing user login-ins and files........)
Shares, etc.
Yes. Thanks. It is all pathed by .xml file. I just think it isn't getting those settings.

Believe it or not, I am a Microsoft Partner so most of my licensing and software is free.

Yeah, the AC program is just so bad. 
First thing first, identifying how the EHR AC is functioning on the RDS,  possibly using process monitor from MS's sysinternals to determine where it is loading the XML from on the RDS and then looking on the desktop to see whether the XML needs to be dropped or it is loaded from a "central share"
A step is either broken or missing, I.e. A system DSN is needed through which EHR AC installer will connect to the DB and pull the configuration. Or the install has to start from a mapped drive where the XML file is.

I think there was a situation on Windows 10 that dealt with network related access in elevated mode.

I.e. If you open cmd in elevated mode, map the Wse network drive and try to install EHR AC that way do you get a different response?
net use X: \\wseserver\ehrsharename

I think I've seen the emr software long ago running in a configuration you are wanting to go to do not remember how it was ......

I.e. Whether after install, there is a switch to run the application as a first run that deals with configuring it post install.
I.e. Ehr_ac.exe --firstrun

That provides/loads the app where you can perform the setup. Pointing to the SQL server, share space for document drop, etc.
Hi Arnold,

This answer will probably not be very good, and I likely won't be able to answer yours well as it went a little over my head.

First question. Does using RDS (terminal services) require Folder Redirection? Even though I shouldn't need the two VMs everything works easily when installing any app on the RDS VM except AC. A lot of that is because AC MUST be installed by support. Any new install on a server that has not been uses for the SQL database will not install without support installing so they can enter a new SA for SQL which is about 500 characters. It is dumb, but it is AC's way of not allowing anyone to figure out the SA username and password. So, even though it is easy to hack, you still have to let them install it. The problem is 97% of support have no idea with RDS (terminal services) is and they certainly don't understand that the install changes everything. What normally takes support 20 minutes to do, takes them hours on my computer. And, then they screw things up.

I think I am going to change the direction of this question a little bit as to more of advice than trying to figure out what is going on. I think at this point We/I have lost sight of that.

First, let me just say that Sandeep (even though he must look a little silly here) here is a brilliant computer and networking person who regular fixes what Microsoft and ESET and Veeam can't. He has his own business and does what many of you guys do on here. Sells servers and sets them up and maintains them. I don't know how or why he chose to set mine up like this -- even little things like putting DHCP on the pfSense doesn't seem to be best practices. Unfortunately, something happened to him and he fell off the face of the earth so I am alone in managing this, although I certainly could hire a real tech to maintain it and fix it.

Second, I am very unhappy with the current setup. I put a lot of money into the Dell server with its two VMs and even though things usually work, I am not getting very good performance. RDS does have a lot of advantages including installing apps once and being able to switch out a crashed client computer in seconds, etc. Users can be on any computer and their desktop looks the same, because it is the same. But, the negatives (having to purchase network printers unless you purchase USB servers, having what you want to be an app only for you gets installed into everyone's account so they have the app available in their sessions. I can't even uninstall Firefox from my user account so I don't have it, without uninstalling it from everyone. Plus, it just makes things complicated. From reading a lot about RDS setups, they seem to be very beneficial to a company with 1,000 computers spread everywhere. But, for an office with four employees, it seems unnecessary.

Third, I want to go back to a simple client/server setup where the workstations run the programs and access data and files from the central server.

My two servers (I have an extra one for Veeam -- it is way too expensive for the Veeam backup server -- and yes, Veeam unlike most backup programs is intended to run on a separate computer with no other applications on is) are about five years old, and even though servers last a long time now, it makes sense to purchase a new one if I wanted to improve its hardware, I am thinking of just purchasing a new Dell with a simply setup: A RAID10 with SSD or maybe SSD for the OS and 15,000K SAS hardware for everything else but with a fast Xeon processor and plenty of RAM. I don't see why I couldn't run just Windows Server on it and utilize it for DHCP, Active Directory, Domain Controller and databases. This would allow me to run workstations that are very powerful (especially mine) and have an easy to maintain and fast system.

That would allow me to build the configuration over a week without starting all over on the Dell and having to move VMs and reformat, etc.

Say you think that is a good idea (and of course it is based on choice) that brings me to the server simply working with an OS and everything on it or using one VM. That would still allow me to connect each computer directly to the VM without having to RDP in. The issue for me (and this is mostly because I am not at the level of a certified IT person), I don't get the full benefit of a VM. I just wonder if the average IT person would gasp in this day and age of not using a VM since there are likely so many benefits.

Just wondering what your take is on this. When reading the original question, this line of questioning does seem to stay within that realm.

Thanks for sticking with me on this. I should say that if I purchased a new server, moving everything from the two VMs over may still be a project for one of the Networking businesses in the area. It is not that I am opposed to paying the money, I am just wary of their constant pitch to do things their way, and sell your Barracudas, etc. and want a contract for maintaining everything.

No, folder redirection is not a requirement for RDS, but it is beneficial and would actually simplify your workload in the transition away from it.
Deals with, when a user logs into the workstation, they will have access to the same data, documents desktop user items, folders, downloads, etc.
Point deals with minimizing user based data consuming space on the RDS server.

If the redirection is setup on the RDS, you could fairly easily begin the process of getting the workstation getting to the same data in preparation for your desired transition.

Now, using GPO on your Wse match a folder refirection applicable to the users that match the destination used/configured for the GPO redirecting folders on the RDS.

Since their support are required to do the install of AC EHR, have them do that on one of the workstations.

The SQL login transfer is fairly a straight forward process, ms has the two SPS that need to be created
Once added, exec sp_help_revlogin or something like this outputs the create login including maintaing the user Sid and the encrypted password.

The proof of concept you are looking at will be achieved once they setup the AC app on one workstation to assess whether your hypothesis will see an improvement.

Usually, you shoukd be in control of the SA account, the application would often use an SQL account setup as the database owner (dbo).

Veeam can be running in a VM. Much depends on the destination where you store the backups.
Yes, but AC will not allow users to have the SA account, which is why they use a different SA on all 10,000 users. But, as you say, that is generally not an issue. We have many issues where we need to access the database at the SQL level.

I am not sure if AC support could even do what you suggest at the local client level. They aren't very good. I do get that same error on every machine I install it on or try to.

At this statement, you are focusing on a point I did not make.

First thing, get support install the EHR AC on a test whether the performance in the workstation will have a better performance.

You need to confirm this, before undertaking your physical server setup.

Personally, opening and closing app timing can be mitigated if one closes the document, while leaving the app running.

But understand that your experience suggests the use is at issue.

RDS to install, beyond elevating (runas administrator) you need to switch the session to install mode
Change user /query
Is the way to check the current session mode.
In your example, it will report execution mode.
change user /install
Changes the session to install mode.
Once done if a reboot is not needed
change user /execute

A presence of an application does not make or cause issues, there would not be a reason to uninstall Firefox as your example includes, you simply need not use it.

Edge is chrome licensed with ms additions.

Let's try to keep the issue at the server/application level SQL/EHR AC

Application deployments/install on the workstation...

Usually, it is not advisable to run applications under the sa account.
But it is not what I meant.

Can you get EHR AC support install the application on your desktop workstation?
Presumably they have all the information or they asked specific questions such as where is the SQL server.
Where is the share if any.
They should gave this information if they maintain SA credentials on their end.

I might not be asking the question in the right way to get the clarifying information to get to the point that you are after.

Is the hyper-V on which Wse and RDS is installed, is it graphical ,ode, or using a command window to manage, or you have your desktop with rsat hyper-V management tools?
I get the impression that AC is installed per user and not per machine. This would mean that every user would have to install that application. (you might want to check with the supplier on this)

In general a program installed per user would not be in the program files area on the server but into the users appdata folder.

Redirected Folders are useful on normal pc's not so useful on thin clients (they don't have local storage)

Have you considered your servers disk subsystem From experience with out careful attention to the disk subsystem I run out of disk iops well before I run out of memory or cpu power.

Another item to consider is where SQL stores its data files. I never store the sql data files on the system drive. Tremendous gains can be made by putting the SQL DATA and Log files on separate spindles
Hi David,

First thank you. I will respond to your recommendations and comments before I respond to Arnold's.

The application is installed so that it is in each user account, but it is installed only once given it is on the Remote Desktop Services VM. Each user runs it in their own session.

There are no applications at this time running on the work stations, only RDS and Microsoft's Windows Defender.

The databases are installed directly into the AC folder. With the normal client/server setup, I was rather confident in moving them to a different location, even a different drive as you suggest. However, on the setup as it is now, I would not try it as it is so different that it takes AC support at least two hours anytime it has to install it as they have to make numerous changes to the .ini file to get the clients to connect. And, each time, it is a pure guess. It doesn't help that none of the support IT understand an RDS setup.

Everything works now. It is just rather slow. But, keep in mind, this program would likely be slow if on a NASA super computer.
"At this statement, you are focusing on a point I did not make. First thing, get support install the EHR AC on a test whether the performance in the workstation will have a better performance."

I apologize for not always understanding your question or request. And, I am trying to get IT to install it on the local machine.

"Personally, opening and closing app timing can be mitigated if one closes the document, while leaving the app running."

This is true. We don't close the application until everyone logs off at the end of the day. Unfortunately, the program brings up separate windows each time it has to pull new data from the SQL database. Plus, we have to reopen it after it crashes, which happens several times per day. Other than that, I would see no reason to close the application.

"RDS to install, beyond elevating (runas administrator) you need to switch the session to install mode
Change user /query
Is the way to check the current session mode.
In your example, it will report execution mode.
change user /install
Changes the session to install mode.
Once done if a reboot is not needed
change user /execute"

My apologies. I am not sure quite how to do that. At a command prompt or from SQL. Again, I need to hire an IT person for my office.

"A presence of an application does not make or cause issues, there would not be a reason to uninstall Firefox as your example includes, you simply need not use it."

Agreed. And, I know you don't want to talk about it, I just like to keep things clean and if I don't use Firefox, I uninstall it. It does go to my original question of changing from RDS to regular client/server :)

"Usually, it is not advisable to run applications under the sa account. But it is not what I meant."

I have no idea what account AC chose to run it under. I just had to make a new user in order to log into the database using SSMS. There are times that is very helpful. Especially in testing query times vs application times as query times can be tweaked.

"Can you get EHR AC support install the application on your desktop workstation?"

I will try.

You are likely asking the question correctly or making recommendations correctly -- I am just not at the level to understand them sometimes.

I"s the hyper-V on which Wse and RDS is installed, is it graphical ,ode, or using a command window to manage, or you have your desktop with rsat hyper-V management tools?"

It uses a GUI. I would not be able to do much of anything if I had to use a command window to manage it.

The RDS control is using a Command interface (windows Key, type command, right click and run as admin) running as administrator to change the current session from execution mode (default on login for RDS) to an Install mode (which is where software installs are done.)

in a way an RDS is similar in setup as a workstation that is used by multiple users during the day.
Difference, the RDS allows multiple users to work at the same time..

Personally, I think the SQL should have a higher prioritization.
Compare the memory/CPU used on the RDS and on the SQL/WSE.

but one thing at a time, get the EHR AC on the desktop and potentially install other applications local to the desktop and see how that goes for you. Presumably, you've worked within the RDS session and now will work within the Desktop....
in an effort to assess the changes.
if you find it better, you can go and get EHR AC support install the application on the rest of your workstation. and go that route.

point being you can always fall back in part or in whole to the RDS ....
I.e. a workstation drops, while awaiting the EHR AC support to install the app, you can have the users on this system use the RDS..

you can also trim back some of the memory given to the RDS server and allocate it to the WSE/SQL server and see if that helps further....

I think there is a way to look at the hyper-v's performance/utilization as well as gathering the performance data from the two Vms  to determine whether RDS is given more resources than it needs versus the WSE SQL is given fewer resources than it needs.
changing the database storage would not affect the application in the least.. the application only knows where the sql server is and how to login and access the sql server instance.  SQL server then takes over and it knows where the database storage is.

in a test environment try this out for yourself to confirm what I say.
From my results I reduced the SCCM database creation speed from 3+ hours to less than 30 minutes.

Open resource monitor to check your disk performance statistics. both from physical and virtual machines. Your disk queues should be under 10.
Avatar of arnold
Flag of United States of America image

Blurred text
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial

I am sorry. I misunderstood your statement:

"Another item to consider is where SQL stores its data files. I never store the sql data files on the system drive. Tremendous gains can be made by putting the SQL DATA and Log files on separate spindles"


Your logic does make sense. Also, I did run the change user commands, and it was very cool. However, I thought changing to install mode would allow me to install only to my session. I am also stuck in install mode as running the command in administrator level and typinng \system32>change user /query it does not take me back to the execute mode.

I just received an email from the IT person who installed this on Thursday. Let me see what he says.

I received and installed the msxml file, and the program installed easily. I simply need to browse to the database. I do and then am prompted to enter the username and password of the VM. I am then told I do not have the proper permissions.
change user /install  does not force installs into per-user mode.  The installer has to offer this option.. Install for all users or just me.

Typically used for .msi installations and has to do with .ini files

Figured out how to get back to Execute mode.
I included in my comment three command/arguments you needed.

/query to get current session state and then /install or /execute as desired.
Yes. Thank you. And as i said, i figured it out.

That didn't mean i figured it out all by myself. 
in the current environment, are you expanding your comfort with the existing setup while progressing of testing the possibility of running the apps on the desktop/workstation.

The office products, excel/word do you have an o365 subscription?
Question deals with whether to use computer GPo and deploy sone software to the workstations like office

Depending on what other application, PDF reader, etc.
I will take a look. I do have O365, but I also have downloaded the apps to the RDS. I have been working with this RDS now for at least two years. Have really disliked it from the get go, but three things make me come to this place now. First, the more things I try to do, the more I realize I can't do. Second, if Sandeep hadn't abandoned me, some of these things would have possibly been likely. Third, I miss being able to upgrade my workstation to make it faster and faster. Whether it's more RAM or a faster processor or better SSDs like on a card. Nothing I could do would make any difference.

Still trying to connect. My desktop has to RDP to the RDS and Ess, so I am not sure how I directly connect. It seems as though it would be like trying to directly connect from home to my workstation, although at least the desktops are all on the same network via the switch.
I was thinking. There seem to be two ways to do a "proof of concept."

1. Using the AC on my desktop to connect to the VM directly and see the speed.
2. Also, if I had everything on a server not as a hyper-v but as the actual OS, wouldn't it make sense to install a test database copy to the Hyper-V directly? Plus, it would probably connect more easily?

I still haven't got to allocating more memory to Ess than RDS. I do have to make sure there is enough memory in both to take part of that memory to run SureBackup from Veeam.
It is possible.

2 can be slightly modified to run SQL on your local desktop/workstation to avoid impacting your current working environment..

You could then try on hyper-V host.

These tests are whether you see performance improvements by the changes.
OK, found a client with permissions to the VM. To refresh, currently client is using RDP to remote to the RDS VM. I have proposed running the apps on the actual client and the database in the VM. The VM is Windows Server 2016 Standard with 24GBs of RAM on a hypervisor server 2019 4GBs of RAM.

The client is an 8-year-old Lenovo running a 64-bit OS with 12GBs of RAM and the SSDs of the time, a Samsung SSD III.


Setup now with RDS server doing everything:

Opening program: 40 seconds
Login:15 seconds
Pull chart: 17 seconds
Go to demographics tab: 7 seconds
Script writer: 15 seconds
Total: 94 seconds

With apps on the client and connect to RDS:

Opening program: 24 seconds
Login: 5 seconds
Pull chart: 7 seconds
Go to demographics tab: 4 seconds
Script writer: 7 seconds
Total: 47 seconds

When you open a chart, you have to watch the entire windows redraw itself, unlike the second.

Now, I have to think that installing an OS directly on Windows Server 2019 Standard from fast computers (maybe replacing them with faster SSDs and processor) and the difference would be even better.

The experiment shows the second setup being 1/2 the time. But, it seems much faster and things just snap into place.

Switching to the workstations the client improves things.
This deals with the clients Allways in house, potentially keeping the RDS if you have remote users who VPN in, then use the RDS connection as the pergormance of the workstation as a fluent in remote will have a poorer performance.

The benefit of virtualization is when you go through hardware upgrade, get new server, setup hyper-V, transfer the VMs from current hyper-V to the new, and you are back in business. Potentially VM migration from one host to the other without, minimal down tine.

VM maintains, retains its info, no configuration changes on clients.

Your tests and result expand your options
That does sound like two good benefits. Although you can always remote to your client from home.
The big question is speed. Would the database and other data run faster on server OS?
Or would using one VM for RDS and using something like

SAMSUNG 980 PRO M.2 2280 1TB PCI-Express Gen 4.0 x4, NVMe 1.3c Samsung V-NAND 3-bit MLC Internal Solid State Drive (SSD) MZ-V8P1T0B/AM on the clients.

Sandeep actually emailed me out of the blue and stated we should put everything on the RDS including Active Directory, DHCP, DNS. For some reason he didn't want to use a domain controller. So while rebuilding it, would using an SSD for the entire server make sense?

If memory serves, RDS is discouraged from running on a DC.
It's like situating people working in a bank within the confines of the safe.

The complexity of workstations as RDP means there are several to maintain, versus the RDS which as you noted is configure once, work by many.

Access is one protective measure that shields the DC (AD).

You potentially are increasing your costs unnecessarily.
Do you have cost/redundancy consideration?
I.e. Two hyper-V host between which the VMs can transition for redundancy.

To answer your question, a different way, you have to assess and decide the balance you are after.

Often, the newer servers use the m.2 addition to boost performance to function as caches.
Using SAS based drives increases storage performance and reliability versus the more expensive SSD on a per-storage basis.

The complexity in your situation is the need for EHR AC support to deploy software/clients.
When software can be installed in-house at will.

You could use SSD for the hyper-visor and sas for storage.
On the last line I agree. If I were going to use the clients to access the RDS via RDP, if I put all the software on the clients, they will run much faster. AC already has a huge improvement running locally on SSDs.

Potentially, your server VM will benefit if you run the SQL standard version versus express which is resource bound. Processor/cpu and (memory though your current utilization is not as high.)

The nature of your setup, license determination for SQL +user cals, or SQL core licenses cost 3kxnumber of cores in the VM/2.

Presumably, you have 4cores for the VM.

The app, suggests you may have many external users upload pt chart data documenting services rendered..
I would get SQL Standard free, but Raja (from here) doesn't think it will be much of a benefit because the program is so poorly written it doesn't benefit from many things.
I do not recall nor have checked, whether SQL express still has the tool to capture, analyze the SQL trace of a period of time in peak hours of use.

The query back and forth

The question of slow,
I understand for billing purposes it might be consuming time ....

For other purposes the query and rendering are not what consumes the time...

How many processors allocated to the WSE VM where the DB is,

Do you also have a web passed component that mobile users submit their chart data?
There are 8 processors for both. And:

38,000 MBs RAM for the RDS
22,000 MBs RAM for the ESS
4 GBs of RAM for the hyper-v

I think you recommended my allocating more RAM to the riverviewEss
If not mistaken, the WSE SQL express version can only use 4 cores.

But since you are using sql 2012 express, I think it was being throttled another way if not limited by CPU/cores.

How much memory is consumed on the RDS when all the users are connected?

SQL server should get a higher priority of resources and potentially more memory though
how big is your EHR AC DB? it has not grown much yet, 10GB limit based on version...
see whether the memory utilization on the SQL server is larger than the size of the DB.

Does EHR AC provide HW/Software requirements based on number of charts, users etc.?

Is the setup you are using based on their minimal spec? or middle range where you hope to be in three to four years?
13GBs of data on SQL Server


Total of users: 7,000

Well, it's almost 7 pm on Friday night and nothing via email from Sandeep since Tuesday, so I don't see this big transformation happening on the weekend.

So, the way I see it there are a few ways to do this:

1. Keep it the way it is, which is untenable.
2. Keep it the way it is, but only one VM.
3. Put the programs on the clients and connect directly to the server OS such as Server 2019.
4. Put the program on the clients and connect to one VM.

It would seem like the latter way would be the best.

All I know is that my MA used AC the entire day installed on the desktop and connected directly to AC on Ess, and she was much happier.

I can't seem to find the specs that AC recommends, but I am pretty sure I meet or exceed them whether using the workstations or the VMs.

Where do I see myself in three to four years. I see myself in the next three months replacing all of my Lenovo 91ps (which are/were awesome) with new towers that use SSD cards with better processors and anywhere from 8GBs to 12GBs of RAM

One VM using 60GBs of RAM with an HV using 4GBs or maybe giving 6GBs the hyper-v. No RDP. 
you could replace the existing system's with SSD cloning the existing drive onto it.

If you are getting new systems look at getting them with m.2 nvme storage after performance as compared to sata SSD. M.2nvme 3500/2500 versus common 540/540 Mbs

7000 users, EHR AC still recommends SQL express?

simulteneous access probably going SQL server standard core based licensing. Could also

VM Ess 4 or even 6 core should do.

Do you have user data outside the EHR AC, does EHR AC includes a file system level repository for physical data scans re PT from the various possible sources, DR, ...
No 7000 MBs of ram allocated to the 4 users. 

The four users are the only ones who pull data out and insert data in?
Getting software, EHR AC,  deployed to each workstation would address the current issue.