您的位置:首页 > 其它

14.4.9 Configuring Spin Lock Polling 配置Spin lock 轮询:

2016-06-28 10:40 369 查看
14.4.9 Configuring Spin Lock Polling  配置Spin lock 轮询:

很多InnoDB mutexes  和rw-locks 是保留一小段时间,在一个多核系统,

它可以更加有效的对于一个thread 不断的检查如果 它需要一个mutex or rw-lock

一段时间 在sleeping前。

如果 mutex or rw-lock 变的可用在这个轮询阶段,thread 可以继续,

在相同的时间片段,然而,太频繁的轮询通过多个共享对象的threads 可能会导致 “cache ping pong”,

不同的处理器失效彼此的cache的部分  InnoDB 最小化这个问题通过一个随机时间在随后的调查。

延迟实现为 一个Busy loop.

你能控制的最大延迟在测试一个mutex或者 rw-lock 使用参数  innodb_spin_wait_delay.

延迟loop 的周期 取决于 C编译器和目标处理器。(在100MHZ的Pentium 时代, 延迟的单位是微妙)

在一个系统当所有的处理器共享一个快速缓存,你可以降低最大延迟或者禁用 busy loop altogether by

setting innodb_spin_wait_delay=0.
在一个系统有多个处理器,

缓存失效的影响可能变的更加明显, 你可能会增加最大延迟
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: