Performance: OPC UA Data Modeling
This project collects 100,000+ OPC UA tags, models the data as 10,000+ pumps, and sends the data to MQTT once a second.
KEPServerEX is used as the OPC UA server and is installed on a separate networked machine. The Intelligence Hub is installed on a single machine with the MQTT Broker enabled.
See below links to download the project files to run this test in your own environment.
Project Details
- Number of Pumps: 10,240
- Number of Tags per Pump: 9
- Number of Tags: 92,160
- Flow publish rate: 1 second
- Number of MQTT Connections: 3
- Number of Flows: 5
System Specs
- AWS EC2 t2.2xlarge
- vCPU: 8
- Memory: 32GB
Performance Results
- Write payloads/second: 10,296 vs 10,240
- Write attributes/second: 123,560 vs 122,880
- CPU: 46.3%
- Memory: 84%
- Aggregated results: aggregate_results.json
- Raw results: raw_results.json
Testing Notes
- Results averaged over 10 minute time window
- Attributes/second includes internal _name, _model, _timestamp fields
- Write results are greater than expected because of buffering/bursts. This should be interpreted as meeting expected results.
- 3 MQTT connections are used to spread the write load across 3 threads
Steps to Reproduce
- Install the latest version of the Intelligence Hub
- Install KEPServerEX on the same or a different machine to match this test
- Download and load the kepserverex_pumps.opf KEPServerEX project and ensure OPC UA is enabled
- Download and load the intelligencehub_pumps.json Intelligence Hub Project
- Change the OPC UA Connection settings to connect to your OPC UA Server
- Enable the local MQTT Broker under Settings
- Confirm connectivity to the OPC UA Server and MQTT Broker is working
- Enable the Flows