Performance: OPC UA Data Modeling with Instance Subscriptions
The following solution provides an approach for obtaining, modeling, and publishing telemetry data.
Purpose
This article documents an Intelligence Hub data pipeline solution that obtains OPC UA tag value changes, models the data, and published data payloads to a MQTT broker. The solution is provided as a reference to be used to inspire a customer's own approach aligned with their respective use cases and environment.
Considerations
Intelligence Hub data pipeline solutions are inherently unique, and Intelligence Hub is deployed on a customer's network and resources. Therefore, we recommend performance benchmark testing once use cases are established and the environment is determined. Performance testing should be controlled and incremental. Start with a small amount of data and slowly and systematically optimize the solution and resources to meet the requirements.
Project Overview
This project models telemetry data for approximately 10,00 pumps and publishes data payloads once per second to a MQTT broker. The solution processes approximately 100,000 OPC UA tags.
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
- OPC UA tag update rate: 1 second
- Number of MQTT Connections: 5
- Number of Pipelines: 5
System Specs
As data throughput, caching, and processing demands increase, the resource requirements for the Intelligence Hub increase as well. Naturally, this creates a balancing optimization between provisioning physical resources for data ops and tuning the Intelligence Hub to make the most of resources available. The following resources were specified for this solution. JVM heap memory was optimized as well. Additional resources related to memory usage and adjusting heap memory are provided in the Other Resources section of this article below.- AWS EC2 c7i.4xlarge
- vCPU: 16
- Memory: 32GB
Performance Results
- Writes Per Hour: 3,686,400 (each write is a payload of modeled data containing nine values)
- CPU: 53%
- Memory: 34%
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 PerformanceProject20.opf KEPServerEX project and ensure OPC UA is enabled
- Download and load the intelligencehub-configuration_OPCUAPerformance_2_0_2.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 Pipelines