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

简介: 【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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
11月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
1152 7
|
人工智能 关系型数据库 OLAP
聚光灯已就位!阿里云瑶池数据库邀你征战Cursor首届实战征文大赛
阿里云AnalyticDB携手Cursor中文社区,正式发起首届实战征文大赛!我们诚邀开发者融合Cursor的智能编程能力与AnalyticDB PostgreSQL提供的Supabase服务进行项目开发,让优秀项目被专家看见、被机遇拥抱!
|
12月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1783 152
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1215 156
|
12月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
12月前
|
SQL 关系型数据库 MySQL
Mysql数据恢复—Mysql数据库delete删除后数据恢复案例
本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启binlog。 人为误操作使用Delete命令删除数据时未添加where子句,导致全表数据被删除。删除后未对该表进行任何操作。需要恢复误删除的数据。 在本案例中的mysql数据库未进行备份,也未开启binlog日志,无法直接还原数据库。
|
缓存 关系型数据库 MySQL
降低MySQL高CPU使用率的优化策略。
通过上述方法不断地迭代改进,在实际操作中需要根据具体场景做出相对合理判断。每一步改进都需谨慎评估其变动可能导致其他方面问题,在做任何变动前建议先在测试环境验证其效果后再部署到生产环境中去。
447 6
|
12月前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
946 0
|
存储 SQL 关系型数据库
MySQL 动态分区管理:自动化与优化实践
本文介绍了如何利用 MySQL 的存储过程与事件调度器实现动态分区管理,自动化应对数据增长,提升查询性能与数据管理效率,并详细解析了分区创建、冲突避免及实际应用中的关键注意事项。
571 0
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
674 158

推荐镜像

更多