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

lanbaibai 2012-05-31 10:52:23
show innodb status有关Spin Waits,Spin Rounds,Os Waits是如何解释的。谢谢
...全文
240 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rotel-刘志东 2012-06-01
  • 打赏
  • 举报
回复
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.

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