Zulu Platform x64 Architecture high RAM Usage

whenever we run queries, the cpu and memory goes up and eventually both cpu and memory percentage goes down after the query is finished on the Ignition Status Page.

Only after I run a query, the memory usage which we see in the task manager for Zulu Platform goes to its maximum allocated memory (16GB) and stays at 16GB. This memory comes down only if the gateway is restarted.

In the Ignition Status Page once the queries are complete, the memory starts going up again and continues to a certain point 10GB to 11GB; drops all the way to around 2 or 3Gb and starts going up again. This is without any queries being run again.

Total Memory available = 63.8 GB
MySql Memory Allocation = 26 GB
Ignition Memory Allocation = 16 GB

Currently I have Ignition and MySQL on the same machine.

Could anyone please point me in the right direction or give me any ideas on what is causing this and how to solve this?

picture after gateway restart

Thank you.

This sounds like normal behavior. The JVM does not release memory back to the OS; you allocated 16GB to Ignition and eventually it claimed it all.

Also normal. This is standard garbage collector behavior.

1 Like

As Kevin says, absolutely normal. However, you should set Ignition’s starting memory and max memory to the same, so Ignition claims it outright. That prevents a later process hogging memory (databases!) from hurting Ignition’s performance.


So When you say it is normal, the memory goes up and ClockDriftDetector comes into play which affects the performance of the perspective sessions and the desginer.

ClockDriftDetector average is at 3050ms

It is more like it needs an hardware upgrade?

Possibly more cores. You have enough RAM. Before that, consider setting min and max memory to ~5GB, since it bottoms out at 2-3GB. In my experience, giving java too much memory can make GC longer than necessary. A sawtooth pattern that bottoms ~50% and peaks ~80% seems to be ideal.

But Ignition does run best if it has plenty of cores.

My saw tooth pattern goes from 2.4GB to 11GB. If I set around 5Gb does it not affect the performance of the sessions?
I tried setting it to 6GB and on the top it changes to a flat line.


Ok, then 5GB would be too low. The idea is that garbage collecting 8.6GB (11GB => 2.4GB) takes time. If the max limit is lower, GC is going to happen earlier and more often, with a smaller amount collected. Hopefully faster. Java mostly garbage collects just the easiest stuff until memory pressure makes it collect more difficult stuff. (That’s the peak of the sawtooth.)

If you can’t get the a max below 11GB to yield a faster, smaller sawtooth (with shorter pause the world), then you will need better hardware. Especially more cores.

Consider first moving your database to another machine. So that Ignition and the DB aren’t fighting over CPU time.

1 Like