【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(系统底层优化篇)(一)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(系统底层优化篇)

硬件层面优化

硬件层面的优化主要包括对数据库物理机的采购和配置。

数据库物理机分析



  • CPU(运算):建议选择64位的CPU,每台机器至少配置2-4颗CPU,但最多可以达到16颗。此外,较大的L2缓存有助于性能提升。
  • 内存:根据百度的建议,可以选择96G-256G的内存,并配置3-4个实例。而对于新浪的情况,32-64G的内存足够,并运行1-2个实例。
  • 磁盘IO(磁盘输入/输出):建议选择机械盘,优先考虑SAS(串行附加存储)接口的磁盘,且数量越多越好。这样可以提高磁盘IO能力,从而提升数据库的读写性能。

注意,以上建议仅涉及硬件层面的优化,实际的配置还需根据具体的数据库类型、工作负载和预算等因素进行综合考虑。此外,还可以通过其他技术手段,如优化数据库参数设置、调整文件系统和磁盘分区等方式来进一步提升数据库性能

底层技术优化

主要的优化方向:磁盘性能优化、RAID磁盘阵列、网卡优化和网络设备等。



磁盘性能优化

  • SSD(高并发):对于需要高并发处理的场景,建议选择SSD或者PCIe SSD设备。这些设备可以提供上千倍的IOPS(每秒输入/输出操作数),以提高系统的性能。
  • SAS(普通业务线上):对于普通的线上业务,SAS(串行附加存储)设备是一种较好的选择。
  • SATA(线下):对于线下的业务,可以考虑使用SATA(串行ATA)设备。

随机IO能力的能力支持

  • SAS单盘能力:SAS磁盘的随机IO能力通常为300IOPS(每秒输入/输出操作数)。
  • SSD随机IO能力:SSD磁盘的随机IO能力可达到35000IOPS。
  • Flashcache HBA卡:通过使用Flashcache HBA卡,可以进一步提升随机IO的性能。

注意,以上建议仅基于一般性的情况,实际的性能优化策略应根据具体的应用场景、负载特点和预算等因素进行综合考虑。因此,在做出最终的硬件选择之前,建议与专业的硬件工程师或厂商进行进一步的讨论和评估

RAID磁盘阵列

  • 主库:主库可以选择RAID10,这样可以提供更好的数据安全性和读写性能。
  • 从库:从库可以选择RAID10、RAID5或RAID0,具体选择取决于对数据安全性和性能的需求。从库的配置应该等于或大于主库的性能,以确保从库可以满足快速同步数据的需求。

RAID10

RAID 10是一种将RAID 1和RAID 0结合起来的磁盘阵列级别。它通过将数据镜像在多个驱动器上,并将这些驱动器组合成条带化阵列,以提供数据冗余和性能增强。

在RAID10中,首先将数据以镜像的方式写入两个驱动器,这确保了数据的冗余性和容错能力。 如果任一驱动器发生故障,系统可以从镜像驱动器中恢复数据,保持数据的完整性和可用性。

然后,这两个镜像驱动器被组合成一个RAID 0条带化阵列。RAID 0使用条带化方式将数据均匀分布在多个驱动器上,从而提高读写性能。RAID 0的优势是读写速度显著提升,因为可以同时从多个驱动器读取或写入数据。

RAID10的优势

RAID10的优势是在提供高性能的同时,保持了数据的冗余和安全性。它可以快速恢复驱动器故障,因为备份数据已经存在于镜像驱动器上,而无需重建整个阵列。

需要注意的是,RAID10至少需要四个驱动器来实现镜像和条带化的结合。通常,RAID10被用于需要高性能和数据冗余的应用,例如数据库服务器、虚拟化环境和关键业务系统。

网卡优化



  • 多块网卡Bonding:使用多块网卡进行Bonding(绑定),可以提供更高的带宽和冗余。这样可以提高网络的可靠性和性能。
  • Buffer和TCP优化:通过调整网卡缓冲区以及优化TCP参数,可以提升网络传输的效率和稳定性,从而提高数据库的性能。

网络设备

  • 千兆网卡:建议使用千兆网卡,以满足大部分数据库的传输需求。
  • 千兆/万兆交换机:选择适当的千兆或万兆交换机,以满足数据库在局域网中的数据传输需求。

