Easy-Chart Slows Down Clients in Linux

I am running 7.9.10 on an Ubuntu 18.04 LTS system. Whenever a client is running on a Linux based system (either on the server or remotely), the client will slow down if an easy-chart is displayed. Effectively, the frames-per-second goes down to about 1 frame/1.5 or 2 seconds.

It only happens when an easy-chart is displayed and goes away if you change pages, and it only happens if the client is running on Linux (running the client remotely from windows with an Ubuntu based server does not encounter this issue, which makes me think it’s not an SQL throughput issue or gateway issue or anything like that). The same is happening when running a client in Linux from a Windows based server. The problem also occurs in CentOS running on similar hardware.

Looking at system resources, I’m not seeing any red flags telling me that the problem is lack of power/memory. CPU and memory usage for the client remain low even while the problem is occurring. Talking with our software developer, he suggested it may be a GPU driver implementation problem. The computers are running Intel HD 520 GPUs, and I’m not running into any other problems on the computer with graphics. The same PC’s and GPU’s running windows do not have this problem.

I’ve been researching the issue as best I can but I’m not getting anywhere fast. Anybody have any ideas?

For posterity: after a lot of troubleshooting with IA support, the issue turned out to be inherent to how Ubuntu and Ignition are setup. The pens on the charts in the client create low priority threads on the client’s host machine, and Ignition does not have it’s own thread priority handling system. Windows does this management for you with a “fairness” algorithm, but Ubuntu does not and will leave low priority threads to starve in the bottom of the queue, depending on the programs to raise their priority as needed.

The only solutions to the problem are to A) only use charts with a small number of pens, B) install ignition on a machine with more cores than would normally be required for an Ignition setup (and more than the recommended 2 cores Ignition has listed), or C) wait for IA to release a version of Ignition with proper thread management in Ubuntu.
For now, we’re going to have to go with option D) switch to Windows, which we’re pretty annoyed about.

How did you guys come to this conclusion?

Did you try anything like setting the Vision Client’s process scheduling priority with nice if you think it’s not GPU-related?

I’m not an expert on threading, so I’m just repeating what I was told by customer support. No we didn’t try anything with nice, but I’ll look into it when we do some R&D for future systems (if you could give me some pointers or a starting point for that, it’d be very much appreciated). When the problem happens, the CPU and the GPU don’t seem to maxed out, which I believe is what in part lead us to the conclusion we have, that it’s not a problem with lack of hardware capability but instead with how the information is processed (which would explain why identical hardware with Windows does not have the same problem).

Well just because it’s a simple experiment, you could try changing the nice level before you give up.

Get the Vision Client pid:

jps | grep BootstrapSwing

Use renice:

sudo renice -10 <pid>

If it were reproducible by support we could try to profile it and see if anything stands out, but this isn’t a problem I’ve heard of before.

Support was able to reproduce it on their end. The key is to make sure the machine your testing on only has two cores, the first couple times they tried they were using VM’s with 8 cores, they couldn’t reproduce the issue until they reduced the number of cores to 2 and had a chart with about 20 pens or so.

Very interesting. I think I’ll be playing with this with my EasyNoteChart to see what can be done.