Interpreting global cache waits


We have 2-node OPS cluster (, mostly OLTP. The system is
(predictably) susceptible to high CPU saturations. From the 10046
traces I see PCM lock contention for indexes of hot (high
updates/inserts tables):

global cache lock null to x
buffer busy due to global cache
global cache lock open x

I'm planning to tackle this by doing hash partitioning and splitting
the sequence ranges on the nodes. But my question is as follows: how
do I prove that the "problem" is the system being starved of CPU / DLM
resources (ie not storage)? That is to say, are the waits indication
of storage waits, slow cluster interconnect, or saturated CPUs? E.g.
when DLM is waiting to convert consistent read PCM lock to exclusive
("global cache lock null to x"), presumably it's waiting for the other
instance to release the block. But what is taking the time - high CPU=20
queues or the fact that the other instance is waiting on something else?



Other related posts: