前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >提升DB性能不花一分钱,试试这个功能

提升DB性能不花一分钱,试试这个功能

作者头像
用户1278550
发布2024-04-10 11:03:36
670
发布2024-04-10 11:03:36
举报
文章被收录于专栏:idbaidba

一 背景

当应用程序访问数据时, MySQL 将数据从磁盘读取到内存,或将内存数据写入磁盘是数据库系统常见的IO操作。相比内存操作,磁盘IO操作运行速度相对较慢,需消耗较多的时间。当出现大规模数据读取 比如全表扫描,频繁数据读写请求时,高并发的写入更新数据,IO操作可能成为系统瓶颈。

二 IO加速功能介绍

2.1 功能简介

我们知道 MySQL 的缓存池(Buffer Pool)用于缓存从磁盘取的数据。当一个数据块需要被从磁盘读取或被写入磁盘时,系统会先从缓存池中查找数据块:

若存在,则直接从缓存池中读写数据。

若不存在,则会从磁盘读写数据,并存储到缓存池。

基于此读写逻辑,缓存池能够有效减少磁盘IO操作,提升实例的IO性能。但缓存池的大小受系统内存大小的限制,当内存不足时,缓存池大小受限,从而影响IO性能

为此 RDS MySQL 引入基于通用云盘的 缓存池拓展(Buffer Pool Extension) 的技术特性,帮助扩展缓存池的大小,并结合RDS引擎内核能力,从技术上提升RDS MySQL的整体读写性能,让实例在一定时间内执行更多的读写命令,提高磁盘IO效率和系统的响应速度,实现缓存加速。

2.2 IO 加速的技术原理

通用云盘的IO加速功能利用了缓存池拓展技术,在不提升成本的情况下,将ESSD形态的性能进行衍生。基于冷热数据分离的思想,通过扩展InnoDB的缓存池(Buffer Pool),将数据页缓存到Buffer Pool Extension中,将温数据存放在Buffer Pool Extension中,使得InnoDB可以灵活使用多种存储介质,从而获得QPS性能提升。

2.3 技术架构

缓存池拓展的部署架构如下图所示。

三 测试性能效果 使用标准的 sysbench 压测 ,25张表,每张表1kw行数据,20个并发,使数据量大于内存,模拟 IO 场景的压测。
  1. 同等规格的前提下(8c16g),开启BPE相对于未开启BPE实例,性能提升约89.75%

2. 共同开启BPE的前提下,规格8c16g的实例相对于4c8g实例,性能提升约36.55%。 3. 4c8g 开启 BPE 比 8c16g 不开启BPE 性能高 38%。 注: 不同售卖地域,可能因为潜在的机器配置导致性能有所差异。

四 使用 IO 加速的技术和成本收益

引入IO加速功能的缓存池拓展后,RDS MySQL的存储结构分为三个层次,能够针对不同的数据存储场景和诉求,充分利用阿里云底座的各种存储介质,实现实例的IO性能提升:

1.提升读写性能,缩短SQL执行耗时
  1. 缓存池拓展通过缓存数据读取操作,大幅提升数据页的访问速度,缩短SQL执行时间。
  2. 缓存池拓展大幅降低访问实例通用云盘中数据文件的频率,降低通用云盘带宽。
2. 提升实例的稳定性

缓存池拓展所在的磁盘比通用云盘延迟更低。同时,大幅降低通用云盘IO抖动对数据库运行的影响,提升稳定性。

3. 目前无需支付任何额外费用,业务不需要做任何改动。

在降本增效的大环境下,用户在无任何成本变化和业务改动的情况下,就可以获得数据库IO性能的大幅度提升 30%以上。

因为存储架构的原因,该功能只是在特定的区域开通,还无法不普及到所有售卖区域。 有兴趣的朋友可以访问 阅读原文 查看官方文档。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 yangyidba 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一 背景
  • 二 IO加速功能介绍
    • 2.1 功能简介
    • 2.2 IO 加速的技术原理
    • 2.3 技术架构
      • 三 测试性能效果 使用标准的 sysbench 压测 ,25张表,每张表1kw行数据,20个并发,使数据量大于内存,模拟 IO 场景的压测。
        • 1.提升读写性能,缩短SQL执行耗时
          • 2. 提升实例的稳定性
          • 3. 目前无需支付任何额外费用,业务不需要做任何改动。
      相关产品与服务
      云数据库 MySQL
      腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档