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.