High-load environments

Tuning EVA ICS

Make sure no notifiers are subscribed to the frequently
(more than ~10 times per second) updated item states. If you need to
synchronize states of such items, reduce remote controller reload intervals
instead but set them higher than 1 second.

Modbus slave and some utility workers use twisted reactor thread pool. In
case the software reacts or performs regular tasks slowly, but system load is
still low, try increasing value of reactor_thread_pool option in [server]
section.

Hardware

Thanks to EVA ICS architecture and optimization for modern multi-core CPUs, the
platform can provide good results even on a microcomputers. System components
and CLI tools may require more time to launch on architectures
different than Intel x86_64, but the regular performance should not be affected
even on an embedded ARM-based systems.

Benchmarks

Benchmark tests for Universal Controller can be performed with
tests/benchmark-uc-crt tool. Benchmark results may be different on a systems
with different background load, so please stop all unnecessary processes
before starting a test.

The primary parameter for UC which is benign benchmarked is a time, required for
the controller to:

perform a simple in-core event handling (convert item value to float and then
compare with a float number) with self thread-locking

get action request from event handler and execute it using another driver

The time between a moment when the first driver gets new item value and a
moment when the second driver is ready to call equipment action is named
Core Reaction Time (CRT).

The benchmark tool for Universal Controller turns on internal controller benchmark,
performs 1000 CRT tests with 30ms delays on a single sensor/unit pair and
displays the average CRT value in milliseconds.

The benchmark is performed on virtual drivers, so the actual system reaction
time may be higher than CRT, depending on the equipment connected.

Warning

It’s not recommended to perform a real benchmarking tests on SOHO and light
industry relays due to their limited lifetime (~100-200k switches)