SlideShare una empresa de Scribd logo
1 de 21
5.6 nutshell -- 性能优化
2014-04-15
5.6的改进之处
可扩展性(性能)
优化器&执行
复制
可操作性
面向开发者的新功能
安全
只读事务优化
• 问题:RO-TRX为rw-trx,ReadView构造开销
• 解决:1) 移植对Bug49169的修复 2)移除ro-
trx-list 3)移植线程池(后面再提)
• 效果: TC RO-TRX模型测试,比AliSQL-t1提高
36%,比AliSQL-5.5提高45%, 8.7WQPS/6msRT
• 后续:1. RO移除RV 2)研究官方的100W QPS
数据文件并发扩展优化
• 现象:一个ibd扩展空间,导致全局锁
• 本质:fio_io过程持有 fil_system->mutex (仅
扩展过程,正常读写不需要)
• 解决:1)一把小锁来替代大锁 (AliSQL-5.5) 2)
对node新增标志位being_extended标记 (5.6)
死锁检测算法优化
• 触发:加锁不成功需要等待时判断
• 本质:检测循环依赖
• 优化:典型的push-pop深度遍历
死锁检测算法优化
更快的锁原语
• 问题:flush pipeline
• 解决:在spin-wait-delay中增加PAUSE,在在
退出spin时,给CPU一个hint, 避免引起内存
序列冲突,导致CPU不必要的预测(优化)
InnoDB并发控制的优化
• 5.5的FIFO— condwait/signal
• 5.6的smart adaptive – sleep/retry
• 矛盾: condwait/signal线程的上下文切换开
销 VS. sleep-retry的效率问题
• 求和:线程池
• 效果:不担心RT和大并发 (RO-TRX)
多个独立的purge后台线程
• 目的:1) MVCC 2)DELETE
• 改进: srv_master_thread中独立出来,并
且提供batch功能,限制一次最大purge数量
的间隔时间等
• 缺陷:稳定性
"Kernel Mutex"的拆分
• “巴黎会议”—G5
• Lock_sys->mutex
• Trx_sys->mutex
数据词典缓存
• 问题: 10W级别的表
• 解决:缓存,多了就踢
改进自适应刷脏算法
• 问题:如何判断一次刷多少脏页?
• 改进:待优化
CRC32 checksum算法
• 与fast-checksum兼容问题
• 效率:目前看最快
全局锁LOCK_open的拆分
• 表的metadata(MySQL Server层)增加一系
列mutex
• LOCK_open只保护新表的创建和表metadata
的变更
– metadata_locks_hash_instances
– metadata_locks_cache_size
支持多个
table_open_cache_instances实例
• 性能大概能有~10%的提升 Dim的blog, 线上环境
5.5中统配为table_open_cache为2000个,instance
推荐16(table_open_cache_instances)
ICP (Index Condition Pushdown)
• 利用索引捞数据时,将可过滤的where条件
传递到SE层,减少回表的次数
• 典型的场景: select * from db.table where and
idx_c1>? and idx_c2<? and non-idx_c3=?
• 其执行的逻辑解释
MRR (Multi-Range-Read)
• 顺序读非聚簇索引中结点, 将符合条件的PK
全部捞出来并排序,然后再到聚簇索引中
一次性把记录捞出来处理。
• 典型场景:SELECT * FROM t WHERE
key_part1 >= 1000 AND key_part1 < 2000
AND key_part2 = 10000;
• 其执行的逻辑解释
MRR
BKA(Batched Key Access)
更快的ORDER BY ... LIMIT ...
• 基本原理:filesort
• 优化点:如果足够小,select部分全部放在
sort buffer中
总结
• 5.6还不错,有优化空间,有期待!
• 后期讨论:移步ATA

Más contenido relacionado

La actualidad más candente

Osc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOsc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOpenSourceCamp
 
高级服务器设计和实现2
高级服务器设计和实现2高级服务器设计和实现2
高级服务器设计和实现2Feng Yu
 
Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)ykdsg
 
Jvm基础调优实践(v1.0)
Jvm基础调优实践(v1.0)Jvm基础调优实践(v1.0)
Jvm基础调优实践(v1.0)ddviplinux
 
快速搭建高性能服务端
快速搭建高性能服务端快速搭建高性能服务端
快速搭建高性能服务端moonbingbing
 