坑点问题建议

  • 虚拟技术问题:考虑到数据库是IO密集型服务,建议尽量避免使用虚拟化技术,以避免因为资源共享而造成的性能问题。
  • 主库和从库的资源分配:从库的硬件性能应该不低于主库,以确保它可以处理同步数据的压力,并保持和主库的数据一致性。

服务器硬件配置调整



服务器BIOS调整优化

提升CPU效率参考设置:

  • 打开性能功耗优化(DAPC)模式,以发挥CPU的最大性能。这对于数据库通常需要高运算量的情况下非常有用。
  • 打开CIE和CStates等选项,以提升CPU的效率。这些选项将有助于实现更好的能量管理和性能平衡。

内存频率设置

在内存设置菜单中,选择最佳性能选项,例如Memory Frequency(内存频率)选择Maximum Performance(最佳性能)。这将确保内存以最高的频率运行,以提高系统性能。

NUMA问题处理

启用Node Interleaving选项,以避免NUMA(非一致性存储访问)问题。这将帮助平衡系统中不同节点的内存访问,提高性能和效率。

NUMA是什么

NUMA(Non-Uniform Memory Access)是一种计算机体系结构设计,旨在处理多处理器系统中的内存访问不均匀性问题。

在多处理器系统中,每个处理器都有自己的本地内存和共享内存。本地内存是与处理器直接关联的,可以快速访问。而共享内存则由多个处理器共享,访问速度相对较慢。

NUMA系统通过在物理内存和处理器之间创建节点(node)来解决内存访问不均匀性。每个节点包含多个处理器和本地内存组成,并且可以与其他节点共享内存。每个处理器可以更快地访问本地节点的内存,而访问远程节点的内存速度较慢。

操作系统和应用程序可以通过NUMA感知来优化内存访问。通过将任务分配给最接近其数据所在节点的处理器,可以减少内存访问的延迟,并提高系统性能。

NUMA的适合场景

NUMA设计适用于大型多处理器系统,特别是在需要处理大量内存的高性能计算、服务器和虚拟化环境中。它有助于提高数据访问效率,并减少内存访问的延迟。

注意,这些调整建议是一般性的,不同服务器的BIOS设置可能略有不同。在进行调整之前,请仔细阅读服务器的BIOS手册,并确保了解每个选项的功能和影响。此外,建议在进行任何BIOS调整之前备份重要的数据和配置,以防止意外的问题发生。

阵列卡调整优化

  • 建议购置带有CACHE和BBU模块的阵列卡,尤其适用于使用机械硬盘的环境。
  • 建议将阵列写策略设置为WEB或甚至OFRCE WB,特别适用于对数据安全要求较高的场景。这些写策略将使用写回(write back)方式来提升写入性能。
  • 强烈建议不使用WT策略,并关闭阵列的预读策略。WT策略可能会降低写入性能,并且预读策略对于一些特定的工作负载可能并不适用。

操作系统层面优化



MySQL进程实例的选择优化




【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(系统底层优化篇)(二)https://developer.aliyun.com/article/1471064

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8天前
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
55 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
|
28天前
|
缓存 NoSQL JavaScript
Vue.js应用结合Redis数据库:实践与优化
将Vue.js应用与Redis结合,可以实现高效的数据管理和快速响应的用户体验。通过合理的实践步骤和优化策略,可以充分发挥两者的优势,提高应用的性能和可靠性。希望本文能为您在实际开发中提供有价值的参考。
55 11
|
1月前
|
关系型数据库 分布式数据库 数据库
瑶池数据库大讲堂|PolarDB HTAP:为在线业务插上实时分析的翅膀
瑶池数据库大讲堂介绍PolarDB HTAP,为在线业务提供实时分析能力。内容涵盖MySQL在线业务的分析需求与现有解决方案、PolarDB HTAP架构优化、针对分析型负载的优化(如向量化执行、多核并行处理)及近期性能改进和用户体验提升。通过这些优化,PolarDB HTAP实现了高效的数据处理和查询加速,帮助用户更好地应对复杂业务场景。
|
2月前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
95 11
|
28天前
|
缓存 关系型数据库 MySQL
【深入了解MySQL】优化查询性能与数据库设计的深度总结
本文详细介绍了MySQL查询优化和数据库设计技巧,涵盖基础优化、高级技巧及性能监控。
221 0
|
2月前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
125 1
|
3月前
|
SQL 存储 BI
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
|
23天前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
|
10天前
|
关系型数据库 MySQL 数据库
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
82 42
|
1天前
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
40 25