Oracle 和 MySQL 性能优化感悟
移动APP性能监测实践(iOS篇) 杨凯 杨凯 杨凯@听云 iOS研发工程师 yangkai@tingyun.com 关于APM APM的终极使命 APM价值的直接体现 监测的根本在数据获取 监控 技术 NSURLProtocol Method swizzling Isa swizzling Isa swizzling+NSProxy Others NSURLProtocol0 码力 | 19 页 | 3.82 MB | 1 年前3MySQL 8.0.17 调优指南(openEuler 20.09)
2 调优原则 性能调优从大的方面来说,在系统设计之初,需要考虑硬件的选择,操作系统的选 择,基础软件的选择;从小的方面来说,包括每个子系统的设计,算法选择,如何使 用编译器的选项,如何发挥硬件最大的性能等等。 在性能优化时,我们必须遵循一定的原则,否则,有可能得不到正确的调优结果。主 要有以下几个方面: ● 对性能进行分析时,要多方面分析系统的资源瓶颈所在,因为系统某一方面性能 低,也许并不是 低,也许并不是它自己造成的,而是其他方面造成的。如CPU利用率是100%时, 很可能是内存容量太小,因为CPU忙于处理内存调度。 ● 一次只对影响性能的某方面的一个参数进行调整,多个参数同时调整的话,很难 界定性能的影响是由哪个参数造成的。 ● 由于在进行系统性能分析时,性能分析工具本身会占用一定的系统资源,如CPU 资源、内存资源等等。我们必须注意到这点,即分析工具本身运行可能会导致系 统某方面的资源瓶颈情况更加严重。 1 ● 必须保证调优后的程序运行正确。 ● 调优过程是迭代渐进的过程,每一次调优的结果都要反馈到后续的代码开发中 去。 ● 性能调优不能以牺牲代码的可读性和可维护性为代价。 1.3 调优思路 性能优化首先要较为精准的定位问题,分析系统性能瓶颈,然后根据其性能指标以及 所处层级选择优化的方式方法。 下面介绍MySQL数据库具体的调优思路和分析过程,如图1所示。 调优分析思路如下: 10 码力 | 11 页 | 223.31 KB | 1 年前3MySQL 企业版功能介绍
超过 225 个 MySQL 顾问程序 600 多个受控变量 60 多种性能图表 MySQL Workbench Oracle 标准支持服务 “借助 MySQL Query Analyzer, 我们可以识别和分析存在问题的 SQL 代码,同时将数据库性能提 升两倍。更加重要的是,我们在三 天内就完成了这一任务,而过去则 需要数周之久。” 注入) 对现有 MySQL 应用实施基于策略的审计合规性 通过 MySQL Enterprise Monitor 提高数据库性能和可用性 通过 MySQL Query Analyzer 查明影响数据库性能的 SQL 代码 使用超过 225 个 MySQL 顾问程序实施 MySQL 优秀实践 通过 MySQL Workbench 以可视化方式设计、开发、管理和迁移数据库 数据库,针对性能进行优化;而自动扩展能够让用户弹性扩展 计算资源、存储资源和 MySQL 副本。 MySQL 数据库 MySQL 凭借经济高效、可靠、高性能且可扩展的电子商务、联机事务处理和嵌入式数据库应用 成为全球使用广泛的开源数据库。它是一种事务安全、符合 ACID 标准的集成式数据库,支持全 面的提交、回滚、崩溃恢复和行锁定功能。MySQL 不仅简便易用、易于扩展、性能卓越,而且0 码力 | 6 页 | 509.78 KB | 1 年前3谈谈MYSQL那点事
文件引擎中速度最快的 • 不支持一些数据库特性,比如 事务、外键约束等 不支持一些数据库特性,比如 事务、外键约束等 • Table level lock Table level lock ,性能稍差,更适合读取多的操作 ,性能稍差,更适合读取多的操作 InnoDB InnoDB 特点 特点 •使用 使用 Table Space Table Space 的方式来进行数据存储 的方式来进行数据存储 ib_logfile0) • 支持 事务、外键约束等数据库特性 支持 事务、外键约束等数据库特性 • Rows level lock , Rows level lock , 读写性能都非常优秀 读写性能都非常优秀 • 能够承载大数据量的存储和访问 能够承载大数据量的存储和访问 • 拥有自己独立的缓冲池,能够缓存数据和索引 拥有自己独立的缓冲池,能够缓存数据和索引 MySQL 架构设计—应用架构 MySQL 架构设计—高可用架构 系统优化:硬件、架构 系统优化:硬件、架构 服务优化 服务优化 应用优化 应用优化 MySQL MySQL 优化方式 优化方式 影响性能的因素 影响性能的因素 应用程序 应用程序 查询 查询 事务管理 事务管理 数据库设计 数据库设计 数据分布 数据分布 网络 网络 操作系统 操作系统 硬件 硬件 使用好的硬件,更快的硬盘、大内存、多核0 码力 | 38 页 | 2.04 MB | 1 年前3如何用 MySQL 构建全方位高可用应用
•实时监视 MySQL 性能和可用性 •直观地查找和修复有问题的查询 •监视磁盘,以便制定容量规划 •适合部署到云的体系结构 – 不需要代理 •可选的代理方式能提供高级 主机/OS 监视 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 12 Enterprise Replication Monitor •自动搜索复制拓扑 •主/从性能监视 •复制指导 •MySQL Cluster 7.4 DBT2 FlexAsych – 2 亿次 NoSQL 读取/秒(32 个节点) 4/16/2017 31 MySQL Cluster 7.4 NoSQL 性能 2 亿次 NoSQL 读取/秒 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 •内存优化表 – 持久 – 可与基于磁盘的表混合使用 •大量并发 OLTP •通过分布式联接支持分析 250 万条 SQL 语句/秒 4/16/2017 32 MySQL Cluster 7.4 SQL 性能 250 万条 SQL 语句/秒 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 何时考虑采用 MySQL Cluster 可伸缩性需求 利用分片改善写入性能? 延迟要求 每毫秒的成本? 正常运行时间要求 每分钟的停机成本? 故障与维护?0 码力 | 40 页 | 2.19 MB | 1 年前3MySQL 数据库架构灾难恢复解决方案
Cluster 高可用 (区域内的失败) RPO =0 RTO =秒级 (自动故障转移) 灾难恢复( 区域故障) RPO !=0 RTO =分钟或更长时间( 手动故障转移) 无写入性能影响 特点 • 简单易用 • 熟悉的界面和可用性 mysqlsh,CLONE,... • 在线添加/删除节点/集群 • 路由器集成, 拓扑结构发生变化时无需重新配置 应用程序 M RTO =分钟+( 手动故障转移) 最佳写入性能 手动故障转移 52 / 55 Copyright @ 2021 Oracle and/or its affiliates. 灾难恢复 - 多区域 MySQL InnoDB Cluster RPO =0 RTO =秒级 多区域 多主数据库 3DC 需要非常稳定的广域网 写入性能受DC 之间的延迟影响 53 / 55 affiliates. 灾难恢复 - 多区域 MySQL InnoDB ClusterSet RPO !=0 RTO =分钟+( 手动故障转移) RPO =0 & RTO =区域内秒级(HA) 写入性能(无需同步到其他区域) 更高的 RTO :手动故障转移 RPO !=0 ( 区域失败时) M ySQL InnoDB ClusterSet 54 / 55 Copyright @ 20210 码力 | 52 页 | 3.07 MB | 1 年前3TokuDB索引结构
Linux 文件系统层 TokuDB特点 • 支持事务(ACID)的MySQL存储引擎 • 插入性能大大高于InnoDB(分形树vs B+树) • 查询性能略低于InnoDB • 在线执行DDL操作(不阻塞写操作) • 超高压缩率(TokuDB 4M vs InnoDB 16K) 更高性能,更低成本! 分形树索引结构(一) 分形树结构(二) • msg_buffer – 先进先出队列0 码力 | 19 页 | 1.97 MB | 1 年前3Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波
Docker Node Docker Docker Docker Docker 集群 报警 • 为了保证容器内的MySQL实例有更好的磁盘IO性能。采用了本地宿主机磁盘挂载到容器内的方式(每个 实例对应一个文件夹)。 这种方式的优势是IO性能最佳,随之而来的缺点是磁盘容量不好估算,有可能在使用了一段时间后出现磁 盘空间不足的问题,这个时候则会启动迁移扩容的流程。 已经在和提供高密度I0 码力 | 32 页 | 7.11 MB | 1 年前3使用 Docker 建立 MySQL 集群
server 64bit 14.04.1 Docker 版本 1.6.2 数据库:Mariadb 10.10 (Mariadb 是 MySQL 之父在 MySQL 被 Oracle 收购之后 创建的分支,性能上优于 MySQL 开源版本) 第一步 安装 Docker 对于 Ubuntu,建议直接联网安装 Docker 最新版本,apt-get 中版本较老。 首先获取安装脚本: wget https://get0 码力 | 3 页 | 103.32 KB | 1 年前3Kubernetes Operator 实践 - MySQL容器化
Kubernetes Operator 实践 —— MySQL 容器化 刘林 搜狗资深工程师 关于我 搜狗商业平台研发部 资深开发工程师 l 主要从事商业平台研发工作,在构建高性能、高可用大规模 系统方面有丰富的实践经验 l 目前专注于云计算、DevOps 等相关领域,负责搜狗商业云 平台的设计研发工作 刘林 1. 背景介绍 2. Operator 的基本原理 3. MySQL0 码力 | 42 页 | 4.77 MB | 1 年前3
共 11 条
- 1
- 2