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
_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to