Help
  • Explore Community
  • Get Started
  • Ask the Community
  • How-To & Best Practices
  • Contact Support
Notifications
Login / Register
Community
Community
Notifications
close
  • Forums
  • Knowledge Center
  • Events & Webinars
  • Ideas
  • Blogs
Help
Help
  • Explore Community
  • Get Started
  • Ask the Community
  • How-To & Best Practices
  • Contact Support
Login / Register
Sustainability
Sustainability

Join our "Ask Me About" community webinar on May 20th at 9 AM CET and 5 PM CET to explore cybersecurity and monitoring for Data Center and edge IT. Learn about market trends, cutting-edge technologies, and best practices from industry experts.
Register and secure your Critical IT infrastructure

Diagnosing DBServer Thread CPU Usage

Geo SCADA Knowledge Base

Access vast amounts of technical know-how and pro tips from our community of Geo SCADA experts.

cancel
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Home
  • Schneider Electric Community
  • Knowledge Center
  • Geo SCADA Knowledge Base
  • Diagnosing DBServer Thread CPU Usage
Invite a Co-worker
Send a co-worker an invite to the portal.Just enter their email address and we'll connect them to register. After joining, they will belong to the same company.
You have entered an invalid email address. Please re-enter the email address.
This co-worker has already been invited to the Exchange portal. Please invite another co-worker.
Please enter email address
Send Invite Cancel
Invitation Sent
Your invitation was sent.Thanks for sharing Exchange with your co-worker.
Send New Invite Close
Top Labels
Top Labels
  • Alphabetical
  • database 32
  • Web Server and Client 31
  • WebX 19
  • Request Form 18
  • Lists, Events & Alarms 16
  • ViewX 15
  • Application Programming 12
  • Setup 12
  • Telemetry 8
  • Events & Alarms 7
  • Lists 7
  • Mimic Graphics 7
  • Downloads 6
  • Support 5
  • IoT 5
  • SCADA 5
  • Geo SCADA Expert 5
  • Drivers and Communications 4
  • Security 4
  • DNP 3 3
  • IEC 61131-3 Logic 3
  • Trends and Historian 2
  • Virtual ViewX 2
  • Geo Scada 1
  • ClearSCADA 1
  • Templates and Instances 1
  • Releases 1
  • Maps and GIS 1
  • Mobile 1
  • Architectures 1
  • Tools & Resources 1
  • Privacy Policy 1
  • OPC-UA 1
  • Previous
  • 1 of 4
  • Next
Latest Blog Posts
  • OPC UA - Driver and Server
  • Requirements for Generating a Valid OPC UA Server Certificate
  • Load Events Using LoadRecord and LoadRecords
  • Geo SCADA Embedded Component Licenses
  • Geo SCADA 2023 Known Issues
Related Products
product field
Schneider Electric
EcoStruxure™ Geo SCADA Expert

Invite a Colleague

Found this content useful? Share it with a Colleague!

Invite a Colleague Invite
Anonymous user
Not applicable
‎2021-06-09 02:58 PM
0 Likes
0
953
  • Bookmark
  • Subscribe
  • Email to a Friend
  • Printer Friendly Page
  • Report Inappropriate Content

Link copied. Please paste this link to share this article on your social media post.

‎2021-06-09 02:58 PM

Diagnosing DBServer Thread CPU Usage

Originally published on Geo SCADA Knowledge Base by Anonymous user | June 09, 2021 11:58 PM

📖 Home  Back  
DBServer handles tasks such as logic, main-standby synchronizing and ViewX communication, all of which could put a heavy load on the system. Knowing which thread is using large amounts of CPU time will provide an indication of what parts of the system are performing badly or may be configured incorrectly.

The problem with the ClearSCADA Server's Display of threads is that it shows thread CPU time accumulated since DBServer started, so immediate or intermittent peaks might not be visible. To locate the culprits Windows Performance monitor (perfmon.exe) can be used.

To determine which parts of DBServer are using the CPU, open up performance monitor (under Administrative Tools). (If the performance monitor of your operating system doesn't support the export of data to a CSV file you can use perfmon4.exe from the Windows Resource Kit, however this isn't vital.)

Add a new trace to the graph using the plus sign, select the correct machine and in the Performance Object box choose 'Thread'. In the Counters box choose '% Processor Time' and in the instance box choose all the DBServer options (approximately 30 of them, you can use the shift key to highlight in bulk).Click Add, then Close.

