Professional OPC
Development Tools

logos

Online Forums

Technical support is provided through Support Forums below. Anybody can view them; you need to Register/Login to our site (see links in upper right corner) in order to Post questions. You do not have to be a licensed user of our product.

Please read Rules for forum posts before reporting your issue or asking a question. OPC Labs team is actively monitoring the forums, and replies as soon as possible. Various technical information can also be found in our Knowledge Base. For your convenience, we have also assembled a Frequently Asked Questions page.

Do not use the Contact page for technical issues.

Performance with 500 to 1000 devices

More
22 Mar 2019 08:34 #7259 by support
Thank you for the numbers.

In a "normal" situation, that is, receiving 500 messages with simple data per second from a handful of servers, this would be perfectly OK. And it might be OK in your case as well, we just do not know. The factors that make it different are:
- the fact that there is so many devices.
- the fact that you mentioned you subscribe to "complex data nodes". Can you elaborate on that? Are they custom data types (such as structures - but represented as single node)? How big they are?

Both approaches (with single EasyUAClient instance, and with multiple EasyUAInstances) are possible, and have their pros and cons. I would probably start with single EasyUAClient instance and see how that works out. The differences are:

- Single EasyUAClient instance: Less memory. More limited in terms of threading - all notifications will be delivered to you from/on a single thread, so if you have multiple cores, it won't - without extra coding - take advantage of that, for the part of your code that processes the notifications.
- Multiple EasyUAClient instance: More memory (and threads). Notifications will be delivered essentially in parallel on these instances, making it possible to process them more efficiently on multiple cores (but may have to synchronize them yourself if they access some common data body).

Best regards

Please Log in or Create an account to join the conversation.

More
22 Mar 2019 04:17 #7258 by sjscheider
I did the math on about how many message we are expecting as a worst case. If there are 500 devices we are expecting about 250 messages per second. If there are 1000 devices, we are expecting about 500 messages per second.

We do plan on running on running this code on machines with i7s, fast SSD and up to 16GB RAM, so we are not trying to do this on lower end hardware.

We also realize that in large installs, we will need multiple machines. We are trying to get an idea of the performance we should be able to expect.

Also, should we create a single EasyUAClient for connecting to all devices? (I'm not event sure this is possible.) Currently we are creating a separate EasyUAClient for each device we are connecting to. At the moment we have not testing with more than 4 devices. We plan to get with 100s in the next week or two.

Any other performance recommendations are greatly appreciate. Thanks for you quick responses!

Please Log in or Create an account to join the conversation.

More
20 Mar 2019 15:44 #7243 by support
Hello,
thank you for your interest in our products,

I admit that we have not tested with such large number of devices. I encourage you to verify it before purchase. I will send you an evaluation license (by email), valid for 30 days (can be extended if needed), with no run-time limit.

We do not have "hard-coded" limits for the number of devices etc., but your scenario will certainly be memory intensive and possibly also CPU intensive. I do not quite get how the numbers you have provided add up: If you had 1000 devices and each gave 100 messages per day, that would come slightly above 1 message per second on average, which seems reasonable (note: one should also think about how the messages tend to be grouped, time-wise). How does the node with 15-20 changes per minute fit with the fact "100 messages per day"? - this is the part I do not get. If you had 1000 nodes like this, that would come to 333 messages per second. In normal scenarios (with 1 server or a handful or servers), this were quite doable as well, but needs to be tested, it is fairly different from 1 message/second which comes out of the first calculation. Can you please explain where I am getting it wrong.

Best regards

Please Log in or Create an account to join the conversation.

More
20 Mar 2019 14:30 #7240 by sjscheider
We are currently prototyping with the trial and have questions about the performance. We are ready to purchase and have asked this question on the contact us page but for some reason we need to ask it here.

Do you foresee any issues connecting to 500 to 1000 OPC-UA devices? Each device will have 3 subscriptions to complex data nodes. One of the subscriptions will be at 500 ms, but there should less than 100 messages per day per device. The most active node the subscription is currently at 2000 ms, with data change about 15 to 20 times per minute.

Any guidance you can offer would be greatly appreciated. I currently have a prototype connecting to 4 devices without issue. We would like to stress test but we are limited to the 30 minutes of the trial license.

Please Log in or Create an account to join the conversation.

Moderators: support
Time to create page: 0.056 seconds