云计算环境中Ssd在cassandra测试的性能表现
云计算环境中Ssd在cassandra测试的性能表现 云计算环境中Ssd在cassandra测试的性能表现
云计算环境中Ssd在cassandra测试的性能表现 july19850903
 
美团点评技术沙龙010-Redis Cluster运维实践
美团点评技术沙龙010-Redis Cluster运维实践美团点评技术沙龙010-Redis Cluster运维实践
美团点评技术沙龙010-Redis Cluster运维实践美团点评技术团队
 
Sun jdk 1.6内存管理 -使用篇
Sun jdk 1.6内存管理 -使用篇Sun jdk 1.6内存管理 -使用篇
Sun jdk 1.6内存管理 -使用篇bluedavy lin
 
Mysql基于ssd flashcache实践
Mysql基于ssd flashcache实践Mysql基于ssd flashcache实践
Mysql基于ssd flashcache实践gettyying
 
美团点评技术沙龙010-美团Atlas实践
美团点评技术沙龙010-美团Atlas实践美团点评技术沙龙010-美团Atlas实践
美团点评技术沙龙010-美团Atlas实践美团点评技术团队
 
Sun JDK 1.6内存管理 -调优篇
Sun JDK 1.6内存管理 -调优篇Sun JDK 1.6内存管理 -调优篇
Sun JDK 1.6内存管理 -调优篇bluedavy lin
 
Redis分享
Redis分享Redis分享
Redis分享yiihsia
 
了解集群
了解集群了解集群
了解集群Feng Yu
 
Golang 高性能实战
Golang 高性能实战Golang 高性能实战
Golang 高性能实战rfyiamcool
 
并发编程交流
并发编程交流并发编程交流
并发编程交流bluedavy lin
 
Java常见问题排查
Java常见问题排查Java常见问题排查
Java常见问题排查bluedavy lin
 
MongoDB at Qihoo 360
MongoDB at Qihoo 360MongoDB at Qihoo 360
MongoDB at Qihoo 360MongoDB
 
MySQL和IO(下)
MySQL和IO(下)MySQL和IO(下)
MySQL和IO(下)Feng Yu
 

La actualidad más candente (20)

Osc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOsc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresql
 
高级服务器设计和实现2
高级服务器设计和实现2高级服务器设计和实现2
高级服务器设计和实现2
 
Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)
 
Jvm基础调优实践(v1.0)
Jvm基础调优实践(v1.0)Jvm基础调优实践(v1.0)
Jvm基础调优实践(v1.0)
 
快速搭建高性能服务端
快速搭建高性能服务端快速搭建高性能服务端
快速搭建高性能服务端
 
云计算环境中Ssd在cassandra测试的性能表现
云计算环境中Ssd在cassandra测试的性能表现 云计算环境中Ssd在cassandra测试的性能表现
云计算环境中Ssd在cassandra测试的性能表现
 
美团点评技术沙龙010-Redis Cluster运维实践
美团点评技术沙龙010-Redis Cluster运维实践美团点评技术沙龙010-Redis Cluster运维实践
美团点评技术沙龙010-Redis Cluster运维实践
 
JVM及其调优
JVM及其调优JVM及其调优
JVM及其调优
 
Sun jdk 1.6内存管理 -使用篇
Sun jdk 1.6内存管理 -使用篇Sun jdk 1.6内存管理 -使用篇
Sun jdk 1.6内存管理 -使用篇
 
Mysql基于ssd flashcache实践
Mysql基于ssd flashcache实践Mysql基于ssd flashcache实践
Mysql基于ssd flashcache实践
 
美团点评技术沙龙010-美团Atlas实践
美团点评技术沙龙010-美团Atlas实践美团点评技术沙龙010-美团Atlas实践
美团点评技术沙龙010-美团Atlas实践
 
Sun JDK 1.6内存管理 -调优篇
Sun JDK 1.6内存管理 -调优篇Sun JDK 1.6内存管理 -调优篇
Sun JDK 1.6内存管理 -调优篇
 
Redis分享
Redis分享Redis分享
Redis分享
 
了解集群
了解集群了解集群
了解集群
 
Tpcc mysql
Tpcc mysqlTpcc mysql
Tpcc mysql
 
Golang 高性能实战
Golang 高性能实战Golang 高性能实战
Golang 高性能实战
 
并发编程交流
并发编程交流并发编程交流
并发编程交流
 
Java常见问题排查
Java常见问题排查Java常见问题排查
Java常见问题排查
 
