DaacoX, the IoT edge software architecture has been designed to perform more asynchronously in connecting with the industrial assets and collecting I/O tag data in order to achieve maximum throughput. DaacoX is able to process ~1500 I/O tags in one sec with a low memory footprint.
Performance Test Environment
Modbus protocol stack is used for this performance test. Daacoworks has implemented Modbus Protocol Specification in the DaacoX IIoT Edge software in order to get maximum throughput.
The total number of Modbus TCP devices used is 60. Each IO Device (Modbus TCP Simulator) is configured with 25 IO Tags.
Multiple load tests were executed on DaacoX with a different number of IO Devices (Modbus TCP Simulators) and Tags.
In all the tests, all the tags were polled at a one-second interval.
The number of Modbus TCP Devices and the respective IO Tags configured in the tests is in the below table.
DaacoX comprises the below list of processes
Device Poller - JVM Process
Data Persistence Handler - JVM Process
Data Alerts Handler - JVM Process
Data Publisher (to Cloud) - JVM Process
Web Server Process and
With all these processes running, JVM heap size, CPU utilization, RAM utilization, the processing rate of I/O data and Average thread count are measured in each test.
The data is collected at 15 minutes intervale from each process in all tests.
The processing rate of I/O data is measured by the number of tags persisted per second in the database.
The resources used are:
The AWS ec2 instance with Intel processor
• Ubuntu 18.04
• Open JDK JRE 1.8
• 2 CPU 2.3 GHz
• 4 GB RAM
Average CPU and Memory Utilization
Utilization Percentage per CPU
Memory Utilization Percentage
Java Heap Utilization
Heap Memory Chart
Data Persistence Rate
At Maximum configuration of 60 IO Devices and 1500 IO Tags, DaacoX is able to persist ~1480-1500 tags/sec into DB.
Average Thread Count
A similar exercise was performed in RaspberryPI 3 (1 GB RAM, 1.2Ghz quad-core processor). DaacoX is able to process 750 Modbus responses per second.