Hi! I am a total noob about dtrace but I hope it could solve my huge problem - I have a process that synchronizes data between two Solaris 10 boxes (part of a cluster) which should do 3 things: 1) read files from disk 2) compare files to "other side" 3) transfer differences (or all files) The problem is that sync tome is becoming longer and longer lately without obvious reasons (number of files to sync didn''t have any huge raise nor network became any more saturated than before) - so I need to know which part of processes take most time in execution. I''ve looked through io providers but am not sure how to make a dtrace script to get some useful data. If someone could give me pointers what to do - I would really appreciate it. -o. -- This message posted from opensolaris.org
Marty Itzkowitz
2009-Jul-18 02:46 UTC
[dtrace-discuss] please - need a proces profiling help
You could try the Sun Studio Performance Analyzer on the process.
It should tell you where the time is being spent.
http://developers.sun.com/sunstudio/overview/topics/analyzer_index.html
Marty Itzkowitz
On 7/17/09 5:40 PM, Okie wrote:> Hi!
>
> I am a total noob about dtrace but I hope it could solve my huge problem -
I have a process that synchronizes data between two Solaris 10 boxes (part of a
cluster) which should do 3 things:
>
> 1) read files from disk
> 2) compare files to "other side"
> 3) transfer differences (or all files)
>
> The problem is that sync tome is becoming longer and longer lately without
obvious reasons (number of files to sync didn''t have any huge raise nor
network became any more saturated than before) - so I need to know which part of
processes take most time in execution.
>
> I''ve looked through io providers but am not sure how to make a
dtrace script to get some useful data. If someone could give me pointers what to
do - I would really appreciate it.
>
> -o.
>
Hi Martyi, thanks for reply. I looked into sun studio performance analyzer and it seems from quick start description that I would have to compile my replicator with some parameters. Is that right? If it is, then it''s a no-go since I don''t have a source. This is a commercial product. -- This message posted from opensolaris.org
Marty Itzkowitz
2009-Jul-19 00:48 UTC
[dtrace-discuss] please - need a proces profiling help
No special compilation is needed. We can show more if you compiled -g --
per source-line information, and static functions, but you would see
most functions anyway. Try it.
Marty
On 7/18/09 7:46 AM, Okie wrote:> Hi Martyi,
>
> thanks for reply. I looked into sun studio performance analyzer and it
seems from quick start description that I would have to compile my replicator
with some parameters. Is that right?
>
> If it is, then it''s a no-go since I don''t have a source.
This is a commercial product.
>
Adam Leventhal
2009-Jul-20 04:09 UTC
[dtrace-discuss] please - need a proces profiling help
> The problem is that sync tome is becoming longer and longer lately > without obvious reasons (number of files to sync didn''t have any > huge raise nor network became any more saturated than before) - so I > need to know which part of processes take most time in execution. > > I''ve looked through io providers but am not sure how to make a > dtrace script to get some useful data. If someone could give me > pointers what to do - I would really appreciate it.Hi Okie, The first provider I suggest you bring to bear in the profile provider. You can find the documentation here: http://wikis.sun.com/display/DTrace/profile+Provider A very simple script might help you get started: profile:::profile-1001 { @[ustack()] = count(); } Alternatively, the sched provider can help you understand why a process is giving up the CPU: http://wikis.sun.com/display/DTrace/sched+Provider Some of the examples in that chapter will be instructional. Adam -- Adam Leventhal, Fishworks http://blogs.sun.com/ahl
You may also try latencytop which is a new tool. No scripting needed :) http://opensolaris.org/os/project/latencytop/ I believe it works for recent Solaris 10 updates, all it requires is that you have glib2 installed from here: http://www.sunfreeware.com/programlistintel10.html#glib Okie wrote:> Hi! > > I am a total noob about dtrace but I hope it could solve my huge > problem - I have a process that synchronizes data between two Solaris > 10 boxes (part of a cluster) which should do 3 things: > > 1) read files from disk > 2) compare files to "other side" > 3) transfer differences (or all files) > > The problem is that sync tome is becoming longer and longer lately > without obvious reasons (number of files to sync didn''t have any huge > raise nor network became any more saturated than before) - so I need > to know which part of processes take most time in execution. > > I''ve looked through io providers but am not sure how to make a dtrace > script to get some useful data. If someone could give me pointers > what to do - I would really appreciate it. > > -o.