MongoDB at Qihoo 360
MongoDB at Qihoo 360MongoDB at Qihoo 360
MongoDB at Qihoo 360
 
MySQL和IO(下)
MySQL和IO(下)MySQL和IO(下)
MySQL和IO(下)
 

Similar a 5.6 nutshell - 性能优化

服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130Jinrong Ye
 
大规模高性能计算集群优化.pdf
大规模高性能计算集群优化.pdf大规模高性能计算集群优化.pdf
大规模高性能计算集群优化.pdfchachachat
 
04.web sphere培训 应用websphere优化
04.web sphere培训 应用websphere优化04.web sphere培训 应用websphere优化
04.web sphere培训 应用websphere优化littlecong
 
MySQL压力测试经验
MySQL压力测试经验MySQL压力测试经验
MySQL压力测试经验Jinrong Ye
 
淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化丁 宇
 
My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎frogd
 
第三届阿里中间件性能挑战赛季军答辩ppt - rapids团队
第三届阿里中间件性能挑战赛季军答辩ppt - rapids团队第三届阿里中间件性能挑战赛季军答辩ppt - rapids团队
第三届阿里中间件性能挑战赛季军答辩ppt - rapids团队煜林 车
 
How do we manage more than one thousand of Pegasus clusters - backend part
How do we manage more than one thousand of Pegasus clusters - backend partHow do we manage more than one thousand of Pegasus clusters - backend part
How do we manage more than one thousand of Pegasus clusters - backend partacelyc1112009
 
Lamp优化实践
Lamp优化实践Lamp优化实践
Lamp优化实践zhliji2
 
构建基于Lamp的网站架构
构建基于Lamp的网站架构构建基于Lamp的网站架构
构建基于Lamp的网站架构Cosey Lee
 
4.陈群-唯品会大规模Redis集群存储架构演进.pdf
4.陈群-唯品会大规模Redis集群存储架构演进.pdf4.陈群-唯品会大规模Redis集群存储架构演进.pdf
4.陈群-唯品会大规模Redis集群存储架构演进.pdfStevenShing
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰Scourgen Hong
 
Redis在唯品会的应用实践.pdf
Redis在唯品会的应用实践.pdfRedis在唯品会的应用实践.pdf
Redis在唯品会的应用实践.pdfjaydenhu
 
Apache Kylin Data Summit 2019: Kyligence Presentation
Apache Kylin Data Summit 2019: Kyligence PresentationApache Kylin Data Summit 2019: Kyligence Presentation
Apache Kylin Data Summit 2019: Kyligence PresentationTyler Wishnoff
 
Java应用性能测试与分析
Java应用性能测试与分析Java应用性能测试与分析
Java应用性能测试与分析Frank Lee
 
Lvs在大规模网络环境下的应用pukong
Lvs在大规模网络环境下的应用pukongLvs在大规模网络环境下的应用pukong
Lvs在大规模网络环境下的应用pukongMichael Zhang
 
Monitor is all for ops
Monitor is all for opsMonitor is all for ops
Monitor is all for ops琛琳 饶
 
九州通小型机扩Vg大小(20090416)
九州通小型机扩Vg大小(20090416)九州通小型机扩Vg大小(20090416)
九州通小型机扩Vg大小(20090416)heima911
 
淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践丁 宇
 
微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构Chen Fei
 

Similar a 5.6 nutshell - 性能优化 (20)

服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130
 
大规模高性能计算集群优化.pdf
大规模高性能计算集群优化.pdf大规模高性能计算集群优化.pdf
大规模高性能计算集群优化.pdf
 
04.web sphere培训 应用websphere优化
04.web sphere培训 应用websphere优化04.web sphere培训 应用websphere优化
04.web sphere培训 应用websphere优化
 
MySQL压力测试经验
MySQL压力测试经验MySQL压力测试经验
MySQL压力测试经验
 
淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化
 
My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎
 
第三届阿里中间件性能挑战赛季军答辩ppt - rapids团队
第三届阿里中间件性能挑战赛季军答辩ppt - rapids团队第三届阿里中间件性能挑战赛季军答辩ppt - rapids团队
第三届阿里中间件性能挑战赛季军答辩ppt - rapids团队
 
How do we manage more than one thousand of Pegasus clusters - backend part
How do we manage more than one thousand of Pegasus clusters - backend partHow do we manage more than one thousand of Pegasus clusters - backend part
How do we manage more than one thousand of Pegasus clusters - backend part
 
