Seeking Advice on Optimizing IPESoft System Performance

Hey everyone,

I hope you’re all doing well! I’m reaching out to the community for some advice on optimizing the performance of my IPESoft system. I’ve been using it for a while now, and while it’s been great overall, I’m looking for tips or best practices to ensure it runs as smoothly as possible.

Specifically, I’m interested in:

  • Performance Tuning: Any recommendations for adjusting settings or configurations to improve speed and efficiency?
  • Resource Management: Tips on managing system resources effectively to prevent bottlenecks or slowdowns.
  • Monitoring Tools: Are there any monitoring tools or techniques that you’ve found helpful in keeping an eye on system performance?

And for the same I have been through these articles/resources Industrial IT system - IPESOFT SCADA React Native Interview Questions that are quite informative. But I would love to hear more from the community members.

If you’ve had experience with optimizing IPESoft systems or have any general advice on maintaining peak performance, I’d love to hear your thoughts.

Thanks in advance for your help!

This is very wide topic. What comes to my mind:

  • Communication optimizations (various per-protocol settings which can speed up communications) - see protocol documentation of the respective protocols.
  • Scripting optimization - see ESL Diagnostic Pack. It enables to diagnose memory consumption (containers, local variables), open files, open database transactions/files, active/passive duration of individual script lines and much more
  • Database optimizations - see DbManager Diagnostic Pack and also DbManager - Tuning and Debugging.
  • Archive (historian) optimizations - for large applications, it’s worthwhile to go through Archive parameters … especially useful are MaxCacheSize and IsochronousCache, but in specific conditions (balancing systems), also parameters related to recalcs are useful (RecalcOptimize, RecalcParallelInterval). If your license has ‘High performance archive’ option, increasing ReadThreadsCount/WriteThreadsCount will help to parallelize the workload by utilizing multiple reading/writing tasks.

Usually, users start to optimize when they experience a bottleneck of some kind. E.g. communication is slow, D2000 Archive’s requests start to accumulate in a queue, the system tags Pending_Cfg_Rq/Pending_Monitor_Rq starts to grow.

Also, D2000 offers various system structured variables to retrieve the status/peformance of individual D2000 processes/objects (communication lines/stations, databases, processes, etc) and system tags to access various performance readings of D2000 Server.

Individual processes also have some ways to debug individual D2000 objects (e.g. SHOW_DYN_INFO and DI ON commands in D2000 Archive and SHOW_TAG command in D2000 KOM processes).

If you are interested in a concrete topic, I can provide more information.

Edited: I also recommend reading Performance requirements in our online documentation.

As for the monitoring, we usually deploy the SysProf module (blog) for monitoring & autodiagnostics.