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

来源:互联网 发布:建筑工程计算器软件 编辑:程序博客网 时间:2024/06/15 12:18
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.在一个系统有多个处理器,缓存失效的影响可能变的更加明显, 你可能会增加最大延迟

0 0