Lamp优化实践
Lamp优化实践Lamp优化实践
Lamp优化实践
 
构建基于Lamp的网站架构
构建基于Lamp的网站架构构建基于Lamp的网站架构
构建基于Lamp的网站架构
 
4.陈群-唯品会大规模Redis集群存储架构演进.pdf
4.陈群-唯品会大规模Redis集群存储架构演进.pdf4.陈群-唯品会大规模Redis集群存储架构演进.pdf
4.陈群-唯品会大规模Redis集群存储架构演进.pdf
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
 
Redis在唯品会的应用实践.pdf
Redis在唯品会的应用实践.pdfRedis在唯品会的应用实践.pdf
Redis在唯品会的应用实践.pdf
 
Apache Kylin Data Summit 2019: Kyligence Presentation
Apache Kylin Data Summit 2019: Kyligence PresentationApache Kylin Data Summit 2019: Kyligence Presentation
Apache Kylin Data Summit 2019: Kyligence Presentation
 
Java应用性能测试与分析
Java应用性能测试与分析Java应用性能测试与分析
Java应用性能测试与分析
 
Lvs在大规模网络环境下的应用pukong
Lvs在大规模网络环境下的应用pukongLvs在大规模网络环境下的应用pukong
Lvs在大规模网络环境下的应用pukong
 
Monitor is all for ops
Monitor is all for opsMonitor is all for ops
Monitor is all for ops
 
九州通小型机扩Vg大小(20090416)
九州通小型机扩Vg大小(20090416)九州通小型机扩Vg大小(20090416)
九州通小型机扩Vg大小(20090416)
 
淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践
 
微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构
 

Más de Hui Liu

MySQL的并发线程性能问题
MySQL的并发线程性能问题MySQL的并发线程性能问题
MySQL的并发线程性能问题Hui Liu
 
InnoDB并发控制在密集型并发更新下的问题
InnoDB并发控制在密集型并发更新下的问题InnoDB并发控制在密集型并发更新下的问题
InnoDB并发控制在密集型并发更新下的问题Hui Liu
 
DBA学院课程之:MySQL故障诊断案例
DBA学院课程之:MySQL故障诊断案例DBA学院课程之:MySQL故障诊断案例
DBA学院课程之:MySQL故障诊断案例Hui Liu
 
阿里集团MySQL特性(5.5介绍)
阿里集团MySQL特性(5.5介绍)阿里集团MySQL特性(5.5介绍)
阿里集团MySQL特性(5.5介绍)Hui Liu
 
阿里集团MySQL并行复制特性
阿里集团MySQL并行复制特性阿里集团MySQL并行复制特性
阿里集团MySQL并行复制特性Hui Liu
 
InnoDB IO优化
InnoDB IO优化InnoDB IO优化
InnoDB IO优化Hui Liu
 
S1: InnoDB AIO原理及相关bug分析
S1: InnoDB AIO原理及相关bug分析S1: InnoDB AIO原理及相关bug分析
S1: InnoDB AIO原理及相关bug分析Hui Liu
 

Más de Hui Liu (7)

MySQL的并发线程性能问题
MySQL的并发线程性能问题MySQL的并发线程性能问题
MySQL的并发线程性能问题
 
InnoDB并发控制在密集型并发更新下的问题
InnoDB并发控制在密集型并发更新下的问题InnoDB并发控制在密集型并发更新下的问题
InnoDB并发控制在密集型并发更新下的问题
 
DBA学院课程之:MySQL故障诊断案例
DBA学院课程之:MySQL故障诊断案例DBA学院课程之:MySQL故障诊断案例
DBA学院课程之:MySQL故障诊断案例
 
阿里集团MySQL特性(5.5介绍)
阿里集团MySQL特性(5.5介绍)阿里集团MySQL特性(5.5介绍)
阿里集团MySQL特性(5.5介绍)
 
阿里集团MySQL并行复制特性
阿里集团MySQL并行复制特性阿里集团MySQL并行复制特性
阿里集团MySQL并行复制特性
 
InnoDB IO优化
InnoDB IO优化InnoDB IO优化
InnoDB IO优化
 
S1: InnoDB AIO原理及相关bug分析
S1: InnoDB AIO原理及相关bug分析S1: InnoDB AIO原理及相关bug分析
S1: InnoDB AIO原理及相关bug分析
 

5.6 nutshell - 性能优化