首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

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

2012-06-14 
show innodb status有关Spin Waits,Spin Rounds,Os Waits是如何解释的show innodb status有关Spin Waits,S

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.

热点排行