开源MySQL在倚天ECS上的最佳优化实践

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 我们总结了在倚天上自建MySQL的基本优化手段,并在阿里云ECS G8y实例(基于Armv9的倚天710处理器)和G8i实例(x86)上做了开源8.0.34版本的MySQL的性能测试对比,优化后MySQL在G8y上的性能相对于未优化在G8i上的性能在只读场景有63%的性能优势,在读写混合场景有35%的性能优势;相对于优化后的G8i仍能保持只读场景20%的性能优势,读写混合场景5%的性能优势。

MySQL是一个开源的关系型数据库管理系统(Relational Database Management System,RDBMS),是业界最流行的RDBMS之一,广泛用于Web应用程序的后端数据存储。它是一种轻量级、快速、可靠的数据库解决方案,被广泛应用于各个行业领域,包括电子商务、金融服务、制造业和社交媒体等。

MySQL具有很高的可扩展性和稳定性,能够应对大规模数据存储和处理需求。它支持复杂的查询语言,事务处理和数据安全功能,为开发人员提供了一个强大的工具来管理和操作大规模数据。

与Redis等内存型数据库不同,MySQL的数据通常存储在磁盘上,这意味着它可以处理大量数据并且不会受到内存容量的限制。在生产环境中,MySQL通常部署在高性能的服务器上,以确保系统的稳定性和性能。它能够处理大量的并发请求,并提供高吞吐量的数据处理能力。

mysql架构.png

基于倚天710的数据中心服务器具备很强的单核计算能力,我们也通过微架构、编译、内核、操作系统、应用层等的全面优化大大提升了MySQL在倚天上的性能。

在本文中,我们总结了在倚天上自建MySQL的基本优化手段,并在阿里云ECS G8y实例(基于Armv9的倚天710处理器)和G8i实例(x86)上做了开源8.0.34版本的MySQL的性能测试对比,优化后MySQL在G8y上的性能相对于未优化在G8i上的性能在只读场景有63%的性能优势,在读写混合场景有35%的性能优势;相对于优化后的G8i仍能保持只读场景20%的性能优势,读写混合场景5%的性能优势。

mysql优化.png

优化手段

平头哥解决方案应用优化团队对MySQL应用进行了自顶向下的全面优化,具体包括应用层参数优化、系统层及OS层配置优化、编译器层优化、微架构分析优化、硬件能力优化等。

  • 应用层:
  • 对MySQL应用侧关键参数进行分析,针对倚天机器进行适配优化。结合当前机器内存、cache等配置合适的buffer size、innodb pool size、logfile等方式激发硬件性能潜力。
  • 系统及OS层:
  • 通过分析MySQL运行时系统特征,针对应用侧无关的系统参数如调度参数等进行优化,提升CPU利用率,最大程度发挥倚天性能优势。
  • 通过开启代码段大页,将应用程序代码段 (.text) 通过file THP映射,减少TLB entry开销,显著降低iTLB miss,降低了整个系统中的资源竞争。
  • 编译器层:
  • 启用LSE指令扩展,使用原生的CAS 等指令实现数据库的原子操作,优化了加锁、解锁等操作的性能,极大提高了数据库高并发场景下的性能。
  • 使用链接时优化(LTO)技术,扩展了编译器过程间分析的范围,全局优化数据库代码。
  • 对OS内核及MySQL服务端应用进行PGO优化。通过更优的代码冷热重新布局,降低在典型场景运行时应用的Frontend Bound。
  • 微架构分析优化:
  • 基于解决方案团队自主研发的Micro-Optimizer微架构分析优化工具,通过抓取运行时指令流,进行分支跳转分析,建立基于Basic Block的分析模型,可以获取更精确的代码冷热情况,可以在PGO的基础上进一步降低i-cache miss率。
  • 基于Micro-Optimizer,通过对指令流中的ldr str等访存指令进行分析建模,通过配置硬件参数进行仿真或直接采样抓取SPE数据的方式可以获取应用在运行时的d-cache miss情况。抓取热点并通过合适的指令预取或缓存锁定优化手段可针对特定PC进行缓存优化,从而降低应用整体d-cache miss率,进而在微架构层面降低backend bound。

micro-optimizer架构.png

  • 硬件能力优化:
  • 通过合适的硬件预取策略配置,可以进一步发挥倚天710的硬件能力。数据库的内存访问与常见workload不同,访问模式更加随机,不适合通用的数据预取策略。在数据库场景下,过于激进的数据预取可能无法提高缓存命中率,反而会增加内存带宽的使用,并且在缓存中填充无效的数据。调整预取策略,为缓存设置合理的指令预留,能给MySQL带来显著的性能收益。

综合以上各种不同层面的优化,可以在自建的开源版本MySQL同样达到很高的性能水平。其中有部分优化手段也适用于x86,我们在x86上也进行了同样的优化,也获取了一定的性能收益,但是综合来看在倚天上优化效果更佳,性能也最终得以反超x86。

测试环境及结果

我们使用sysbench作为负载生成器和性能基准测试工具。在数据库领域中,Sysbench经常被用来测试各种数据库管理系统(如MySQL、PostgreSQL等)在不同负载下的性能表现。它可以模拟并发用户访问数据库,测量数据库的读写能力、事务处理性能和并发连接处理能力等指标。

配置说明

benchmark客户端使用了一个单独的ECS.G7.8xlarge实例。

两种服务端ECS实例类型配置如下:

Processor

ECS Type

Yitian 710

G8y.2xlarge

x86 cpu

G8i.2xlarge

MySQL软件版本:

Component Name

Version

MySQL

8.0.34

GCC version

10.2.1 20200825 (Alibaba 10.2.1-3.5 2.32)

