Performance - OPC UA - High CPU Usage|OPC UA Standard|Forum|OPC Foundation

Avatar
Search
Forum Scope


Match



Forum Options



Minimum search word length is 3 characters - maximum search word length is 84 characters
Lost password?
sp_Feed sp_PrintTopic sp_TopicIcon
Performance - OPC UA - High CPU Usage
Avatar
Vinod Pydi
Member
Members
Forum Posts: 16
Member Since:
12/15/2020
sp_UserOfflineSmall Offline
1
10/06/2021 - 09:32
sp_Permalink sp_Print

Hi ,

We are facing performance issue for our application. we have subscribed around 200 tags and write the data from our server to OPC UA expert(client). when we run the performance profiling  for 5 mintues and check the CPU usage, Most of the CPU usage is from the stack code. Here is the reference 

ClearChangeMasks Method  (Stack Code)  - Consuming 36.59% (cpu  usage)

OnMonitoredNodeChange                       - Consuming 36.53% (cpu usage)

QueueValue                                           - Consuming 36.49% (cpu usage)

However, we have a scenario to write around 2000+ tags from server to Client and vice versa, so at that time the CPU usage will be high. 

Here is our Config File 

<MaxSessionCount>100</MaxSessionCount>
<MinSessionTimeout>10000</MinSessionTimeout>
<MaxSessionTimeout>3600000</MaxSessionTimeout>
<MaxBrowseContinuationPoints>10</MaxBrowseContinuationPoints>
<MaxQueryContinuationPoints>10</MaxQueryContinuationPoints>
<MaxHistoryContinuationPoints>100</MaxHistoryContinuationPoints>
<MaxRequestAge>600000</MaxRequestAge>
<MinPublishingInterval>100</MinPublishingInterval>
<MaxPublishingInterval>3600000</MaxPublishingInterval>
<PublishingResolution>50</PublishingResolution>
<MaxSubscriptionLifetime>3600000</MaxSubscriptionLifetime>
<MaxMessageQueueSize>10</MaxMessageQueueSize>
<MaxNotificationQueueSize>100</MaxNotificationQueueSize>
<MaxNotificationsPerPublish>1000</MaxNotificationsPerPublish>
<MinMetadataSamplingInterval>1000</MinMetadataSamplingInterval>
<AvailableSamplingRates>
<SamplingRateGroup>
<Start>5</Start>
<Increment>5</Increment>
<Count>20</Count>
</SamplingRateGroup>
<SamplingRateGroup>
<Start>100</Start>
<Increment>100</Increment>
<Count>4</Count>
</SamplingRateGroup>
<SamplingRateGroup>
<Start>500</Start>
<Increment>250</Increment>
<Count>2</Count>
</SamplingRateGroup>
<SamplingRateGroup>
<Start>1000</Start>
<Increment>500</Increment>
<Count>20</Count>
</SamplingRateGroup>
</AvailableSamplingRates>
<MaxRegistrationInterval>30000</MaxRegistrationInterval>
<MaxSubscriptionCount>200</MaxSubscriptionCount>

Could you please us or give us a solution/suggestion on  how can we reduce the cpu usage for the below methods.

Please help us at the earliest 

 

Regards,

Vinod Pydi

Avatar
Randy Armstrong
Admin
Forum Posts: 1564
Member Since:
05/30/2017
sp_UserOfflineSmall Offline
2
10/06/2021 - 17:24
sp_Permalink sp_Print

What is your sampling interval?

Sounds like you are sampling at 100ms which would consume a lot of CPU.

You need a model where only changes to the underlying values are pushed to the stack.

Forum Timezone: America/Phoenix
Most Users Ever Online: 510
Currently Online:
Guest(s) 30
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Forum Stats:
Groups: 2
Forums: 10
Topics: 1435
Posts: 4855