搜索
首页系统教程LINUX机器学习是否会使数据库管理系统的运维人员失业?

机器学习是否会使数据库管理系统的运维人员失业?

Jan 13, 2024 pm 06:24 PM
linuxlinux教程红帽linux系统linux命令linux认证红帽linuxlinux视频

导读 数据库管理系统(DBMS)是任何数据密集型应用系统中最重要的一个部分。它们可以处理大量的数据和复杂的工作负载。但是由于它们有成百上千个配置“按钮”(knob),这些配置按钮控制着诸多因素,比如用于缓存的内存容量和数据写入到存储设备的频次,因而管理起来很难。企业组织常常聘请专家帮助调优活动,不过对许多企业来说专家的成本高得离谱。

本文是由卡内基·梅隆大学的三位嘉宾达娜·范·阿肯(Dana Van Aken)、安迪·帕夫洛(Andy Pavlo)和杰夫·戈登(Geoff Gordon)共同撰写的文章。该项目演示了学术研究人员如何可以使用AWS Cloud Credits for Research Program(https://aws.amazon.com/research-credits/)来支持其科研突破。

OtterTune是由卡内基·梅隆大学数据库小组(http://db.cs.cmu.edu/projects/autotune/)的学生和研究人员开发的一种新工具,它能自动为DBMS的配置按钮找到合适的设置。目的在于让任何人都更容易部署DBMS,甚至是数据库管理方面毫无专长的那些人。

OtterTune有别于其他的DBMS配置工具,原因在于它充分利用从调优之前部署的DBMS获得的知识来调优新部署的DBMS。这大大减少了调优新部署的DBMS所需要的时间和资源。为此,OtterTune维护一个资料库,包含从之前的调优会话收集而来的调优数据。它使用该数据来构建机器学习模型,这些模型采集了DBMS对不同配置作出反应的信息。OtterTune使用这些模型来指导用户针对新的应用程序进行尝试,建议使用改善特定目标(比如缩短延迟或提高吞吐量)的设置。

我们在本文中探讨了OtterTune的机器学习管道的每个组件,并演示了它们彼此如何联系,从而调优DBMS的配置。之后,我们评估了OtterTune对MySQL和Postgres的调优效果:将其最佳配置的性能与数据库管理员(DBA)及其他自动调优工具选择的配置作了一番比较。

OtterTune是由卡内基·梅隆大学数据库小组的学生和研究人员开发的一种开源工具。所有代码都放在GitHub上(https://github.com/cmu-db/ottertune),采用了Apache License 2.0这种许可证来发行。

工作原理

下面这张图显示了OtterTune的组件及工作流程。

机器学习是否会使数据库管理系统的运维人员失业?

在新的调优会话的开始阶段,用户告诉OtterTune优化哪个特定目标(比如延迟或吞吐量)。客户端控制器连接至目标DBMS,并收集Amazon EC2实例类型和当前目标。

然后,控制器开始了第一个观察期,在此期间它观察DBMS,并记录特定目标。观察期结束后,控制器收集来自DBMS的内部度量指标,比如MySQL针对从磁盘读取的页面和写入到磁盘的页面的计数。控制器将特定目标和内部度量指标都返回给调优管理器。

OtterTune的调优管理器收到度量指标后,将它们存储在资料库中。OtterTune使用结果来计算控制器应安装到目标DBMS上的下一个配置。调优管理器将该配置返回给控制器,并通过实际运行来估计预期的改进。用户可以决定继续调优会话,还是终结调优会话。

说明

OtterTune为它支持的每个DBMS版本维护一份按钮黑名单。该黑名单包括没必要调优的按钮(比如DBMS存储文件的路径名称),或者可能有严重后果或隐性后果的按钮(比如可能会引起DBMS丢失数据)。在每次调优会话的开始阶段,OtterTune向用户提供黑名单,那样用户就能添加他们想要OtterTune避免调优的其他任何按钮。

OtterTune作出某些假设,可能会限制其对一些用户而言的用处。比如说,它假设用户拥有管理员权限,让控制器可以修改DBMS的配置。如果用户没有管理员权限,那么他们可以将数据库的第二个副本部署到其他硬件上,以便OtterTune的调优试验。这要求用户重放工作负载跟踪,或者转发来自生产级DBMS的查询。想了解假设和限制方面的完整讨论,请参阅我们的论文(http://db.cs.cmu.edu/papers/2017/tuning-sigmod2017.pdf)。

机器学习管道

下面这张图显示了数据在通过OtterTune的机器学习管道传输时如何加以处理。所有观察结果都放在OtterTune的资料库中。

OtterTune先把观察结果传送到Workload Characterization组件。该组件识别一小批最准确地采集性能变化和不同工作负载独特特点的DBMS度量指标。

接下来,Knob Identification组件生成一份按钮排序表,列出了对DBMS的性能影响最大的按钮。然后,OtterTune将所有这些信息馈送给Automatic Tuner。该组件将目标DBMS的工作负载与数据资料库中最相似的工作负载对应起来,并重复使用该工作负载数据,生成更合适的配置。

机器学习是否会使数据库管理系统的运维人员失业?机器学习是否会使数据库管理系统的运维人员失业?

现在不妨深入探究机器学习管道中的每一个组件。

Workload Characterization:OtterTune使用DBMS的内部运行时度量指标来描述工作负载的行为特点。这些度量指标准确地表述了工作负载,因为它们采集了运行时行为的许多方面。然而,许多度量指标是冗余的:一些是以不同单位记录的同一个度量值,另一些表示DBMS中数值高度关联的独立部分。精简冗余的度量指标很重要,因为这降低了使用它们的机器学习模型的复杂性。为此,我们基于关联模式,将DBMS的度量指标分成聚类(cluster)。然后,我们从每个聚类中选择一个代表性度量指标,具体来说是最靠近聚类中心的那个度量指标。机器学习管道中的后续组件使用这些度量指标。

Knob Identification:DBMS可能有数百个按钮,但只有一小批按钮影响DBMS的性能。OtterTune使用一种流行的特征选择技术(名为Lasso),决定哪些按钮显著影响系统的整体性能。通过将这种技术运用于资料库中的数据,OtterTune可识别DBMS的按钮重要性次序。

随后,OtterTune得决定在建议配置时使用多少个按钮。使用太多的按钮大大增加了OtterTune的优化时间。使用太少的按钮又让OtterTune无法找到最佳配置。为了使这个过程实现自动化,OtterTune使用了一种增量方法。它逐步增加用于调优会话中的按钮数量。这种方法让OtterTune得以为一小批最重要的按钮探究和优化配置,然后扩大范围、考虑其他按钮。

Automatic Tuner:Automated Tuning组件通过在每个观察期之后执行分两步走的分析,决定OtterTune应该建议使用哪个配置。

首先,系统使用针对Workload Characterization组件中识别的度量指标的性能数据,从最能表示目标DBMS工作负载的之前调优会话识别工作负载。它将会话的度量指标与来自之前工作负载的度量指标进行比较,看看哪些对不同的按钮设置有类似的反应。

然后,OtterTune选择另一个按钮配置来试一试。它使统计模型适合已收集的数据,以及来自资料库中最相似的工作负载的数据。该模型让OtterTune可以预测DBMS使用每一种可能的配置会有怎样的性能。OtterTune优化下一个配置,在探索(收集信息来改善模型)和利用(尽可能在特定度量指标方面表现不俗)之间求得平衡。

实现

OtterTune是用Python编写的。

就Workload Characterization和Knob Identification这两个组件而言,运行时性能并不是担心的主要问题,于是我们用scikit-learn实现了对应的机器学习算法。这些算法在后台进程中运行,一旦OtterTune的资料库中有了新的数据,就会整合新数据。

至于Automatic Tuner,机器学习算法位于关键路径上。它们在每次观察期后运行,整合新数据,那样OtterTune可以选择一个按钮配置接下来尝试。由于性能是个考量因素,我们使用TensorFlow实现了这些算法。

为了收集DBMS硬件方面的数据、按钮配置和运行时性能度量指标,我们将OtterTune的控制器与OLTP-Bench基准测试框架整合起来。

评估

为了评估,我们针对MySQL和Postgres的性能,将OtterTune选择的最佳配置与下列配置进行了比较:

  • 默认:DBMS提供的配置
  • 调优脚本:开源调优顾问工具生成的配置
  • DBA:数据库管理员生成的配置
  • RDS:为DBMS定制的配置,由Amazon RD管理,部署在同样类型的EC2实例上。

我们在Amazon EC2 Spot Instances(现货实例)上进行了所有的试验。我们在两个实例上进行了每次试验:一个实例用于OtterTune的控制器,另一个用于部署的目标DBMS系统。我们分别使用了m4.large和m3.xlarge实例类型。我们将OtterTune的调优管理器和数据资料库部署在了搭载20个核心、128GB内存的本地服务器上。

我们使用了TPC-C工作负载,这是评估联机事务处理(OLTP)系统性能的行业标准。

针对我们在试验中使用的每个数据库:MySQL和Postgres,我们测量了延迟和吞吐量。下面几张图显示了结果。第一张图显示了第99个百分位延迟的数量,这表示“在最糟糕情况下”事务完成所花的时间。第二张图显示了吞吐量的结果,以每秒完成的事务平均数量来测量。

 

MySQL的结果:

机器学习是否会使数据库管理系统的运维人员失业?

将OtterTune生成的最佳配置与调优脚本和RDS生成的配置进行比较,就会发现:如果使用OtterTune配置,MySQL的延迟缩短了约60%,吞吐量提升了35%。OtterTune还生成了结果与数据库管理员选择的配置一样好的配置。

少数几个MySQL的按钮对TPC-C工作负载的性能有重大影响。OtterTune和数据库管理员生成的配置为这每一个按钮提供了很好的设置。由于为一个按钮提供了未达最佳标准的设置,RDS的表现要逊色一点。由于只修改了一个按钮,调优脚本的配置表现最差。

Postgres的结果:

机器学习是否会使数据库管理系统的运维人员失业?

就延迟而言,OtterTune、调优工具、数据库管理和RDS生成的配置都比Postgres的默认设置有了相似的改进。我们也许可以将这归因于网络上OLTP-Bench的客户机和DBMS之间的往返所需要的开销。至于吞吐量,如果使用OtterTune建议的配置,Postgres的性能比数据库管理员和调优脚本选择的配置高出了约12%,比RDS更是高出了约32%。

类似MySQL,只有少数几个按钮对Postgres的性能有重大影响。OtterTune、数据库管理员、调优脚本和RDS生成的配置都修改了这些按钮,大多数提供了相当好的设置。

结束语

OtterTune使得为DBMS的配置按钮找到合适的设置这个过程实现了自动化。为了调优新部署的DBMS,它重复使用从之前的调优会话收集而来的训练数据。由于OtterTune不需要生成用于训练机器学习模型的初始数据集,因而显著缩短了调优时间。

接下来是什么?为了适应部署的DBaaS越来越流行这个形势(无法远程访问DBMS的主机系统),OtterTune很快就能够自动检测目标DMBS的硬件功能,而不需要远程访问。

想了解OtterTune方面的更多细节,请参阅我们的论文或放在GitHub上的代码。敬请关注这个网站(http://ottertune.cs.cmu.edu/),我们很快就会推出OtterTune这项在线调优服务。
作者简介:

达娜·范·阿肯(Dana Van Aken)是卡内基·梅隆大学的计算机学博士生,导师是安德鲁·帕夫洛博士。

安迪·帕夫洛(Andy Pavlo)是卡内基·梅隆大学的计算机学系数据库学助理教授。

杰夫·戈登(Geoff Gordon)是卡内基·梅隆大学的副教授兼机器学习系教育部副主任。

以上是机器学习是否会使数据库管理系统的运维人员失业?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:Linux就该这么学。如有侵权,请联系admin@php.cn删除
Linux和Windows处理设备驱动程序的区别有什么区别?Linux和Windows处理设备驱动程序的区别有什么区别?Apr 25, 2025 am 12:13 AM

Linux和Windows在处理设备驱动程序上的差异主要体现在驱动管理的灵活性和开发环境上。1.Linux采用模块化设计,驱动可以动态加载和卸载,开发者需深入理解内核机制。2.Windows依赖微软生态,驱动需通过WDK开发并签名认证,开发相对复杂但保证了系统的稳定性和安全性。

比较和对比Linux和Windows的安全模型。比较和对比Linux和Windows的安全模型。Apr 24, 2025 am 12:03 AM

Linux和Windows的安全模型各有优势。Linux提供灵活性和可定制性,通过用户权限、文件系统权限和SELinux/AppArmor实现安全。Windows则注重用户友好性,依赖WindowsDefender、UAC、防火墙和BitLocker保障安全。

Linux和Windows之间的硬件兼容性有何不同?Linux和Windows之间的硬件兼容性有何不同?Apr 23, 2025 am 12:15 AM

Linux和Windows在硬件兼容性上不同:Windows有广泛的驱动程序支持,Linux依赖社区和厂商。解决Linux兼容性问题可通过手动编译驱动,如克隆RTL8188EU驱动仓库、编译和安装;Windows用户需管理驱动程序以优化性能。

Linux和Windows之间虚拟化支持有哪些差异?Linux和Windows之间虚拟化支持有哪些差异?Apr 22, 2025 pm 06:09 PM

Linux和Windows在虚拟化支持上的主要区别在于:1)Linux提供KVM和Xen,性能和灵活性突出,适合高定制环境;2)Windows通过Hyper-V支持虚拟化,界面友好,与Microsoft生态系统紧密集成,适合依赖Microsoft软件的企业。

Linux系统管理员的主要任务是什么?Linux系统管理员的主要任务是什么?Apr 19, 2025 am 12:23 AM

Linux系统管理员的主要任务包括系统监控与性能调优、用户管理、软件包管理、安全管理与备份、故障排查与解决、性能优化与最佳实践。1.使用top、htop等工具监控系统性能,并进行调优。2.通过useradd等命令管理用户账户和权限。3.利用apt、yum管理软件包,确保系统更新和安全。4.配置防火墙、监控日志、进行数据备份以确保系统安全。5.通过日志分析和工具使用进行故障排查和解决。6.优化内核参数和应用配置,遵循最佳实践提升系统性能和稳定性。

很难学习Linux吗?很难学习Linux吗?Apr 18, 2025 am 12:23 AM

学习Linux并不难。1.Linux是一个开源操作系统,基于Unix,广泛应用于服务器、嵌入式系统和个人电脑。2.理解文件系统和权限管理是关键,文件系统是层次化的,权限包括读、写和执行。3.包管理系统如apt和dnf使得软件管理方便。4.进程管理通过ps和top命令实现。5.从基本命令如mkdir、cd、touch和nano开始学习,再尝试高级用法如shell脚本和文本处理。6.常见错误如权限问题可以通过sudo和chmod解决。7.性能优化建议包括使用htop监控资源、清理不必要文件和使用sy

Linux管理员的薪水是多少?Linux管理员的薪水是多少?Apr 17, 2025 am 12:24 AM

Linux管理员的平均年薪在美国为75,000至95,000美元,欧洲为40,000至60,000欧元。提升薪资可以通过:1.持续学习新技术,如云计算和容器技术;2.积累项目经验并建立Portfolio;3.建立职业网络,拓展人脉。

Linux的主要目的是什么?Linux的主要目的是什么?Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服务器操作系统,2.嵌入式系统,3.桌面操作系统,4.开发和测试环境。Linux在这些领域表现出色,提供了稳定性、安全性和高效的开发工具。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。