前言
一年一度的数据库领域顶级会议VLDB 2019于美国当地时间8月26日-8月30日在洛杉矶召开。在本届大会上,阿里云数据库产品团队多篇论文入选Research Track和Industrial Track。
本文将对入围Research Track的论文《iBTune: Individualized Buffer Tuning for Largescale Cloud Databases》进行详细解读,以飨读者。
注:本文由阿里云智能事业群艾奥、池院、洪林、谭剑、祺星、铁赢共同撰写。
1、背景
大概五六年前,阿里数据库团队开始尝试如何将DBA的经验转换成产品,为业务开发提供更高效,更智能的数据库服务。从14年CloudDBA开始为用户提供自助式智能诊断优化服务,经过四年的持续探索和努力,18年进化到CloudDBA下一代产品 —— 自治数据库平台SDDP(Self-Driving Database Platform)。
SDDP是一个赋予多种数据库无人驾驶能力的智能数据库平台,让运行于该平台的数据库具备自感知、自决策、自恢复、自优化的能力,为用户提供无感知的不间断服务。自治数据库平台涵盖了非常多的能力,包括物理资源管理,实例生命周期管理,诊断优化,安全,弹性伸缩等,而其中自动异常诊断与恢复和自动优化是自治数据库平台最核心的能力之一。
2017年底,SDDP开始对全网数据库实例进行端到端的全自动优化,除了常见的自动慢SQL优化和自动空间优化外,还包含了本文重点介绍的大规模数据库自动参数优化。
基于数据驱动和机器学习算法的数据库参数优化是近年来数据库智能优化的一个热点方向,但也面临着很大的技术挑战。要解决的问题是在大规模数据库场景下,如何对百万级别运行不同业务的数据库实例完成自动配置,同时权衡性能和成本,在满足SLA的前提下资源成本最低,该技术对于CSP(Cloud Service Provider)有重要价值。
学术界近一两年在该方向有一些研究(比如CMU的OtterTune),但该算法依赖于一些人工先验经验且在大规模场景下不具备可扩展性。据了解, 其他云厂商Azure SQL Database以及AWS该方向都有投入,目前尚未看到相关论文或产品发布。
从18年初开始我们开始数据库智能参数优化的探索,从问题定义,关键算法设计,算法评估及改进,到最终端到端自动化流程落地,多个团队通力合作完成了技术突破且实现了大规模落地。
由谭剑、铁赢、飞刀、艾奥、祺星、池院、洪林、石悦、鸣嵩、张瑞共同撰写的论文《iBTune: Individualized Buffer Tuning for Largescale Cloud Databases》被VLDB 2019 Research Track接受,这是阿里巴巴在数据库智能化方向的重要里程碑事件。
这项工作不仅在数据库智能参数优化理论方面提出了创新想法,而且目前已经在阿里集团~10000实例上实现了规模化落地,累计节省~12%内存资源,是目前业界唯一一家真正实现数据库智能参数优化大规模落地的公司。
2、问题定义
参数优化是数据库优化的重要手段,而数据库参数之多也增加了参数调优的难度,比如最新版本的MySQL参数超过500,PostgreSQL参数也超过290。通常数据库调优化主要关心性能相关的参数,而其中对性能影响最大的是Buffer Pool的设置。
目前集团环境多个数据库实例共享主机的部署方式导致经常出现主机内存严重不足,但CPU和存储资源还有较多剩余,造成了机器资源浪费,因此内存资源紧张成为影响数据库实例部署密度的关键瓶颈。
Bu