SlideShare a Scribd company logo
MySQL高并发下线程调度问题
     希羽hickey
MySQL高并发下线程调度问题
• 背景
 – 调度策略的问题及优化方法
• 测试
 – 原版和线程池版本的性能对比
• 原理
 – 线程池的优化篇原理
• 实战
 – 适用的场景及存在的问题,以及推荐的配置
背景
• trunk-5.5版本在一定并发压力下(1000),查询
  不同商品不会受到更新减库存的压力影响。而
  达到一定并发后(2000),查询开始变慢
 –   1474线程被suspend
 –   52线程写binlog
 –   33线程在提交事务
 –   查询全部堵在分配读视图(trx_assign_read_view)上
• 普通查询也会trx_start, 分配事务id等。慢的原
  因是事务获取kernel mutex时竞争很大。
背景
• MySQL层的线程调度策略
 – one-thread (适用于嵌入式系统)
 – thread-per-connection (默认)
• 带来的问题
 – 并发更新热点记录: http://hickey.in/?p=275
 – MySQL层线程管理及调度的额外开销
• 优化的策略
 – 在大并发场景下,减少MySQL层真正干活的线程数
   量,达到Server层和InnoDB层整体性能最优的目的
 – MariaDB线程池:
   https://kb.askmonty.org/en/threadpool-in-55/9511/
测试(数据源自IC业务,仅供参考)
线程调度策略对比
线程池--线程池在MySQL中的位置
线程池在MySQL中的位置
线程池—worker线程周期
• 每个工作线程
的运行过程如右

更多参考:
http://hickey.in/?p=288
线程池适用场景及线上运行情况
• 测试的基本结论




• 线上应用场景
核心业务的2备中的一备库,经过双12的实战考验
线程池的参数配置推荐
• thread_pool_oversubscribe 设置较大可以提
  高线程同时工作的个数,减少不必要的等
  待、唤醒操作。推荐3;
• threadpool_stall_limit ,减少此值可以提高
  睡眠线程的工作效率,推荐100
• Thread_pool_size ,建议设置成CPU的个数
• thread_pool_max_threads ,推荐最大连接
  数,避免线程池调度上引发的死锁

More Related Content

PDF
基于MySQL的分布式数据库实践
PPTX
了解应用服务器
PDF
服务器基准测试-叶金荣@CYOU-20121130
PDF
美团点评技术沙龙010-点评RDS系统介绍
PPT
低成本和高性能MySQL云架构探索
PPTX
我为什么要选择RabbitMQ
PPTX
如何针对业务做DB优化
PDF
美团点评技术沙龙14:美团云对象存储系统
基于MySQL的分布式数据库实践
了解应用服务器
服务器基准测试-叶金荣@CYOU-20121130
美团点评技术沙龙010-点评RDS系统介绍
低成本和高性能MySQL云架构探索
我为什么要选择RabbitMQ
如何针对业务做DB优化
美团点评技术沙龙14:美团云对象存储系统

What's hot (20)

PPTX
了解集群
PDF
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
PDF
MySQL技术分享:一步到位实现mysql优化
PPTX
Erlang开发实践
PDF
MySQL设计、优化、运维
PPTX
MySQL压力测试经验
PPTX
Mysql调优
PPT
新浪微博分布式缓存与队列-2013版
PDF
高效Linux SA
PDF
豆瓣网技术架构变迁
PPTX
高性能队列Fqueue的设计和使用实践
PDF
MySQL运维那些事
PPTX
Cgroup lxc在17173 iaas应用池中应用
PPTX
分布式缓存与队列
PPT
快速搭建高性能服务端
PPT
04.web sphere培训 应用websphere优化
PDF
新浪微博Feed服务架构
PPT
Database.Cache&Buffer&Lock
PDF
有道云笔记架构简介
PDF
大型系统的缓存标准化之路—从主从多级重client到一体化
了解集群
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
MySQL技术分享:一步到位实现mysql优化
Erlang开发实践
MySQL设计、优化、运维
MySQL压力测试经验
Mysql调优
新浪微博分布式缓存与队列-2013版
高效Linux SA
豆瓣网技术架构变迁
高性能队列Fqueue的设计和使用实践
MySQL运维那些事
Cgroup lxc在17173 iaas应用池中应用
分布式缓存与队列
快速搭建高性能服务端
04.web sphere培训 应用websphere优化
新浪微博Feed服务架构
Database.Cache&Buffer&Lock
有道云笔记架构简介
大型系统的缓存标准化之路—从主从多级重client到一体化
Ad

Viewers also liked (6)

PDF
NoSQL and MySQL webinar - best of both worlds
PDF
MySQL 开发
PDF
NoSQL Plus MySQL From MySQL Practitioner\'s Point Of View
PDF
MySQL 5.5&5.6 new features summary
PDF
MySQL 5.6 config 優化
PDF
What's New in MySQL 5.6
NoSQL and MySQL webinar - best of both worlds
MySQL 开发
NoSQL Plus MySQL From MySQL Practitioner\'s Point Of View
MySQL 5.5&5.6 new features summary
MySQL 5.6 config 優化
What's New in MySQL 5.6
Ad

Similar to MySQL的并发线程性能问题 (20)

PDF
主库自动切换 V2.0
PDF
MySQL自动切换设计与实现
PDF
曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731
PDF
基于MySQL开放复制协议的同步扩展
PDF
DBA学院课程之:MySQL故障诊断案例
PDF
NoSQL误用和常见陷阱分析
PDF
Redis在唯品会的应用实践.pdf
KEY
111030 gztechparty-小路-云时代的mysql
PDF
基于My sql的分布式数据库实践
PPTX
My sql explain & select
PDF
百度数据库中间层
PPT
Mysql 培训-优化篇
PDF
阿里集团MySQL并行复制特性
PPTX
大型电商的数据服务的要点和难点
PDF
mercury
PPSX
浅谈 My sql 性能调优
PPSX
MySQL应用优化实践
PDF
基于My sql的分布式数据库实践 公开
PPTX
Nosql三步曲
PDF
02.wls概览
主库自动切换 V2.0
MySQL自动切换设计与实现
曲琳 购物搜索引擎架构的变与不变——一淘网搜索技术分享0731
基于MySQL开放复制协议的同步扩展
DBA学院课程之:MySQL故障诊断案例
NoSQL误用和常见陷阱分析
Redis在唯品会的应用实践.pdf
111030 gztechparty-小路-云时代的mysql
基于My sql的分布式数据库实践
My sql explain & select
百度数据库中间层
Mysql 培训-优化篇
阿里集团MySQL并行复制特性
大型电商的数据服务的要点和难点
mercury
浅谈 My sql 性能调优
MySQL应用优化实践
基于My sql的分布式数据库实践 公开
Nosql三步曲
02.wls概览

MySQL的并发线程性能问题