We use cookies to improve your experience with our site.

SHA:基于数据库系统的QoS感知的软件和硬件参数自动调优

SHA: QoS-Aware Software and Hardware Auto-Tuning for Database Systems

  • 摘要: 数据库广泛应用于海量数据的收集、处理和分析,在软件产业的发展中发挥着突出的作用。确保在线数据库的服务质量(QoS)对于良好的用户体验非常重要。当终端用户,比如在线游戏供应商,想要在数据中心部署数据库时,他们通常需要聘请昂贵的专家来配置数据库软件参数。据报道,数据库总预算的50%花在数据库调优和维护上,而数据库专家花在调优上的时间几乎占到25%。 一旦确定了软件参数配置,这些就不会改变。然而,数据库的负载经常随着时间发生波动。当数据库负载较低时,将数据库与没有服务质量要求的批处理应用程序放在一起更经济有效。而简单地减少低负载下分配给数据库的资源数量,并将节省下来的资源分配给其他应用程序,可能会导致数据库的QoS违背。因此,在保证数据库良好性能的同时尽量减少硬件的使用便显得至关重要。然而为数据库负载确定最优的软件和硬件配置是一项很有挑战的工作。首先,数据库系统有数百个可调软件参数,不合理的软件配置往往导致数据库性能急剧下降,而不同的软件参数之间也有复杂的相互关系,调整某一个参数还会影响到其他参数,而且依赖关系也会在不同的硬件配置上发生变化。其次,我们的调研显示,数据库系统的最佳软件配置会随着不同的用户请求模式(即工作负载)和硬件配置的改变而发生变化。因此,软硬件联调便显得尤为关键。再者,数据库负载所需的硬件资源(如内核数和内存空间)取决于其负载的大小和类型,静态地将所有资源分配给数据库会浪费其他应用程序可以使用的资源,从而降低它们的性能。 因此,解决共存应用程序争夺共享资源问题也是工作的核心。之前已经有关于数据库软件参数调节和硬件配置的相关研究。对于软件参数的调优,通常假设硬件配置固定且负载恒定不变,通过机器学习的方法找到数据库的适当软件配置,然而这些方法容易陷入局部最优,不能使工作负载达到最佳性能,且不能实时对软件参数进行调节。另外,在其他关于硬件配置调优的工作中,以最大限度地利用资源,同时保证简单的面向用户的服务质量,而无需调整软件配置。然而,它们可能不适用于数据库应用程序,因为它们忽略了软件配置的影响。为了保证数据库的服务质量和最大限度地利用硬件资源,我们提出了SHA,一个软硬件自动调优系统。它由一个基于缩放的性能预测器,一个基于强化学习(RL)的软件调优器和一个感知QoS的硬件重分配器组成。 SHA重用从历史调优过程中收集的训练数据来调整新的数据库软件参数。性能预测器利用新的伸缩模型来预测在不同的硬件分配和相应的软件配置下的最佳可实现性能。 基于此预测器,SHA可以快速确定数据库在满足QoS的情况下所需的最小硬件资源。一旦硬件分配被确定,基于强化学习的软件调优器就使用强化学习模型搜索最优的软件配置。同时,感知QoS的硬件重分配器将未使用的硬件资源分配给其他应用程序,同时最小化内存带宽和共享缓存上的争用。实验结果表明,在硬件配置固定的情况下,SHA与最先进的解决方案相比,通过软件调优平均提高了9.9%的数据库性能,在保证QoS的同时,提高了43.2%的资源利用率。同时,SHA具有更快的收敛速度,只需要7分钟便可以找到最优的软件配置,而其他方法通常需要30分钟以上,这很好地保证了当应用负载或者硬件资源发生变化时软件参数调优的实时性。总体而言,SHA是一种混合模型,可以同时调整数据库硬件和软件配置,对数据库系统的部署和维护有很大的价值。

     

    Abstract: While databases are widely-used in commercial user-facing services that have stringent quality-of-service (QoS) requirement, it is crucial to ensure their good performance and minimize the hardware usage at the same time. Our investigation shows that the optimal DBMS (database management system) software configuration varies for different user request patterns (i.e., workloads) and hardware configurations. It is challenging to identify the optimal software and hardware configurations for a database workload, because DBMSs have hundreds of tunable knobs, the effect of tuning a knob depends on other knobs, and the dependency relationship changes under different hardware configurations. In this paper, we propose SHA, a software and hardware auto-tuning system for DBMSs. SHA is comprised of a scaling-based performance predictor, a reinforcement learning (RL) based software tuner, and a QoS-aware resource reallocator. The performance predictor predicts its optimal performance with different hardware configurations and identifies the minimum amount of resources for satisfying its performance requirement. The software tuner fine-tunes the DBMS software knobs to optimize the performance of the workload. The resource reallocator assigns the saved resources to other applications to improve resource utilization without incurring QoS violation of the database workload. Experimental results show that SHA improves the performance of database workloads by 9.9% on average compared with a state-of-the-art solution when the hardware configuration is fixed, and improves 43.2% of resource utilization while ensuring the QoS.

     

/

返回文章
返回