Skip to main content
1-Visitor
October 20, 2020
Solved

Timer performance issue

  • October 20, 2020
  • 1 reply
  • 1563 views

Hi,

We have connected ThingWorx to 100 equipments in PLC. ThingWorx is reading almost 3000 tags. We wanted to constantly monitor the tags so thinking about using the Timer entitiy. But if we put the timer for 30 seconds timer to monitor all the 3000 tags how will the performance of ThingWorx be affected?

Is it advisable to add timer for mass data collection like this?

If the system creashes where will the data be logged?

 

Thanks & Regards,

Shalini V.

Best answer by PaiChung

In general that wouldn't be an issue, unless you have some long running processes especially on the property subscription based items.

Please do refer to the Best Practices article I linked to understand the best way to use the timer subscription.

You can also tune the Server/JVM to have more memory available and I believe you can also increase the threadpool if needed.

If there are certain items that can be a long running evaluation, you can always make that a single thread.

ie loop through all entities in a single service, vs fire an evaluation per entity.

1 reply

22-Sapphire I
October 20, 2020

What is the exact behavior you want to have? It is a bit difficult to know if what you want to do will cause performance issues or not.

There is a best practice article that might help

https://community.ptc.com/t5/IoT-Tech-Tips/Timers-and-Schedulers-Best-Practice/m-p/534667#M1077

 

1-Visitor
October 21, 2020

Hi @PaiChung,

Thanks for your response.

 

As per the requirement, there will be 100 subscriptions running based on the data change of the tags and parallely there will be 100 timers (per equipment) which will be running for 30 seconds to monitor the other parameters. Since, there are almost 200 - 300 threads running parallely we wanted to know whether it will impact ThingWorx performance. What is the maximum number of timers that can be used according to PTC? 

Is there any workaround to avoid timers if the timers affect the performance of TW.

 

Thanks in advance,

Shalini V.

PaiChung22-Sapphire IAnswer
22-Sapphire I
October 21, 2020

In general that wouldn't be an issue, unless you have some long running processes especially on the property subscription based items.

Please do refer to the Best Practices article I linked to understand the best way to use the timer subscription.

You can also tune the Server/JVM to have more memory available and I believe you can also increase the threadpool if needed.

If there are certain items that can be a long running evaluation, you can always make that a single thread.

ie loop through all entities in a single service, vs fire an evaluation per entity.