Application Server Profiling

Posted by thiago.daniel@dtsconsultoria.com.br on 27-Aug-2014 08:42

Friends,

Good morning,

I have an application that consumes this resource in a Progress AppServer.

This application connects to an APP Server that runs a procedure and it
returns the result.

One doubt is there about the performance of this appserver as well as
programs run by him.

The way that we found would hold a Profile of the same.

NATIVE there any way to make this product profiler so I can
see the time spent from start to finish processing?

I'm trying to use the Profiler Control tool, however I have not been
able to run on AppServer.

As said, several programs are run on Appserver, including programs that
call programs.

Can you give me a reference on how to use the tool in this scenario?

In the APP Server PF file I configured these parameters below however I
am getting the error 1403 for option -profile.N�o know if the lines are
correct, if not, can please send me an example of how it would be correct?

Must be possible to perform the Deploy the application at runtime.

At the present moment I do not have access to the source code.

-PROFILE
-COVERAGE
-DESCRIPTION "AS Profiler"
-FILENAME "/temp/profile/prof.out"
-LISTINGS "/ Temp / profile / wrk"

Thank you all,

Thiago

All Replies

Posted by TheMadDBA on 27-Aug-2014 11:30

Without access to the source code the profiler may not be much use to you. All you will end up with is a list of programs and line numbers. If you have a vendor that will actually look into the output and make changes then it might be helpful.

I wouldn't advise setting the parameters in the parameter files since every appserver session will be trying to write to the same files.

Depending on which state model the appserver is running you could look into the connect and disconnect procedures as a way to dynamically turn on and off the profiler as well as control where the files go.

A word of warning: Be careful running the profiler in production environments because there are bugs in various versions that will crash the sessions. Also you will see drastically increased temporary file usage while profiling is running.

Posted by thiago.daniel@dtsconsultoria.com.br on 27-Aug-2014 13:21
Good afternoon,

I even have access to the source code, however,
my area of ​​expertise is restricted to infrastructure, not have is permission to modify the source code.


This is why I would, if possible, use the resource profile as a tool AppServer session.

Any working example of the use of the APP Server Configuration Profile?
You can send me?

Thank you,

Thiago

[collapse]On 27-08-2014 13:31, TheMadDBA wrote:

Without access to the source code the profiler may not be much use to you. All you will end up with is a list of programs and line numbers. If you have a vendor that will actually look into the output and make changes then it might be helpful.

I wouldn't advise setting the parameters in the parameter files since every appserver session will be trying to write to the same files.

Depending on which state model the appserver is running you could look into the connect and disconnect procedures as a way to dynamically turn on and off the profiler as well as control where the files go.

A word of warning: Be careful running the profiler in production environments because there are bugs in various versions that will crash the sessions. Also you will see drastically increased temporary file usage while profiling is running.


--

Thiago Luiz Daniel F.Santana
Consultor de Tecnologia.
T: (31) 3568-3008
F: (31) 3568-3007
C: (31) 8329-2742
thiago.daniel@dtsconsultoria.com.br
www.dtsconsultoria.com.br

[/collapse]
Posted by Thomas Mercer-Hursh on 27-Aug-2014 13:32

Point being that the profiler output is not meaningful without examining the source that it relates to.  At most, it is going to tell you that a lot of time is being spent in a particular program, not why or what it is doing and whether that time is reasonable.

Posted by ChUIMonster on 27-Aug-2014 13:53
Don't be so fast to dismiss lack of source code.

Even without knowing anything about the source knowing that a particular line# in such and such a program is responsible for a significant check of runtime is valuable.

That tiny little bit of knowledge can be an extremely useful nugget when talking to the people who *do* have the source code.

Or, when combined with _tablestat and _indexstat, they can perhaps provide some ideas about how one might tune the db differently.
 
The profiler is a very valuable and underused capability.

 
On 8/27/14, 2:33 PM, Thomas Mercer-Hursh wrote:
Reply by Thomas Mercer-Hursh

Point being that the profiler output is not meaningful without examining the source that it relates to.  At most, it is going to tell you that a lot of time is being spent in a particular program, not why or what it is doing and whether that time is reasonable.

