We use the Mobile client module to host local thinclient kiosks that run a single dedicated screen showing real-time equipment status.
Several times I’ve noticed that after running this way for a while (the length of time doesn’t seem to be a factor) and accumulating enough instances of the mobile client, that there will be multiple separate java instances running in server memory.
All these separate instances combine over time to create a situation where eventually, even though we have plenty of RAM (64GB is standard for servers implemented since 2014), we see the CPU resources are pegged at 100% consistently. When this occurs, we experience very sluggish performance from the project, loss of service from a custom OPC driver randomly affecting 1 or more instances of the connection this module drives, and very poor and inconsistent response from the Gateway website pages.
thus far our only solution has been to stop the gateway, kill all java instances showing in task manager, then restart the gateway.
Most recently when this happened it was on a HP G8 Server with 64GB RAM running Windows Server 2012r2 w 2 XEON quad core 2GHz CPUs (8 “logical” cores total). When it occured, though the CPU was maxed out, it appeared as though the system was using less than half of the available RAM (~24GB RAM in use I believe). Ignition is the only “critical” process running on this server - we have a separate server with identical hardware to host a MSSQL 2012 instance
Is there a way to limit the amount of CPU resources the individual instances of the Mobile client/Java JRE are allowed to use, and “throttle” the mobile client instance(s)?
Also, at the time of this situation, the server had been running for 58 consecutive days - we will be instituting a weekly reboot scheduled job on this server soon.