优调科技技术总监 朱妤晴:技术前沿进展:系统自动化调优

须寒梅

2017/11/14 发布于 技术 分类

运维的智能化与自动化是IT向前发展的必然趋势,今年数据库自动调优系统OtterTune的出现让阿里等大企业的DBA惊问:要失业了吗?系统自动化调优技术来势汹汹,企业将从中获得何种好处?技术人员将如何进行提升,以利用系统自动化调优技术? 本次通过分享在华为Cloud+应用实例,介绍国际最前沿系统自动化调优工具BestConfig的使用案例,透彻剖析系统自动化调优的最新国际前沿技术。系统自动化调优不但可以通过减少运维人员的负担、减少企业人力资源的开销外,更可以让小企业即使负不起昂贵的专家费,也可以获得性能最优化的系统运行态。本次演讲将深入分析自动化系统性能优化可能为企业、行业和技术人员带来的5大方面好处。 本演讲主要面向企业CTO/技术总监/架构师/运维总监。

文字内容
1. 技术前沿进S展A朱C:妤系C晴2统01自7 动化调优
2. DBA要失业 SACC2017
3. 1 系统自动化调优介绍 2 系统调优的难点与挑战 提 纲 3 4 5 前应自沿动用S技案化A术调例C进优C展的20价1值7 6 如何使用自动化调优
4. 系统自动化调优 • 为了适应不同应用需求,系统在开发时就暴露了大量与 部署、应用场景相关的参数 • 这些参数与系统性能紧密相关 7– 需要对系统和应用有资深经验的技术人员来调优 C201• 系统自动化调优 SAC– 将这一过程自动化
5. 系统调优的挑战与难点 • 系统参数个数越来越多 – 适应更多的部署环境和应用场景 • 涉及的系统越来越多 17– 满足不同的应用负载需求 CC20• 参数设置与系统、应用紧密相关 SA– 性能曲线复杂多变
6. 系统调优的挑战与难点 • 系统参数个数越来越多 SACC2017
7. 系统调优的挑战与难点 • 涉及的系统越来越多 SACC2017
8. 系统调优的挑战与难点 • 参数设置与系统、应用紧密相关 – 不同系统导致不同的复杂性能曲面 – 不同应用负载导S致不A同C性C能2曲0面17
9. 系统调优的挑战与难点 • 参数设置与系统、应用紧密相关 – 不同硬件部署环境导致不同性能曲面 – 不同软件部署环S境导A致C不C同2性0能1曲7面
10. 系统调优的挑战与难点 • 系统参数个数越来越多 • 涉及的系统越来越多 7• 参数设置与系统、应用紧密相关 201– 系统、应用、硬件部署环境、软件部署环境等都能导 C致不同的性能曲面 SAC需要不同的系统性能调优路径
11. 系统调优的挑战与难点 • 人为调优模式 在高维参 确定启发式规则 基于样本 调整各参数设置值 数空间中 采样 进行性能 调优 收集 监控并观察效果 017• 问题: 运行测试 (参数性能) 样本 C2– 启发式规则需要大量专业知识与实践经验支持 AC• 一旦启发式规则错误,所有动作都是错的 S– 调优过程耗时耗力 • 不断重复进行实验直到 找到为止 或者,不调了、忍受着?
12. 系统调优的痛点 • 企业痛点 – 大公司 • 聘请调优专家成本高 17• 系统调优耗时长 20• 培养优秀调优人员周期长、开销大 ACC– 中小公司 S• 支付高昂调优专家费用,性价比低 • 系统性能不高,导致硬件开销大 • 难以迅速上手新系统,导致业务受限
13. 系统自动化调优的价值 • 辛苦的调优劳动 坐等系统运行到其最优性能 1. 仅调整系统参数值,即可使性能最大提升11倍 172. 节省人力开销 20将5人半年的工作减少为机器2天 ACC3. 减少对硬件的需求 S从每26个虚拟机中去掉1个 4. 更公平地测试和比较系统性能 5. 确定系统瓶颈 分组件组合调优
14. 系统自动化调优:应用案例 • Cloud+应用 – 云端虚拟机上部署Tomcat服务器 – 云端物理机使用的是ARMv8架构CPU – 虚拟机配置8核,4核用于网络,4核用于处理 17– 应用负载使得网络4核满载,处理4核利用率80% C20企业专家认为无法再进行性能调优了 SAC• 使用自动化调优工具BestConfig优化性能后 同一应用负载、同一系统 部署条件下: 使得可以从每26个虚拟机 的需求中减去1个
15. 系统自动化调优:前沿进展 • BestConfig BestConfig: Tapping the Performance Potential of Systems via Automatic Configuration Tuning – ACM SoCC 2017 – 可面向各种系统进行自动化参数调优,使性能最优 17– 如Spark、Hadoop、MySQL、Hive、Casandra、Tomcat等 C20– 甚至JVM!! SAC• OtterTune Automatic Database Management System Tuning Through Large-scale Machine Learning – SIGMOD 2017 – 受到阿里数据库团队的热切关注 – 仅面向数据库进行参数调优,如MySQL、PostgreSQL
16. 系统自动化调优:前沿进展 • OtterTune – 卡耐基梅隆大学数据库团队研发 – 关键技术: • 性能特征项匹配 17• 关键参数发现 SACC20• 光滑性能曲面自动优化
17. 系统自动化调优:前沿进展 • OtterTune – MySQL调优结果 – PostgreSQL调优S结果ACC2017
18. 系统自动化调优:前沿进展 • BestConfig 大数据系统 – – 中科院计算所,先进计算机系统研究中心 关键技术: 前沿探索小组 研发 • 高可扩展调优系统架构 17• 分割差异化采样算法 SACC20• 递归限定查找算法
19. 系统自动化调优:前沿进展 • BestConfig – 已应用于6个常见系统及JVM – 最多调优了109个参数 SACC2017
20. 系统自动化调优:前沿进展 • BestConfig – 参数较多,增加调优可进行测试次数:100  500 – Hadoop+Hive:性能提升2倍!! SACC2017
21. 系统自动化调优:前沿进展 • BestConfig – 发现了些你不知道的事情:网上一些调优规则是错的! – “MySQL的thread_cache_size值不要设置到超过200” – 使thread_cache_size=11987,性能也可以很好,甚至 SACC2017更好!!!
22. 系统自动化调优:前沿进展 • BestConfig vs. OtterTune 可调系统 当前最大性能提升结果 前期准备 调优终止条件设定 开源代码实现程度 BestConfig 通用,各种系统 √ SACC201711倍 √ 无需 √ 按时间、次数等 √ √调优整过程、全自动 OtterTune 数据库专用 6倍 参数性能样本数据库 长时间或人为观察 仅算法代码 取样算法 调优算法 样本个数需求 全覆盖、可扩展 √ √不依赖特定性能曲面 100以上即可 √ 普通随机算法 面向光滑曲面 1000+
23. 系统自动化调优的价值 • 辛苦的调优劳动 坐等系统运行到其最优性能 1. 仅调整系统参数值,即可使性能最大提升11倍 172. 节省人力开销 20将5人半年的工作减少为机器2天 ACC3. 减少对硬件的需求 S从每26个虚拟机中去掉1个 4. 更公平地测试和比较系统性能 5. 确定系统瓶颈 分组件组合调优
24. 系统自动化调优的价值 • 仅调整系统参数值,即可使性能最大提升11倍 118184 ops/sec SACC20121t7im98e1s5!ops/sec • 节省人力开销 – 5人半年 机器,自动化调优:2天! 人工调优极为困难 时间、人力成本开销极大
25. 系统自动化调优的价值 • 减少对硬件的需求 – 云端虚拟机上、系统性能自动化调优 同一应用负载、同一系统 7 部署条件下: 01 使得可以从每26个虚拟机 2 的需求中减去1个 SACC• 更公平地测试和比较系统性能 System Throughput (调优前) Throughput(调优后) Cassandra 12199 ops/sec 16015 ops/sec MySQL 9815 ops/sec 118184 ops/sec 能够为系统测 试与比较提供 更公平的起点
26. 系统自动化调优的好处 • 分组件组合调优,确定系统瓶颈 Cassandra 前端缓存系统 负载均+衡系统 Cassa+ndra SACC2017在相同负载下 分别调优 63% 定位 No gain! 前端缓存系统 + 负载均衡系统 瓶颈!
27. 系统自动化调优的价值 • 辛苦的调优劳动 坐等系统运行到其最优性能 1. 仅调整系统参数值,即可使性能 2. 3. 4. 节减更省公少硬人平件力地开开测销试销和S比A较C系C统2性0能17 5. 确定系统瓶颈
28. 如何使用BestConfig 进行自SA动CC化20调17优?
29. 使用BestConfig • 环境 – 实际应用部署环境,或 – 应用准上线环境 2017• 前提条件 ACC– 待调优系统或集群节点的IP地址,登录名和密码 S– 开放远程SSH登录系统的权限 – 下载BestConfig源码 https://github.com/zhuyuqing/bestconf
30. 使用BestConfig • 部署架构 SACC2017
31. 使用BestConfig 1) 配置文件修改 2) 系统启动、关闭 3) 测试启动、终止与性能获取 SACC20171. 在待调节系统或集群节点上部署好调优所需 shell脚本 2. 将调优工具部署到启动调优程序的机器节点 3. 修改调优工具的配置文件,以符合实际待调系统需求 4. 启动调优过程,生成最佳参数配置文件
32. 使用BestConfig • 以Spark为例 – Shell脚本 • 待调系统相关脚本 017 start.sh isStart.sh SACC2 stop.sh isClosed.sh terminateSystem.sh • 测试节点相关脚本  startTest.sh getTestResult.sh  terminateTest.sh isFinished.sh
33. 使用BestConfig • 以Spark为例 – Shell脚本——待调系统相关脚本 部署到Spark的Master节点和Worker节点的start.sh 和stop.sh 两个脚本有所不同 7• 部署到Master节点的脚本内容 (start.sh 和 stop.sh) SACC201start.sh stop.sh
34. 使用BestConfig • 以Spark为例 – Shell脚本——待调系统相关脚本 部署到Spark的Master节点和Worker节点的start.sh 和stop.sh 两个脚本有所不同 7• 部署到Worker节点的脚本内容 (start.sh 和 stop.sh) SACC201start.sh stop.sh
35. 使用BestConfig • 以Spark为例 – Shell脚本——待调系统相关脚本 • Worker 和 Master节点相同的脚本内容 (isStart.sh, terminateSystem.sh 和 isClosed.sh) SACC2017isStart.sh
36. 使用BestConfig • 以Spark为例 – Shell脚本——待调系统相关脚本 • Worker 和 Master节点相同的脚本内容 (isStart.sh, terminateSystem.sh 和 isClosed.sh) SACC2017terminateSystem.sh isClosed.sh
37. 使用BestConfig • 以Spark为例 – Shell脚本——测试节点相关脚本 startTest.sh isFinished.sh SACC2017
38. 使用BestConfig • 以Spark为例 – Shell脚本——测试节点相关脚本 getTestResult.sh SACC2017
39. 使用BestConfig • 以Spark为例 – Shell脚本——测试节点相关脚本 terminateTest.shSACC2017
40. 使用BestConfig • 以Spark为例 – 接口实现——配置文件读写 SACC2017
41. 使用BestConfig • 以Spark为例 – 接口实现——配置文件目录 SACC2017配置调优算法和样本集 待调参数的默认取值 待调参数的取值范围 待调系统和测试相关配置
42. 使用BestConfig • 以Spark为例 – 接口实现——配置文件目录 • bestconf.properties SACC2017设置初始样本集大小 设置算法的最大轮数
43. 使用BestConfig • 以Spark为例 – 接口实现——配置文件目录 • defaultConfig.yaml (Spark待调配置参数列表) SACC2017
44. 使用BestConfig • 以Spark为例 – 接口实现——配置文件目录 • defaultConfig.yaml_range(Spark待调配置参数范围) SACC2017
45. 使用BestConfig • 以Spark为例 – 接口实现——配置文件目录 • SUTconfig.properties SACC2017设置待调系统名字, yaml 是配置文件的类型 设置远程服务器IP, 用户名及密码 调优程序的配置文件目录 shell脚本在待调系统上的目录 待调系统的配置文件目录 接口文件所在程序目录 待调系统启动超时设置 测试超时设置 连接远程系统的最大失败次数 测试失败的最大次数
46. 使用BestConfig • 以Spark为例 – 接口实现——配置文件目录 • SUTconfig.properties SACC2017系统最大连续启动失败次数 ssh重新连接等待时间 ssh连接最大重试次数 自定义性能模型 远程测试节点的IP, 用户名, 密码 测试脚本所在目录
47. 使用和扩展BestConfig • 使用BestConfig – Shell脚本 • 待调系统相关 • 测试节点(应用负载)相关 017– 配置文件目录 C2• 待调参数相关——未来可从待测系统中自动抽取 AC• 调优流程、待调系统相关配置文件 S• 扩展BestConfig – 扩展采样算法 – 扩展优化算法
48. 扩展BestConfig • 扩展采样算法 – 继承ConfigSampler抽象类 • 扩– 展实现优O化pt算imi法zatiSon接A口CC2017
49. 融入自动化、智能化潮流, 让它为你服务 DBA要SA失CC业2017