Discussion:
plockstat - no result
przemolicc-IjDXvh/
2011-08-09 08:37:54 UTC
Permalink
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
Adam Leventhal
2011-08-09 16:01:59 UTC
Permalink
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
Post by przemolicc-IjDXvh/
Hello,
# 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
--
Adam Leventhal, Delphix
http://dtrace.org/blogs/ahl

275 Middlefield Road, Suite 50
Menlo Park, CA 94025
http://www.delphix.com
przemolicc-IjDXvh/
2011-08-10 07:36:59 UTC
Permalink
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
Post by Adam Leventhal
Hi Przemyslaw,
It may be that the Oracle process doesn't use built-in locking
<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
Post by przemolicc-IjDXvh/
Hello,
# 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
Adam Leventhal
2011-08-10 14:51:14 UTC
Permalink
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
Post by przemolicc-IjDXvh/
Hi Adam,
thank you for you answer.
The behaviour I had described is random: once a 30 dtraces I get some result.
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
Post by Adam Leventhal
Hi Przemyslaw,
It may be that the Oracle process doesn't use built-in locking
<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
Post by przemolicc-IjDXvh/
Hello,
# 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
--
Adam Leventhal, Delphix
http://dtrace.org/blogs/ahl

275 Middlefield Road, Suite 50
Menlo Park, CA 94025
http://www.delphix.com
przemolicc-IjDXvh/
2011-08-16 09:31:17 UTC
Permalink
Post by Adam Leventhal
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
Post by Adam Leventhal
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
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

Loading...