狠狠撸

狠狠撸Share a Scribd company logo
如何针对业务做顿叠优化
吴炳锡
http://wubx.net
About ME
?@吴炳锡
?MySQL DBA 技能分享QQ群:373900864
?中国CMUG核心组织者, MySQL布道者
?10年+ 专职MySQL DBA,丰富的Support支撑能力
?熟悉MySQL高可用方案
?丰富的大型系统后端存储规划设计
?熟悉多机房架构设计及运维
?丰富的自动化平台开发及实践
http://imysql.com http://mysqlsupport.cn 2
背景
http://imysql.com http://mysqlsupport.cn 3
小张 ,你说做了DB优化,
但线上的系统还慢,好象
效果不大呀!!! +++…
大纲
? 什么时间进行优化
? DBA介入时间及角色
? 如何找到业务系统的优化点
? 线上系统压测开展
? 讨论交流
http://imysql.com http://mysqlsupport.cn 4
什么时间进行优化
http://imysql.com http://mysqlsupport.cn 5
开发总监:过早优化是万恶之源
DBA:我来的时间他们已经把程序开发完了,比较烂
我刚加入,说了他们也不听,只能任他们烂下去了!!!
猪一样的队友出现了,哈哈
开发:我们DBA太烂~~~
DBA:我们开发太挫~~~
什么时间进行优化
? 项目开始
? 学习别人怎么做,了解开始在做什么
? 举例:
? 有一个需求 用户浏览时显示已读和未读标识
http://imysql.com http://mysqlsupport.cn 6
建一个表标识出来?
哈,猪也想到了
?
什么时间进行优化
? BloomFilter解决的问题
? Hash Key空间问题
? 通过时间换空间,引入了多次计算
? 引入的问题
? 有可能会出现错误
http://imysql.com http://mysqlsupport.cn 7
什么时间进行优化
? 项目进行中
? 从我们DBA的角度看看还能帮助别人做什么
? 举例
? 线下布署怎么到线上规范化布署
? 通过开全量日志观查SQL中可优化点
? 早做准备,纠正开发环境中不爽的问题
? 加强测试
http://imysql.com http://mysqlsupport.cn 8
什么时间进行优化
? 项目上线
? DBA就是开发顾来的保姆,要把别人孩子养活了
? 举例
? 上线后是不是在预估的范围内
? 1个月左右的反馈开发过程
? 交维后:线上从库压力大了,你怎么办?
? 还需要开发协助吗?
http://imysql.com http://mysqlsupport.cn 9
什么时间进行优化
? 总结
? 不要报怨,弄清楚,团队当前的首要任务
? 做别人不善长的事,做好的互补人员
? 优化什么时间都可以做,关建要明白当前最重要的目标
http://imysql.com http://mysqlsupport.cn 10
大纲
? 什么时间进行优化
? DBA介入时间及角色
? 如何找到业务系统的优化点
? 线上系统压测开展
? 讨论交流
http://imysql.com http://mysqlsupport.cn 11
DBA介入时间及角色
http://imysql.com http://mysqlsupport.cn 12
时间 角色 主要职责
初期 架构师或是学习 规划项目开发中主要技术点
及实现方式
开发期 Bug或是性能提示人员 帮着开发指出低级的Bug及
协助开发人员做一些性能优
化
线上阶段 应用保姆或监护权 应用运行是不是那样,有什
么优化点,如何做…
DBA介入时间及角色
? DBA说真的是越早介入,越好。
? 但介入早的DBA一定要有业务分析能力,能分析出来业务的关建
性能瓶颈点
? 如大家觉的微博业务性能瓶颈点在哪? 平时没事多想想?
http://imysql.com http://mysqlsupport.cn 13
大纲
? 什么时间进行优化
? DBA介入时间及角色
? 如何找到业务系统的优化点
? 线上系统压测开展
? 讨论交流
http://imysql.com http://mysqlsupport.cn 14
如何找到业务系统的优化点
? 找到核心目标
? 支付系统:
? 微信线下支付 VS 红包
? DB挂了,怎么办?
? 飞信
? 圣诞,元旦,春节 大压力
? 网站
? DB挂了,首页还可以显示吗?
? 抢购类业务
? DB怎么设计才能抗的住
http://imysql.com http://mysqlsupport.cn 15
如何找到业务系统的优化点
? 支付系统
? 前提:
? 线下支付不能停(
? 数据必须一致
? 分级对待(基于失败设计)
? 红包在不可用的状态下(发不出去),但不能让线下支付不能用
? 多写(业务层实现),多写一致性问题,怎么对帐较快
? 基于状态级的支付流程设计
? 假设DB不可写,在可读情况下进行支付
? 以上是怎么做到呢?
? 日常逻辑+思考
http://imysql.com http://mysqlsupport.cn 16
如何找到业务系统的优化点
? 飞信项目
? 用户可以达到,进行聊天
? 问题: 过节容易挂
? 通过高峰期抓取SQL,通过SQL采样分析DB内业务主要形态
? 针对业务优化,缓存,写合并
? 拆分,从骨干业务拆分出去
? SQL抓取
? Percona版本
? Set global long_query_time=0; select sleep(5); set global long_query_time=1;
http://imysql.com http://mysqlsupport.cn 17
如何找到业务系统的优化点
? 网站类业务
? 以前在一个做彩票类的公司,大概月流水5千万左右的交易
? DB一挂,主站也不会显示了
? 然后公司的客服电话就….
? 怎么优化呢?
http://imysql.com http://mysqlsupport.cn 18
如何找到业务系统的优化点
? 抢购类业务
? 我觉的这种业务一直是对DB的一种DDOS
? 解决方案
? 在业务前面引入接入层
? 按需要放量
? 排队进到后面
? 保持DB高效吞吐
http://imysql.com http://mysqlsupport.cn 19
如何找到业务系统的优化点
? 总结
? 找到业务核心
? 弄明白关键业务保证
? 重点保障
? 追求可用,合理的引入状态机
http://imysql.com http://mysqlsupport.cn 20
大纲
? 什么时间进行优化
? DBA介入时间及角色
? 如何找到业务系统的优化点
? 线上系统压测开展
? 讨论交流
http://imysql.com http://mysqlsupport.cn 21
开展线上系统压测
? 只有经过压测的系统才是有底的系统
? 号称的系统都是不靠谱的系统
? 压测机可以考虑购买云主机
? 在业务低峰期压测
http://imysql.com http://mysqlsupport.cn 22

More Related Content

如何针对业务做顿叠优化

Editor's Notes

  • #7: 介绍一下产濒辞辞尘算法
  • #14: 想啥呢? 大家有没有经历过面试过程中,别人问你一个问题,自已觉的学过,但不知道怎么答。脑子空白了。