Sysbench

1.0.20

Operating System

5.10.134-0.git.e660833cf.al8.aarch64

Sysbench测试参数:

Test Config Parameter

Value

Number of Thread

64

Number of Tables

32

Table Size

25000

Test Time

1200

Event

oltp_read_only/oltp_read_write/oltp_write_only

我们将MySQL优化手段集成在ptg-accelerator中,可以在自建MySQL基础上一键调优。

注意部分优化手段也可应用在G8i上,但是整体收益依然不如G8y

TPS性能数据


G8i.2xlarge

G8y.2xlarge

Perf benifit gain

Read Only

Read Write

Read Only

Read Write

Read Only

Read Write

基础性能

7253.02

5204.89

6638.50

3934.25

-8.47%

-24.40%

调优后性能

9904.48

6686.58

11822.05

6990.4

19.36%

4.54%

read_only优化.pngread_write优化.png

微架构性能数据

这里对比了在倚天环境优化前后的前后端微架构指标变化数据。

指标说明:

  • Frontend Stall-Rate = Frontend Stalls / (Frontend Stalls + Backend Stalls)
  • Backend Stall-Rate = Backend Stalls / (Frontend Stalls + Backend Stalls)
  • 基准场景的Instruction TLB Miss、Instruction L1 Miss、Branch Miss、Data TLB Miss、Data L1 Cache Miss、Data L2 Cache Miss都设置为100%,方便优化状态下作对比。
  • 优化场景的以上数据为[优化/基准]的结果,以更方便地体现优化的比例

可以看到经过我们整体的优化,MySQL在g8y上的微架构性能表现有明显的提升

  • 前端Bound的比例有一定的降低,在Instruction TLB Miss率上相对优化前有43.9%的提升,Instruction L1 Miss率相对优化前有25.8%的提升,Branch Miss率相对优化前有 56.3%的提升。
  • 后端数据也体现出一定的性能提升,Data TLB Miss率相对优化前有47.3%的提升,Data L2 Cache Miss率有18.5%的提升。

frontend.pngbackend.png

总结

通过优化MySQL在倚天上的性能达到并反超x86的性能水平,叠加倚天在价格上的优势可获取更高的性价比优势。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
3
3
0
2
分享
相关文章
FastAPI开发者福音!FastAPI-MCP:将FastAPI秒变MCP服务器的开源神器,无需配置自动转换!
FastAPI-MCP是一款能将FastAPI应用端点自动转换为符合模型上下文协议(MCP)的开源工具,支持零配置自动发现接口并保留完整文档和模式定义。
209 14
FastAPI开发者福音!FastAPI-MCP:将FastAPI秒变MCP服务器的开源神器,无需配置自动转换!
2025年GitHub平台上的十大开源MCP服务器汇总分析
本文深入解析了GitHub上十个代表性MCP(Model Context Protocol)服务器项目,探讨其在连接AI与现实世界中的关键作用。这些服务器实现了AI模型与应用程序、数据库、云存储、项目管理等工具的无缝交互,扩展了AI的应用边界。文中涵盖Airbnb、Supabase、AWS-S3、Kubernetes等领域的MCP实现方案,展示了AI在旅行规划、数据处理、云存储、容器编排等场景中的深度应用。未来,MCP技术将向标准化、安全性及行业定制化方向发展,为AI系统集成提供更强大的支持。
94 2
2025年GitHub平台上的十大开源MCP服务器汇总分析
|
20天前
|
WordPress网站服务器性能优化方法,站长必备。
最后,当你将这些方法组合起来并实施时,您将发现你的WordPress网站性能有了显著的提高。别忘了,这不是一次性的任务,要定期执行,保持你的车(网站)始终在轨道上飞驰。
63 21
MySQL细节优化:关闭大小写敏感功能的方法。
通过这种方法,你就可以成功关闭 MySQL 的大小写敏感功能,让你的数据库操作更加便捷。
119 19
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
88 16
|
30天前
|
KingBase服务器优化:详解Kylin参数配置。
通过适当的调整和优化这些关键参数,你的Kylin可以运行得更加流畅和高效。就像一个经过精心调校的赛车,无论是在赛道的直道还是弯道上,都能展现出卓越的性能。希望这次深入参数“操控盘”的旅行,能让你更好地理解和优化你的Kylin配置。记住,优化是一个持续的过程,不断地试验和改进,你的Kylin才能越来越强大。
53 20
MySQL底层概述—8.JOIN排序索引优化
本文主要介绍了MySQL中几种关键的优化技术和概念,包括Join算法原理、IN和EXISTS函数的使用场景、索引排序与额外排序(Using filesort)的区别及优化方法、以及单表和多表查询的索引优化策略。
158 22
MySQL底层概述—8.JOIN排序索引优化
MySQL底层概述—7.优化原则及慢查询
本文主要介绍了:Explain概述、Explain详解、索引优化数据准备、索引优化原则详解、慢查询设置与测试、慢查询SQL优化思路
171 15
MySQL底层概述—7.优化原则及慢查询
GitHub 热门开源运维工具 Websoft9:如何实现服务器管理效率翻倍?
Websoft9 提供 200+ 开源应用一键部署,支持容器化隔离、GitOps 自动化和企业级安全防护,助力服务器管理效率提升 80%。
73 1
基于SQL Server / MySQL进行百万条数据过滤优化方案
对百万级别数据进行高效过滤查询,需要综合使用索引、查询优化、表分区、统计信息和视图等技术手段。通过合理的数据库设计和查询优化,可以显著提升查询性能,确保系统的高效稳定运行。
85 9

倚天

+关注

相关产品

  • 云服务器 ECS
  • 云数据库 RDS MySQL 版
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等