OpenRoad over-using CPU usage.

31 views
Skip to first unread message

Darren Harvey

unread,
Jun 29, 2021, 8:55:48 PM6/29/21
to openroa...@googlegroups.com

Hi All

 

We have a problem at a customer where some ‘w4glrun.exe’ processes connected to an SQL Server database are using quite a large piece of the CPU when the users are not running anything in our application.  This has happened several times on different days, so it is not just a one-off occurrence.

 

Does anyone have any thoughts on why or how the ‘w4glrun.exe’ is using up so much CPU when the users are logged into our application, but they are not using it?

 

Below is some graphics of the odd CPU usage?

 

Thanks

 

Darren

 

 

 

Graphical user interface, table

Description automatically generated

 

 

Darren Harvey

Senior Developer

M +61 400 398 188
P+61 3 9922 5519

Chat with me on Microsoft Teams
#making
potentialreality

www.fusion5.com.au

Fusion5 | Level 27, 570 Bourke Street, Melbourne, 3000, Australia

This email and any attachments are confidential and intended exclusively for the person to whom the email is addressed. Please see our Privacy Policy

Are you interested in Fusion5’s COVID-19 business update?  
Please visit https://www.fusion5.co.nz/covid-19-update/

 

Paul White

unread,
Jun 29, 2021, 10:14:56 PM6/29/21
to openroa...@googlegroups.com

Hi Darren,

The taskmgr image appears to be from a Terminal server.  Connect to the session or ask the user check if the screen is showing "not responding"   You can add some columns to the display to track the process id, status, command line options etc.

I presume you have ruled out logic problems, running the latest patch etc. Are there any clues in the w4gl trace?  I recommend:

  • set II_W4GL_TRACE_TIMESTAMP=TRUE
  • Generate a unique logfile for each session, to separate the output when a user starts the app again.
  • CALL YYMMDD.BAT to set useful timestamp variables.
  • set logfile=%LOGDIR%\%USERNAME%_%timestamp%.log
  • echo == %DATE% %TIME% starting w4glrun > %logfile%
  • Use command line options -Tall -L%logfile% -A

You have the start time of the high CPU events. Looks like 8am and 1pm for the most recent.  Check the trace log timestamps for the last user activity.   Is there a pattern for the duration?

Maybe the DB connection is dropping due to idle timeout and the code is stuck in the loop: [fail, call p4_error..., read db, fail,...]  Check the network connections from the w4glrun.exe side. Use netstat -nb (in elevated mode)  or Sysinternals TCPview.  Make sure there is a connection from the process to the DB.  In these type of situations, I often debug with a monitoring script, once per minute    netstat -nb | find "21064" then track when the network drops.

Paul
&

Darren Harvey

unread,
Jun 29, 2021, 10:36:41 PM6/29/21
to openroa...@googlegroups.com

Hi Paul

 

Thanks for your response and we will look into a few of things you mentioned.  We have looked at the trace log we create, and there is nothing written to it for a period of time.

 

Thanks

 

Darren

 

Darren Harvey

Senior Developer

M +61 400 398 188
P+61 3 9922 5519

Chat with me on Microsoft Teams
#making
potentialreality

www.fusion5.com.au

Fusion5 | Level 27, 570 Bourke Street, Melbourne, 3000, Australia

This email and any attachments are confidential and intended exclusively for the person to whom the email is addressed. Please see our Privacy Policy

Are you interested in Fusion5’s COVID-19 business update?  
Please visit https://www.fusion5.co.nz/covid-19-update/

--
You received this message because you are subscribed to the Google Groups "OpenROAD Users Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openroad-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openroad-users/7b3ee4e4-68b1-bfff-3c11-9174042a734f%40shift7solutions.com.au.

Bodo Bergmann

unread,
Jun 30, 2021, 4:46:02 AM6/30/21
to openroa...@googlegroups.com

Even if the user is not doing anything there could still be event processing (which requires CPU), e.g.:

 

  • Timed User events (sent with delay)
  • External Events - from some COM/ActiveX components the application uses
  • Database events (though that would probably not apply in your case as you are connected to a SQLServer database)

 

Have you excluded those scenarios?

 

It would also be good to know what the process is actually doing.

Monitoring tools like Process Monitor (https://docs.microsoft.com/en-us/sysinternals/downloads/procmon) could help.

 

Bodo.

 

Bodo Bergmann
Engineering Architect
Actian | OpenROAD Engineering
www.actian.com
GESELLSCHAFTSANGABEN: Actian Germany GmbH | Sitz der Gesellschaft: Halenreie 42, 22359 Hamburg | Geschäftsführung: Stephen Padgett, Marc Monahan | Handelsregister: Amtsgericht Hamburg | HRB 135991 | USt-IdNr: DE252449897

Reply all
Reply to author
Forward
0 new messages