对于工作负载特点化和旋钮辨认组件,运行时机能不是侧重推敲的,所以我们用 scikit-learn实现对应的机械进修算法。这些算法运行在后台过程中,把新生成的数据接收到常识库里。
对于主动调优组件,机械进修算法就异常关键了。每次不雅察阶段完成后就须要运行,接收新数据以便 OtterTune 遴选下一?旋钮来进行测试。因为须要推敲机能,我们用 TensorFlow来实现。
为了收集 DBMS 的硬件、旋钮设备和运行时机能指标,我们把 OLTP-Bench 基准测试框架集成到 OtterTune 的┞菲握器内。
实验设计
我们比较了 OtterTune 对 MySQL 和 Postgres 做出的最佳设备与如下设备筹划进行了比较,以便评估:
- 默认: DBMS 初始设备
- 调优脚本: 一个开源调优建议对象做出的设备
- DBA: 仁攀类 DBA 选择的设备
- RDS: 将亚马逊开辟人员治理的 DBMS 的定制设备应用到雷同的 EC2 实例类型。
我们在亚马逊 EC2 竞价实例上履行了所有的实验。每个实验运行在两个实例上,分别是m4.large 和 m3.xlarge 类型:一个用于 OtterTune 控制器,一个用于目标 DBMS 安排。OtterTune 调优治理器和常识库安排在本地一台 20 核 128G 内存的办事器上。
评估
我们给每个实验中的数据库 —— MySQL 和 Postgres —— 测赶过洋迟和吞吐量,下面的图表显示了却不雅。第一个图表显示了“第99百分位延迟”的数量,代表“最差情况下”完成一个事务的时长。第二个图表显示了吞吐量结不雅,以平均每秒履行的事务数来衡量。
MySQL 实验结不雅

OtterTune 生成的最佳设备与调优脚本和 RDS 的设备比拟,OtterTune 让 MySQL 的延迟降低了大年夜约 60%,吞吐量晋升了 22% 到 35%。OtterTune 还生成了一份几乎跟 DBA 一样好的设备。
工作负载特点化: OtterTune 应用 DBMS 的内部运行时指标来特点化某个工作负载的行动,这些指标精确地代表了工作负载,因为它们捕获了负载的多个方面行动。然而,很多指标是冗余的:有些是用不合的单位表示雷同的度量值,其他的表示 DBMS 的一些自力组件,但它们的值高度相干。梳理冗余度量值异常重要,可以降低机械进修模型的复杂度。是以,我们基于相干性将 DBMS 的度量值集中起来,然后选出个中最具代表性的一个,具体说就是最接近中心值的。机械进修的后续组件将应用这些度量值。
在 TPC-C 负载下,只有几个 MySQL 的旋钮明显影响机能。OtterTune 和 DBA 的设备给这几个旋钮设置了很好的值。RDS 表示略逊一筹,因为给一个旋钮设备了欠佳的值。调优脚本表示最差,因为只修改一个旋钮。
Postgres 实验结不雅

在延迟方面,比拟 Postgres 默认设备,OtterTune、调优对象、DBA 和 RDS 的设备获得了近似的晋升。我们大年夜概可以把这归于 OLTP-Bench 客户端和 DBMS 之间的收集开销。吞吐量方面,Postgres 在 OtterTune 的设备下比 DBA 和调优脚本要高 12%,比 RDS 要高 32%。
停止语
OtterTune 将寻找 DBMS 设备旋钮的最优置魅这一过程主动化了。它经由过程重用之前的调优过程收集的练习数据,来调优新安排的 DBMS。因为 OtterTune 不须要生成初始化数据集来练习它的机械进修模型,调优时光得以大年夜大年夜削减。
工作负载用的是 TPC-C,这是评估联机交易体系机能的工业标准。
下一步会怎么样? 为了适应的越来越风行的 DBaaS (长途登录 DBMS 主机是弗成能的),OtterTune 会很快可以或许主动探查目标 DBMS 的硬件才能,而不须要长途登录。
【编辑推荐】
- 毕竟为什么要惹人数据库中心件
- 数据库高可用筹划PK:选择Oracle照样MySQL?
- 进步MySQL机能的7个技能
- 嫌弃Hadoop?可能是你的打开方法有问题
- MySQL MEMORY引擎及机能比对
推荐阅读
Intel发货Stratix 10 SX FPGA:唯一四核A53
11月5日Intel宣布已经开端出货Stratix 10 SX FPGA可编程芯片,这是今朝独一集成四核心ARM A53 CPU处理器的FPGA,也是Intel收购Altera之后的一大年夜结不雅。Intel声称它的机能比上代产品>>>详细阅读
本文标题:通过机器学习来自动调优数据库
地址:http://www.17bianji.com/lsqh/38549.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示