Memory usage increases over time for project with generated variables
The information in this article applies to:
SIMCA®-online 14 - 17.0.3
SIMCA®-Q 14 - 18.0.1
SIMCA® 14 - 18.0.1
Symptoms
Memory usage of the software listed above increases over time when a project with generated variables is used.
For a SIMCA-online server with many projects that use many generated variables, memory usage of the SIMCA-online server service can increase until the server computer's memory runs out if action is not taken (see Workaround below).
For typical uses of SIMCA-Q and SIMCA this is not noticeable. See the discussion under Workaround below.
Status
This will be fixed in SIMCA-online 18 and future releases of SIMCA-Q and SIMCA.
Internal bug number 54555.
Workaround
Since memory used by a program is released when it is terminated, stopping and restarting the program will reduce the memory usage.
For the SIMCA-online server, administrators can monitor RAM usage of the SIMCA-online service (SIMCAonlineserver.exe) or the entire server computer to know when memory runs low. A scheduled nightly, or other suitable interval, restart of the service can be used to restore memory usage to the baseline. Most server computers are restarted monthly because of Windows security updates, so in those situations this will mitigate the problem. Note: When restarting a SIMCA-online service, the server's state, including batches, alarms, and notes, is automatically stored and execution resumed when the server is restarted. Adding more memory to the server computer will also mitigate the issue.
For a product using SIMCA-Q with many generated variables, where RAM usage increases significantly over time, a similar workaround works.
SIMCA, which is a desktop app like Excel, is typically restarted more often and does not execute data in real-time and thus won't leak memory as quickly.
Cause
A small data structure, typically of size 36 bytes, is allocated when computing the value of a generated variable for projects that use those. The memory was not released to Windows after the computation was done, causing the memory leak.
When there are many generated variables and many projects that are executed at a high frequency this can cause a significant leak of memory that eventually leads to the computer's RAM running out.