DBServer1.jpgDBServer1.jpgDBServer1.jpg

In the graph check to see which of the instances has highest usage. Using the key, find out that thread's instance number.
For example,in the image below DBServer threads being monitored, thread 36 has the maximum CPU Usage.

Now go back to the Add Trace window by clicking on the plus sign and select 'Thread' as the Performance object. Select 'ID Thread' in the counters window and in the instance window, select the instance that was showing the highest usage (the number after the / ).(For example,in the image below it is DBServer/36)

Click Add and Close again.

DBServer2.jpgDBServer2.jpgDBServer2.jpg

Using the graph's key at the bottom, scroll down to the newly added trace, it will show the Thread's ID, which is a constant number and so in the Minimum, Maximum and Average boxes the value will be identical. Take a note of this number.
In the image below, this number is 3328.

DBServer4.jpgDBServer4.jpgDBServer4.jpg

Open up the ClearSCADA Status Dialogue on the machine and go to the Threads tab. Match up the ID Thread from above with the Id in the table that is displayed.

DBServer5.jpgDBServer5.jpgDBServer5.jpg

So after getting the ID, we can find from the Status Dialogue which part of DBServer is consuming the maximum CPU.

Instance 0 is the main control thread and so doesn't appear in the list


On a multiprocessor system the actual contribution DBServer threads make to the CPU usage shown by Task Manager is the total of the threads' figures divided by the number of processors.

What If Performance Monitors Weren't Set Up?


You will have to use the ClearSCADA Server Status display or DB Snapshots (ClearSCADA 2007 R0 and later). Go to section 7 (General Threads) and look for the threads' CPU consumption, then go to a later snapshot and compare the threads' CPU consumption. Look for threads that have used up large amounts of time. For example:

                      Id  |Desc          |Exec Count|State     |Run Time |User Time        |Kernel Time                      h3. +h4. +h4. +h4. +h1. h4. +h4. ==+h4. h2.     28/07/07 10:00 -> 5948|Logic         |43308210  |Event 1   |286:26:38| 87281.156 (8.5%)|  575.921 (0.1%)    30/07/07 07:00 -> 5948|Logic         |51173199  |Event 1   |331:26:37|107418.531 (9.0%)|  715.093 (0.1%)


Between snapshots the thread ran for an elapsed time of 162000s (=331h 26m 37s - 286h 26m 38s) during which it used 20137.375s (=107418.531 - 87281.156) of CPU time in user mode and 139.172s (=715.093 - 575.921) of CPU time in privileged mode. Between the snapshots this equates to 12.4% (=20137/162000) in user mode and 0.09% (=139/162000) in privileged mode. (Note that the % figures logged inside brackets in the snapshot cover the whole period since the thread started, not just the time window you are interested in.)

If you add up the % figures for all of DBServer's threads you will get the total % CPU used by DBServer, which is also shown by the performance monitor "\Process(DBServer)\% Processor Time".

For example this might add up to 60%. On a multiprocessor system the actual contribution DBServer makes to the CPU usage shown by Task Manager is this total divided by the number of processors, so in this example it would be 15% of the CPU resources of a four processor system. Of this 3.1% (=12.4 / 4) would be the Logic thread.


Go: Home Back

Author

Biography

Anonymous user

Link copied. Please paste this link to share this article on your social media post.

  • Back to Blog
  • Newer Article
  • Older Article
To The Top!

Forums

  • APC UPS Data Center Backup Solutions
  • EcoStruxure IT
  • EcoStruxure Geo SCADA Expert
  • Metering & Power Quality
  • Schneider Electric Wiser

Knowledge Center

Events & webinars

Ideas

Blogs

Get Started

  • Ask the Community
  • Community Guidelines
  • Community User Guide
  • How-To & Best Practice
  • Experts Leaderboard
  • Contact Support
Brand-Logo
Subscribing is a smart move!
You can subscribe to this board after you log in or create your free account.
Forum-Icon

Create your free account or log in to subscribe to the board - and gain access to more than 10,000+ support articles along with insights from experts and peers.

Register today for FREE

Register Now

Already have an account? Login

Terms & Conditions Privacy Notice Change your Cookie Settings © 2025 Schneider Electric

This is a heading

With achievable small steps, users progress and continually feel satisfaction in task accomplishment.

Usetiful Onboarding Checklist remembers the progress of every user, allowing them to take bite-sized journeys and continue where they left.

of