High CPU Usage on RDS server

We are running five clients via remote desktop through a single RDS VM. The VM is part of a server running four additional VM’s, one of which is the ignition gateway VM. Up until about two days ago, the system would have a screen freeze here and there; we would reset the RDP and off she’d go. Sometimes a few screens would slow down responsiveness, but regain after being left along for a few min. But, a couple days ago…the RDS is at 100% CPU usage. No matter what I’ve done, same issue. My IT department can’t find anything wrong with the server, and tells me that the only VM on that server gobbling up CPU is the RDS.

Below is a snip from the task manager showing the five screens (Remote 2-5). The CPU usage varies between the five screens, all running the same project from the same gateway.

I’ve changed to G1GC, as mentioned in other threads. Currently running v8 Java. I can’t run the native launcher on the individual clients, they are simple touchscreen thin clients with no operating system.

Any ideas? What more information can I provide to help solve this issue…right now I’m running an entire cheese plant with a two desktop PC’s running the native client launch files…but these PC’s are too far from where the operators need to be.

If you are going to run five clients from that one RDS server, you are going to need five times the RAM a normal client would use. Plus a bit of overhead. Investigate that first. If you are squeezing the ram allowance on each client to fit the five into the RDS, you are going to cause grief when each client starts thrashing.

Meanwhile, within the RDS, make sure each client is launched with G1GC enabled (the client, separate from the gateway). A native launcher can do this with jvm-args="-XX:+UseG1GC" added to the shortcut command line.

If it is so critical to your operation, consider coughing up the dough to put proper not-quite-so-thin clients on your plant floor.

1 Like

I wish it were that simple…

The plant switched from WinCC to Ignition prior to my arrival with the company. Their WinCC SCADA used RDS without issue. I have utilized the existing setup for 18 months with little to no issues.

It’s not a RAM usage issue, there is plenty of RAM. Each client is using approximately 250-300MB of RAM; the VM has 6GB of RAM available. RAM usage is at 25-35% on average.

Here is a copy of the command line for the clients from RDS:
“C:\Ignition\clientlauncher.exe” scope=C project=Havarti windowmode=fullscreen screen=0 show.closebutton=false jvm-args="-XX:+UseG1GC"

Right now, I have two of the three clients off and still the three running are VERY slow and when an action is completed on the RDP, the RDS VM CPU usage goes directly to 100%

I’m as puzzled by this as most anyone…

The next likely culprit would be a programmer error. Specifically, one or more event routine firing back-to-back due to ping-ponging changes, or ping-ponging due to recursion. Often caused by a newbie forgetting to check the propertyName in a propertyChange event. Adding “print event” to each event routine (inside the propertyName checks on propertyChanges) will generate a flood of traffic on the clients’ diagnostic consoles when this is the problem.

I hope it’s programming…I did most of it. But, I haven’t done any script changes/updates in a few weeks…and the project runs fine everywhere but the RDS.