cancel
Showing results for 
Search instead for 
Did you mean: 

measure CPU utilization on SAP ASE

Former Member
0 Kudos

Hi All,

 

What is the best approach to collect CPU utilization

from ASE instance. ?

My main goal is to get a picture of CPU counters each minute

but be the last intrusive as possible.

i am using sysmon each minute then grab the value and save

into a table , but i believe this is not a good pratice.

another solution is to use a dbcc monitor command to start the counter

wait one minute , read it from master.sysmonitors and close the counter with another dbcc

command.

Also, there is a third option using monEngine, but as this table increment the counter

the result is not very accurate, at lest i am not getting the right result

Does anyone have another suggestion , or a better technique that can grab the value

correctly and not been intrusive as the sysmon ?

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi

I think quite good option to monitor CPU is monsysload.

This is very usefull mda table when you want quickly check CPU utilization without counting delta.

Former Member
0 Kudos

Thanks TomasZ,

this table seems to be very promising. will do  some tests over it.

thanks

former_member182259
Contributor
0 Kudos

This should be collected from monEngine and delta'd and put into SAPTOOLS database for you.   If you use DBACockpit, it will display the data.   If not, you may have to look at extracting/plotting the data out of SAPTOOLS.   I would suggest looking at both monEngine and monThread.

For monEngine/monThread and most MDA tables, all you need to do is subtract sample #1 from sample #2....so just do the delta.   Result should be extremely accurate as I do this all the time without issue.

Former Member
0 Kudos

Thank you Jeff, for the quick reply.

Unfortunately SAPTools or DBACockpit is not in use here.

Not sure how monThread can be helpful to get cpu % usage.

I am still looking for monEngine as possible candidate, but i notice the counters reset after

~60 seconds.

What about the counters from global variables , like @@cpu_busy, @@io_busy and @@idle

can them be used with the same approach with delta values ?


thanks

former_member182259
Contributor
0 Kudos

Are you running sp_sysmon every minute???  If so - STOP!!!.    sp_sysmon shares some of the same counters with MDA and clears them (actually it shouldn't by default - but if you are running with clear option, it will) - which impacts MDA data such as monEngine.

Global variables are per connection - not really usable for this.   You really want to use monEngine and/or monThread.   monThread is the basis for monEngine and tracks CPU usage in ticks - which can be divided from totals to get CPU %.

SAPTOOLS data collection is set up by ATM - no need for DBACockpit for it - HOWEVER, DBACockpit is the *best* place to start for SAP on ASE.   It reports a lot of the MDA data in a context that is best for SAP applications - especially for statement cache and query performance stuff.   Not sure why you are not using it and then struggling with sp_sysmon.....it is kinda like ignoring an airplane and trying to fly by flapping two big cardboard wings.  

Former Member
0 Kudos

lol.

No, we don't have sysmon running every minute. Otherwise i would have already been shot by the duck hunters. lol.

Our ASEs are for general applications , not for SAP yet.

I will try the monTables.

Do you have any code suggestion that results into a precise CPU utilization ?

Regards

Helio