Stop receiving emails on this subject.

Flag this post as spam/abuse.



-- 
Tom Bascom
603 396 4886
tom@greenfieldtech.com
Posted by Thomas Mercer-Hursh on 27-Aug-2014 14:00

Point being, somebody has to have the source code to get very far.

Posted by ChUIMonster on 27-Aug-2014 14:11
Point being that "I don't have access to source" is not a reason to not profile.

There is a world of difference between calling a vendor and complaining "it's slow" and calling and saying "line 1638 of xyzzy.p is taking 3 hours to execute".


On 8/27/14, 3:01 PM, Thomas Mercer-Hursh wrote:
Reply by Thomas Mercer-Hursh

Point being, somebody has to have the source code to get very far.

Stop receiving emails on this subject.

Flag this post as spam/abuse.



-- 
Tom Bascom
603 396 4886
tom@greenfieldtech.com
Posted by TheMadDBA on 27-Aug-2014 14:32

Well that is why I said "If you have a vendor that will actually look into the output and make changes then it might be helpful." :-)

Posted by TheMadDBA on 27-Aug-2014 14:49

Like I said previously you are going to need to do something specific with code to get useful profiler results on an appserver pool OR you are going to need to set up an appserver with a min/max of 1 agent., otherwise all of the agents will try and write to the same output files.

If you set up one agent then you can do the following...

1) Create a text file... profiler.cfg or whatever you want to call it and put these lines in the file...

-OUTFILE /mydirectory/prof.out

-DESCRIBE MyDescription

2) Add –profile /fullpathto/profiler.cfg to the pf file for the appserver

3) start the appserver

4) run the code

5) stop the appserver using asbman -stop

6) load the file into the profiler tool and look around

Also a pretty good idea to download protop and see what is going on in the database. You will probably have to tweak the tablerangesize and indexrangesize parameters to make sure all of the tables and indexes are being tracked.

Posted by ChUIMonster on 27-Aug-2014 14:50
I suspect that we are in vehement agreement.

Even famously recalcitrant vendors have a hard time pointing fingers elsewhere when confronted with profiler data.

Of course they can always fall back on "you're the first person to ever experience that" ;)


On 8/27/14, 3:33 PM, TheMadDBA wrote:
Reply by TheMadDBA

Well that is why I said "If you have a vendor that will actually look into the output and make changes then it might be helpful." :-)

Stop receiving emails on this subject.

Flag this post as spam/abuse.



-- 
Tom Bascom
603 396 4886
tom@greenfieldtech.com
Posted by jmls on 27-Aug-2014 14:52
nah - "it works well on my machine" is my favourite

On 27 August 2014 20:50, ChUIMonster
wrote:
> Re: Application Server Profiling
> Reply by ChUIMonster
> I suspect that we are in vehement agreement.
>
> Even famously recalcitrant vendors have a hard time pointing fingers
> elsewhere when confronted with profiler data.
>
> Of course they can always fall back on "you're the first person to ever
> experience that" ;)
>
>
> On 8/27/14, 3:33 PM, TheMadDBA wrote:
>
> RE: Application Server Profiling
> Reply by TheMadDBA
>
> Well that is why I said "If you have a vendor that will actually look into
> the output and make changes then it might be helpful." :-)
>
> Stop receiving emails on this subject.
>
> Flag this post as spam/abuse.
>
>
>
> --
> Tom Bascom
> 603 396 4886
> tom@greenfieldtech.com
>
> Stop receiving emails on this subject.
>
> Flag this post as spam/abuse.



--
Julian Lyndon-Smith
IT Director,
dot.r
http://www.dotr.com
Posted by TheMadDBA on 27-Aug-2014 14:55

I have had the experience of dealing with a few of those vendors. Sadly most of the time the conversation goes something like this...

1) "That line number can't be right, it's just a comment/define/etc" because they are looking at the source code directly or a listing and not a debug-list.

2) After clarifying that and finding out that it is actually a for each/find of some kind they say "Your system is slow" because it works fine in their tiny test database.

Every once in a while they will admit a problem and eventually fix it. But the customer has to be large enough to get their attention.

This thread is closed