14.4.6 Configuring Thread Concurrency for InnoDB 配置Thread 并发
- 14.4.6 Configuring Thread Concurrency for InnoDB 配置Thread 并发
- InnoDB 使用操作系统threads 来处理用户的事务请求。(事务可以执行很多请求到InnoDB 在它们提交或者回
- 滚前)
- 在现代的操作系统和多核服务器,
- 上下文切换是有效的,很多的负载运行很多在没有任何并发数限制。
- 可扩展性改进在MySQL 5.5和以上版本按降低了并发数量的限制
- 它是有助于减少上下文切换在threads之间,InnoDB 可以使用一些技术来限制并发执行操作系统threads的数
- 量
- (因此,在任何一个时间点处理的请求数).
- 当InnoDB 接收一个新的请求从一个用户会话,如果threads的并发数量在一个预先定义的限制,
- 新的请求sleep 短暂的时间在它再次尝试之前,请求不能被重新安排在sleep 被放入到 first-in/first-out
- 队列
- 你可以限制并发线程数 通过设置
- innodb_thread_concurrency.
- mysql> show variables like '%innodb_thread_concurrency%';
- +---------------------------+-------+
- | Variable_name | Value |
- +---------------------------+-------+
- | innodb_thread_concurrency | 0 |
- +---------------------------+-------+
- 1 row in set (0.00 sec)
- 一旦 执行的threads 达到这个限制,额外的threads 会等待数微妙,
- 此前, 它需要经验来找到优化的值对于innodb_thread_sleep_delay,
- 优化的值可以改变依赖复杂, 在MySQL 5.6.3 和更高的版本,你可以设置配置选项
- innodb_adaptive_max_sleep_delay
- 到允许的对于innodb_thread_sleep_delay,
- InnoDB 自动调整innodb_thread_sleep_delay 高或者低 依赖于当前的thread-scheduling activity
- 这个动态调整有助于thread scheduling 机制来工作平顺的 在系统是负载较轻的和接近于满负荷
- InnoDB 使线程sleep只有当 并发的线程数受限制, 当对于线程数没有限制的时候,
- 所有的线程都会被调度。也就是说, 如果 innodb_thread_concurrency是0,
- innodb_thread_sleep_delay 会被忽略。
- 当这里有限制限制时( 当innodb_thread_concurrency 值大于0),
- InnoDB 降低上下文负载通过允许多个请求 在单个SQL语句执行期间来进入InnoDB 没有关注
- innodb_thread_concurrency的设置。
- 因为一个SQL语句(比如一个关联)
- 可能 包含多个行记录在InnoDB,InnoDB 分配一个指定数量的tickets
- 允许一个线程被调度多次 以最小的开销
- 当一个SQL 语句启动, 一个thread 没有tickets, 它必须观察innodb_thread_concurrency。
- 一旦线程有权进入InnoDB, 它会被分配一个 rickets的number 可以用于随后进入InnoDB 来执行记录操作。
- 如果tickets 用完, thread 被驱逐,innodb_thread_concurrency 再次观察,可以放置thread 到
- 等待thread 的first-in/first-out queue。
- 当thread 是再次允许进入InnoDB, tickets 再次被分配。
- 分配的tickets 的数量是通过全局变量 innodb_concurrency_tickets指定,默认是5000
- mysql> show variables like '%innodb_concurrency_tickets%';
- +----------------------------+-------+
- | Variable_name | Value |
- +----------------------------+-------+
- | innodb_concurrency_tickets | 5000 |
- +----------------------------+-------+
- 1 row in set (0.00 sec)
- 一个thread 等待一个lock 是给一个ticket 一旦locks 变的可用
- 那些变量的争取的值依赖你的环境和负载, 尝试一些不同的值来决定最合适的值对你的应用。
- 在限制并发执行threads的数量, 重新查询配置选项 可能改善InnoDB的性能
14.4.6 Configuring Thread Concurrency for InnoDB 配置Thread 并发的更多相关文章
- 14.6.6 Configuring Thread Concurrency for InnoDB 配置线程并发
14.6.6 Configuring Thread Concurrency for InnoDB 配置线程并发 InnoDB 使用操作系统线程来处理请求(用户事务) 事务可能执行很多次在它们提交或者回 ...
- 14.6.11 Configuring Optimizer Statistics for InnoDB 配置优化统计信息用于InnoDB
14.6.11 Configuring Optimizer Statistics for InnoDB 配置优化统计信息用于InnoDB 14.6.11.1 Configuring Persisten ...
- 15.6.6 Configuring Thread Concurrency for InnoDB
innodb_thread_concurrency 设置inndb线程个数,如果超过则休眠一段时间,时间根据 innodb_thread_sleep_delay 单位为微妙,然后放进队列. innod ...
- MySQL InnoDB配置并发线程( innodb_thread_concurrency)
http://www.ywnds.com/?p=9821 一.thread_concurrency 首先,最重要的一点,这个参数已经在最新版本的MySQL中被移除了,官方最新5.7版本的doc上面对t ...
- 14.6.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB 主线程IO 速率:
14.6.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB 主线程IO 速率: 主线程 在InnoDB 是一个线程 执行各种任务在后台. ...
- 14.4.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB Master Thread I/O Rate
14.4.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB Master Thread I/O Rate 主的master thread ...
- 14.6.7 Configuring the Number of Background InnoDB IO Threads 配置InnoDB IO Threads的数量
14.6.7 Configuring the Number of Background InnoDB IO Threads 配置InnoDB IO Threads的数量 InnoDB 使用后台线程来服 ...
- 14.6.2 Configuring InnoDB for Read-Only Operation
14.6.2 Configuring InnoDB for Read-Only Operation 配置InnoDB只读操作 你可以查询InnoDB 表MySQL 数据目录是一个只读介质,通过启用 - ...
- 14.4.7 Configuring the Number of Background InnoDB IO Threads 配置 后台InnoDB IO Threads的数量
14.4.7 Configuring the Number of Background InnoDB IO Threads 配置 后台InnoDB IO Threads的数量 InnoDB 使用bac ...
随机推荐
- linux下执行sh文件报错:oswatcher_restart.sh: line 13: ./startOSW.sh: Permission denied
1 查看执行sh文件的内容 [root@xxxdb0402 dbscripts]# more oswatcher_restart.sh #!/usr/bin/ksh #export oswdir=` ...
- 利用WebClient上传参数及文件流到远程ashx服务
原文 利用WebClient上传参数及文件流到远程ashx服务 1 思路: WebClient.UploadFile()方法可以上传文件:UploadData()方法可以上传数据参数:如何合二为一既上 ...
- 京JS 2013 - A two-day conference in Beijing for the JavaScript and Node.js community
京JS 2013 - A two-day conference in Beijing for the JavaScript and Node.js community 关于技术大会 京JS 2013 ...
- HDOJ 1800 Flying to the Mars 盲目搜索......................so easy...........
check the original problem here:http://acm.hdu.edu.cn/showproblem.php?pid=1800 the AC code: #include ...
- vld(Visual Leak Detector) 内存泄露检测工具
初识Visual Leak Detector 灵活自由是C/C++语言的一大特色,而这也为C/C++程序员出了一个难题.当程序越来越复 杂时,内存的管理也会变得越加复杂,稍有不慎就会出现内存问题.内存 ...
- 硬盘被误格式化或Ghost还原后的数据恢复
硬盘格式化(Ghost还原)后的数据恢复 ---diskgenius使用之数据恢复 问题引出:计算机中病毒后用Ghost版本的winxp安装,由于安装途中选择了把映像安装到硬盘而不是分区,安装好后只剩 ...
- perl eval函数
29.2.32 eval • eval BLOCK • eval EXPR • eval eval 关键字在Perl 里起两种不同的但相关的作用.这些目的是用两种形式的语法 来表现的, eval BL ...
- 1.1.4-学习Opencv与MFC混合编程之---画图工具 画椭圆
源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961690 1. 增加‘椭圆’菜单项,设置属性,添加类向导: 2. 编辑消息处理函数, ...
- 树状DP
紫皮,各种,非原创 树状数组在我的理解就是在决策过程中具有层次关系,像是树一样,具有上下级关系或者上级对上级一定程度的限制条件 uva 12186 工人的请愿书 下属中不小于 T% 的人签字时会签字递 ...
- Codeforces Round #311 (Div. 2)
我仅仅想说还好我没有放弃,还好我坚持下来了. 最终变成蓝名了,或许这对非常多人来说并不算什么.可是对于一个打了这么多场才好不easy加分的人来说,我真的有点激动. 心脏的难受或许有点是由于晚上做题时太 ...