show innodb status有关Spin Waits,Spin Rounds,Os Waits是怎么解释的

show innodb status有关Spin Waits,Spin Rounds,Os Waits是怎么解释的

show innodb status有关Spin Waits,Spin Rounds,Os Waits是如何解释的

show innodb status有关Spin Waits,Spin Rounds,Os Waits是如何解释的。谢谢



http://www.mysqlperformanceblog.com/2011/09/02/understand-innodb-spin-waits-win-a-percona-live-ticket/




Innodb在获得mutex时是两阶段的。如果Mutex被别人锁住了,那么它并不会像教科书里面的那样,直接就sleep等待被唤醒了。而是先做一个循环,不断去获取mutex锁,称之为spin-wait,然后才sleep。因为sleep等待被唤醒的代价还是比较高的。通过spin-wait,可以明显降低这个开销。

 

?Mutex spin waits 5870888 这个代表的是线程获得锁,但是被别人锁住了。所以它得首先spin-wait。

?rounds 19812448 是线程在spin-wait循环检查mutex是否已经释放的探测次数。

?OS waits 375285 是spin-wait完成以后,还是没有获得mutex,不得不sleep的次数。

这个主要是评估mutex 获取不到的比例。

这里请求mutex不到的情况是 5870888,但是经过spin-wait,实际上最终只有375285次。也就是说只有60%需要真正sleep,40%稍微等一下就能拿到mutex.

show innodb status有关Spin Waits,Spin Rounds,Os Waits是怎么解释的

相关文章:

你感兴趣的文章:

标签云: