I would start with lockstat to determine if there''s RW lock contention
(and lockstat is a DTrace consumer).
#lockstat -e4-7,34-35 sleep 60 > /var/tmp/rwlocks.out
The above will collect events on kernel reader/writer locks
(run "lockstat -h" to get a description of each event).
With that data, we can see if there are long RW lock hold
times, and the VxFS kernel routine issuing the call.
From that output, we should be able to write a D script
that does what you''re interested in doing - per-file RW lock
hold time tracking. I''m thinking about this now, and
will try to get this written for UFS (since I do not have
VxFS available).
Let us know what the lockstat output looks like, and
we''ll go from there.
Thanks,
/jim
Michael Jessen wrote:> I''m an Oracle DBA, a dtrace noob, and I''m attempting to
resolve an Oracle write performance problem on Solaris 10, Oracle 9iR2.
>
> The Oracle DBWR processes have poor write throughput writing to VxFS files.
I suspect that the problem may be with POSIX readers/writer file locking.
>
> Ideally I''d like to identify, for a given DBWR process,
readers/writer file lock contention on a datafile by datafile basis.
>
> Any guidance would be greatly appreciated,
>
> Kind regards, Michael
>