Closed andremoraisp closed 1 month ago
You can use one subscription with many MonitoredItems. That will already decrease the load.
Further, if you set the sampling interval to zero, then the values are sampled when they are actively written. That removes the cyclic sampling overhead if values don’t change often.
Thank you for the answer. We hadn't actually paid attention to our "sampling interval" until the previous days, and you're right. Setting it to zero solved our problem with high CPU usage.
Regarding the PubSub functionality, I'll leave my understanding here for any other person who may arrive on this page looking specifically for PubSub. The current state seems to require the UA_Server with "target variables" (nodes) to store the received data. There are other known options, but they have not yet been implemented in Open62541.
Description
I'm working on a project where we have 1 OPC server with many nodes (~180k) and we have some clients (~15) which all need to listen to the same nodes from the server.
Currently, those clients initiate many subscriptions to listen to the nodes on the server, and we are having performance problems regarding CPU usage.
We thought the PubSub system would be a great choice here, since all the clients need to listen to the same set of node values.
I was already able to create a pair of UA_Servers that communicate via PubSub (one publishes and the other listens). Observing with UA Expert, I was able to verify the desired behavior between servers.
My questions are:
Checklist
Please provide the following information:
UA_LOGLEVEL
set as low as necessary) attached