innodb_thread_concurrency
2013-09-08 19:39
260 查看
innodb_thread_concurrency ,用于限制能够进入innodb层的线程数
当进入innodb层调用read_row/write_row/update_row/delete_row时,会检查已经进入innodb的线程数:innodb_srv_conc_enter_innodb
如果已经满了,就会等待innodb_thread_sleep_delay毫秒尝试一次
如果再次失败,则进入到一个FIFO队列sleep
当在innodb层完成操作后,会调用innodb_srv_conc_exit_innodb退出innodb层
当线程进入时,获得一段时间片innodb_concurrency_tickets,在时间片范围内,该线程就无需检测,直接进入innodb
理论上讲,我们可以把innodb_thread_concurrency设置为(cpu数+磁盘数)*2,但这需要取决于具体的应用场景
innodb_commit_concurrency ,用于限制在innodb层commit阶段的线程数,大多数情况下,默认值已经足够。
--------------------------
innodb_write_io_threads
用于写脏页的线程数
innodb_read_io_threads
用于从磁盘读文件块的线程数
thread_cache_size
线程在使用完成后,不是退出,而是存放到list中,这样减小了重复创建线程的开销,
这个值的设置应跟内存相关的:mem = (thread_cache_size) * (thread_stack)
max_connections
MySQL层最大允许的连接请求数,注意如果设置的过大,可能会引起很大的额外开销:线程切换开销。目前比较流行的优化方案是使用线程池 来保存请求队列,建立有限的work线程来处理连接,换句话说,就算max_connections设置的再大,那也要受innodb_thread_concurrency的 限制。
当进入innodb层调用read_row/write_row/update_row/delete_row时,会检查已经进入innodb的线程数:innodb_srv_conc_enter_innodb
如果已经满了,就会等待innodb_thread_sleep_delay毫秒尝试一次
如果再次失败,则进入到一个FIFO队列sleep
当在innodb层完成操作后,会调用innodb_srv_conc_exit_innodb退出innodb层
当线程进入时,获得一段时间片innodb_concurrency_tickets,在时间片范围内,该线程就无需检测,直接进入innodb
理论上讲,我们可以把innodb_thread_concurrency设置为(cpu数+磁盘数)*2,但这需要取决于具体的应用场景
innodb_commit_concurrency ,用于限制在innodb层commit阶段的线程数,大多数情况下,默认值已经足够。
--------------------------
innodb_write_io_threads
用于写脏页的线程数
innodb_read_io_threads
用于从磁盘读文件块的线程数
thread_cache_size
线程在使用完成后,不是退出,而是存放到list中,这样减小了重复创建线程的开销,
这个值的设置应跟内存相关的:mem = (thread_cache_size) * (thread_stack)
max_connections
MySQL层最大允许的连接请求数,注意如果设置的过大,可能会引起很大的额外开销:线程切换开销。目前比较流行的优化方案是使用线程池 来保存请求队列,建立有限的work线程来处理连接,换句话说,就算max_connections设置的再大,那也要受innodb_thread_concurrency的 限制。
相关文章推荐
- MySQL InnoDB配置并发线程( innodb_thread_concurrency)
- 15.6.6 Configuring Thread Concurrency for InnoDB
- Mysql 版本引发的问题之thread_concurrency和innodb_thread_con
- 关于Mysql thread_concurrency和innodb_thread_concurren
- Mess with innodb_thread_concurrency (mysql与多cpu)
- 关于innodb_thread_concurrency参数 并发控制
- Java Thread&Concurrency(1): 深入理解Fork-Join并发执行框架
- JMeter Concurrency Thread Group阶梯式加压
- mysql innodb master_thread伪代码整理
- think in java - concurrency - task && thread
- Java Thread&Concurrency(12): 深入理解AbstractExecutorService及其实现原理
- 知识库--Concurrency+ThreadPool+Executors(79)
- Java Thread&Concurrency(2): 深入理解ConcurrentSkipListMap实现原理
- 14.6.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB 主线程IO 速率:
- Java Thread&Concurrency(13): 深入理解ConcurrentLinkedQueue及其实现原理
- innoDB 线程分析之Master Thread
- scala-school_concurrency in scala—Thread based
- 14.6.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB 主线程IO 速率:
- Java Thread&Concurrency(14): 深入理解条件队列(Condition)及其实现原理
- innodb master thread 工作原理