Investigating High Memory Usage and Clock Drift Issues in Ignition


Hi everyone!
I’m currently facing a couple of technical issues with my Ignition application that I hope to get some insights on.

  1. High Memory Usage: I’ve noticed that the memory usage spikes significantly during operation, but after a restart, it drops back to a much lower level. What are the common causes of high memory usage in Ignition, and how can I effectively monitor and manage it?
  2. Clock Drift Error: I’m also encountering the following error: "Clock drift, degraded performance, or pause-the-world detected. Max allowed deviation=1000ms, actual deviation=1159ms." How does this clock drift impact overall performance, and what steps can I take to mitigate this issue?
  3. Performance Optimization: Are there specific best practices or tools within Ignition that can help optimize memory usage and performance, especially in relation to the errors mentioned?

I appreciate any insights or experiences you can share!

Thank you!

So many possibilities. Some reading:

https://forum.inductiveautomation.com/search?q=%40pturmel%20GC%20pause%20order%3Alatest

Does your Ignition Gateway eventually crash if you don't restart it?

If not, there may be no issue at all. The JVM garbage collector adapts to the application workload, and since you have 6GB memory allocated you should not be surprised if the JVM eventually decides to use more of it.

Thank you for your response. I am currently unsure whether the Ignition Gateway would crash, but this concerns me, and I would like to investigate what might cause such an issue.

The virtual machine on which Ignition is running has 18 GB of memory, and I have allocated 6 GB to Ignition. The transaction time for the running scripts is under 1s, which indicates that the scripts are executing quickly. However, I am worried that even though the scripts perform well, it seems like something might be stored in memory, and a restart would clear this stored data.

I would like to understand what factors could potentially lead to a crash of the Ignition Gateway and if there is anything I can do to ensure stability. I would appreciate any advice or information you could provide.

Thanks

1 second can be quite a while for something that runs several times a second. That one script was called 6 times in 2 seconds just in your screenshot.

2 Likes

Thank you for your comment regarding the script execution. I would like to clarify that the script can be called simultaneously by up to 11 different devices , and it runs every 15 seconds for various locationIDs

Even so, that's still a long time for a script that runs that often. If there's a script that runs longer than 25 ms, I'd look into caching those results somehow to improve performance. It's definitely not helping your gateway perform well.

2 Likes