Hello,
I am trying to plockstat on some cpu intensive Oracle processes but get no
result:
# plockstat -x dynvarsize=50m -x aggsize=50m -A -n 5 -p 26602
0
Does anybody know why ? What sould I change to get some results ?
I have tried different parameters (including bigger dynvarsize/aggsize) but
still no reult.
(This is Solaris 10 - sorry but there is no other forum for this kind of
questions :-))
Regards
Przemyslaw Bak (przemol)
----------------------------------------------------------------
Najwieksza baza najtanszych ofert mieszkaniowych
http://linkint.pl/f2a0e
Hi Przemyslaw,
It may be that the Oracle process doesn''t use built-in locking
primitives. You can test that theory by doing this:
# dtrace -p <pid> -n ''plockstat$target:::{ @[probename] =
count(); }''
<wait for a bit and hit ^C>
This will show you the raw plockstat probes that fired. If you see no
output, that indicates that Oracle isn''t using the core locking
primitives in which case you''ll need to craft your own scripts for
monitoring their locks.
Adam
On Tue, Aug 9, 2011 at 1:37 AM, <przemolicc at poczta.fm>
wrote:> Hello,
>
> I am trying to plockstat on some cpu intensive Oracle processes but get no
result:
> # plockstat -x dynvarsize=50m -x aggsize=50m -A -n 5 -p 26602
> ? ? 0
>
> Does anybody know why ? What sould I change to get some results ?
> I have tried different parameters (including bigger dynvarsize/aggsize) but
still no reult.
>
> (This is Solaris 10 - sorry but there is no other forum for this kind of
questions :-))
>
>
> Regards
> Przemyslaw Bak (przemol)
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> ----------------------------------------------------------------
> Najwieksza baza najtanszych ofert mieszkaniowych
> http://linkint.pl/f2a0e
> _______________________________________________
> dtrace-discuss mailing list
> dtrace-discuss at opensolaris.org
>
--
Adam Leventhal, Delphix
http://dtrace.org/blogs/ahl
275 Middlefield Road, Suite 50
Menlo Park, CA 94025
http://www.delphix.com
Hi Adam,
thank you for you answer.
The behaviour I had described is random: once a 30 dtraces I get some result.
I also did your test:
# time dtrace -p 23390 -n ''plockstat$target:::{ @[probename] = count();
}''
dtrace: description ''plockstat$target:::'' matched 49 probes
dtrace: pid 23390 has exited
rw-acquire 19
rw-release 19
mutex-acquire 114884
mutex-release 114884
real 53m37.896s
user 0m7.684s
sys 0m16.986s
It seems that Oracle is using built-in locking primitives.
Regards
Przemek
On Tue, Aug 09, 2011 at 09:01:59AM -0700, Adam Leventhal
wrote:> Hi Przemyslaw,
>
> It may be that the Oracle process doesn''t use built-in locking
> primitives. You can test that theory by doing this:
>
> # dtrace -p <pid> -n ''plockstat$target:::{ @[probename] =
count(); }''
> <wait for a bit and hit ^C>
>
> This will show you the raw plockstat probes that fired. If you see no
> output, that indicates that Oracle isn''t using the core locking
> primitives in which case you''ll need to craft your own scripts for
> monitoring their locks.
>
> Adam
>
> On Tue, Aug 9, 2011 at 1:37 AM, <przemolicc at poczta.fm> wrote:
> > Hello,
> >
> > I am trying to plockstat on some cpu intensive Oracle processes but
get no result:
> > # plockstat -x dynvarsize=50m -x aggsize=50m -A -n 5 -p 26602
> > ? ? 0
> >
> > Does anybody know why ? What sould I change to get some results ?
> > I have tried different parameters (including bigger
dynvarsize/aggsize) but still no reult.
> >
> > (This is Solaris 10 - sorry but there is no other forum for this kind
of questions :-))
> >
> >
> > Regards
> > Przemyslaw Bak (przemol)
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
----------------------------------------------------------------
Nie masz czym pisac? U nas to znajdziesz!
http://linkint.pl/f2a05
Hey Przemek,
1. Since you''re not seeing any contention probes fire, it''s
not
surprising that you never (rarely) see output from plockstat.
2. I''ve confirmed with an Oracle user that the database indeed rolls
its own locking primitives.
3. I imagine that the lock events that you''re seeing are internal to
various libraries. You can confirm this by running the following
script:
dtrace -p <pid> -n ''plockstat$target:::{ @[probename, ustack()] =
count(); }''
ADam
2011/8/10 <przemolicc at poczta.fm>:> Hi Adam,
>
> thank you for you answer.
> The behaviour I had described is random: once a 30 dtraces I get some
result.
> I also did your test:
>
> # time dtrace -p 23390 -n ''plockstat$target:::{ @[probename] =
count(); }''
> dtrace: description ''plockstat$target:::'' matched 49
probes
> dtrace: pid 23390 has exited
>
> ?rw-acquire ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 19
> ?rw-release ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 19
> ?mutex-acquire ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?114884
> ?mutex-release ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?114884
>
> real ? ?53m37.896s
> user ? ?0m7.684s
> sys ? ? 0m16.986s
>
> It seems that Oracle is using built-in locking primitives.
>
> Regards
> Przemek
>
>
> On Tue, Aug 09, 2011 at 09:01:59AM -0700, Adam Leventhal wrote:
>> Hi Przemyslaw,
>>
>> It may be that the Oracle process doesn''t use built-in locking
>> primitives. You can test that theory by doing this:
>>
>> # dtrace -p <pid> -n ''plockstat$target:::{ @[probename]
= count(); }''
>> <wait for a bit and hit ^C>
>>
>> This will show you the raw plockstat probes that fired. If you see no
>> output, that indicates that Oracle isn''t using the core
locking
>> primitives in which case you''ll need to craft your own scripts
for
>> monitoring their locks.
>>
>> Adam
>>
>> On Tue, Aug 9, 2011 at 1:37 AM, ?<przemolicc at poczta.fm> wrote:
>> > Hello,
>> >
>> > I am trying to plockstat on some cpu intensive Oracle processes
but get no result:
>> > # plockstat -x dynvarsize=50m -x aggsize=50m -A -n 5 -p 26602
>> > ? ? 0
>> >
>> > Does anybody know why ? What sould I change to get some results ?
>> > I have tried different parameters (including bigger
dynvarsize/aggsize) but still no reult.
>> >
>> > (This is Solaris 10 - sorry but there is no other forum for this
kind of questions :-))
>> >
>> >
>> > Regards
>> > Przemyslaw Bak (przemol)
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> ----------------------------------------------------------------
> Nie masz czym pisac? U nas to znajdziesz!
> http://linkint.pl/f2a05
> _______________________________________________
> dtrace-discuss mailing list
> dtrace-discuss at opensolaris.org
>
--
Adam Leventhal, Delphix
http://dtrace.org/blogs/ahl
275 Middlefield Road, Suite 50
Menlo Park, CA 94025
http://www.delphix.com
On Wed, Aug 10, 2011 at 07:51:14AM -0700, Adam Leventhal wrote:> Hey Przemek, > > 1. Since you''re not seeing any contention probes fire, it''s not > surprising that you never (rarely) see output from plockstat.Just a few minutes ago I did: # plockstat -x dynvarsize=200m -x aggsize=200m -A -e 5 -n 5 -s 30 -p 20943 0 Mutex hold ------------------------------------------------------------------------------- Count nsec Lock Caller 24 68266 libc.so.1`libc_malloc_lock libodm.so.1`odm_io+0x5c nsec ---- Time Distribution --- count Stack 65536 |@@@@@@@@@@@@@@@@@@@@@@@ | 23 libc.so.1`malloc+0x6c 131072 |@ | 1 libodm.so.1`odm_io+0x5c oracle`ksfd_odmwat+0x2ac oracle`ksfdwtio+0x464 oracle`ksfdwat1+0x94 oracle`ksfdrwat0+0x220 oracle`kcflci+0x1c oracle`kcblco+0x6c> 2. I''ve confirmed with an Oracle user that the database indeed rolls > its own locking primitives. > > 3. I imagine that the lock events that you''re seeing are internal to > various libraries. You can confirm this by running the following > script: > > dtrace -p <pid> -n ''plockstat$target:::{ @[probename, ustack()] = count(); }''Since the output is quite long I give a part of it: mutex-acquire libc.so.1`mutex_lock_impl+0xc0 -- 1 mutex-acquire libc.so.1`mutex_lock_impl+0xc0 -- 1 mutex-acquire libc.so.1`mutex_lock_impl+0xc0 -- 1 mutex-acquire libc.so.1`mutex_lock_impl+0xc0 -- ... mutex-release libc.so.1`mutex_unlock+0xc8 -- 1 mutex-release libc.so.1`mutex_unlock+0xc8 -- 1 mutex-release libc.so.1`mutex_unlock+0xc8 -- 1 mutex-release libc.so.1`mutex_unlock+0xc8 -- 1 mutex-release libc.so.1`mutex_unlock+0xc8 ... mutex-release libc.so.1`mutex_unlock+0xc8 -- 160 mutex-release libc.so.1`mutex_unlock+0xc8 -- 160 mutex-release libc.so.1`mutex_unlock+0xc8 -- 160 mutex-release libc.so.1`mutex_unlock+0xc8 -- 160 mutex-release libc.so.1`lmutex_unlock+0x38 mutex-release libc.so.1`lmutex_unlock+0x38 libc.so.1`localtime_r+0xc4 oracle`slgtds+0x2c oracle`slgtd+0xc oracle`kcmgts+0xc oracle`kcblgr+0x924 oracle`kcblio+0x154 oracle`kcblnb+0x420 oracle`kdblnb+0x54 oracle`kdblailb+0x7e4 oracle`kdblai+0x528 oracle`klclil1r+0xb4 oracle`qerltRop+0x258 oracle`qerrmPFR+0x1f4 oracle`qerrmOdcb+0x4 oracle`ttcfour+0x1fd4 oracle`ttcdrv+0x4f4 oracle`nioqwa+0x3c oracle`upirtrc+0x484 oracle`kpurcsc+0x70 160 Regards Przemek ---------------------------------------------------------------- Dziesiatki tysiecy ofert domow i mieszkan! Ogladaj >> http://linkint.pl/f2a0c