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 年前3Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波
MySQL+DB中间件解决水平拆分问题。 ■ MySQL水平拆分的引入会使数据库实例数量大幅上升,传统运维手段维护成本高,交付能力差。 MySQL数据库为何要Docker化 1.MySQL数据库迅速爆炸式增长后,服务器规模不断增大,快速部署是个问题。 2.随着业务的发展,扩容数据库的不方便不快捷,也是个问题。 3.大量数据量小的数据库系统也单独部署在物理机,浪费问题突出。 4.DBA的数据库自动化标准化运维的需求。 控服务端镜像 PS:容器虚拟化带来轻量高效,快速部署的同时,docker容器在隔离性方面也存在一些缺陷。例如,在容器内部proc文件系统 中可以看到Host宿主机上的proc信息。这样就导致了一些问题,比如监控信息不准确、限制内存会导致应用程序OOM等。我们 基于lxcfs组件来增强容器的隔离性。 资源隔离 CPU最大超卖3倍,通过cpu-period配合cpu-quota一起使用,来限制容器的CPU的使用量 Docker Docker Docker 集群 报警 • 为了保证容器内的MySQL实例有更好的磁盘IO性能。采用了本地宿主机磁盘挂载到容器内的方式(每个 实例对应一个文件夹)。 这种方式的优势是IO性能最佳,随之而来的缺点是磁盘容量不好估算,有可能在使用了一段时间后出现磁 盘空间不足的问题,这个时候则会启动迁移扩容的流程。 已经在和提供高密度IO分布式存储解决方案厂商接触,计划测试平台接入分布式存储的方案。0 码力 | 32 页 | 7.11 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 @ 2021 Oracle and/or its affiliates. 50 / 55 故障类型: 高可用性: 单服务器故障, 网络分区 灾难恢复: 整个区域/网络故障 人为错误: 个别表问题 10 / 55 业务需求 概念 - RTO & RPO RTO :恢复时间目标 从单个故障中恢复需要多长时间 RPO :恢复点目标 发生故障时可能丢失多少数据 Copyright @ 2021 RTO =分钟+( 手动故障转移) 最佳写入性能 手动故障转移 52 / 55 Copyright @ 2021 Oracle and/or its affiliates. 灾难恢复 - 多区域 MySQL InnoDB Cluster RPO =0 RTO =秒级 多区域 多主数据库 3DC 需要非常稳定的广域网 写入性能受DC 之间的延迟影响 53 / 550 码力 | 52 页 | 3.07 MB | 1 年前3MySQL高可用 - 多种方案
2012-09-04 博客地址 http://blog.chinaunix.net/uid/20639775.html 1 前言 Mysql 高可用一直是 mysql 业界不断讨论的热点问题,其中涉及的东西比较多,可 供选择的方案也相当多,面对这么多的方案,我们应该如何选择适合自己公司的 mysql 高可用方案呢,我觉得首先我们需要了解的自己公司的业务,了解在线系统中那些东西 会影响 高可用为了实现 mysql 数据的一致性,一般都是采用单点写入,本方案采用 keepalived 中的 sorry_server 来实现写入数据库为单点的需求。本方案实现的功能是当网络有问题、 mysql 有问题、服务器宕机、keepalived 服务停止后,服务器能自动跳转到备用机, 当主服务器服务启动起来后会自动切换回来。 2.2 方案架构图 2.3 方案优缺点 优点: 数据的一致性,一般都是采用单点写入,本方案采用 keepalived 中的 sorry_server 来实现写入数据库为单点的需求,读负载均衡通过 lvs 实现,读能自由 的实现负载均衡和故障切换。本方案实现的功能是当网络有问题、mysql 有问题、 服务器宕机、keepalived 服务停止后,服务器能自动跳转到备用机,当主服务器服务 启动起来后会自动切换回来。 3.2 方案架构图 3.3 方案优缺点 优点: 0 码力 | 31 页 | 874.28 KB | 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://get ORD、MYSQL_DATABASE 环境变量可以使容器在 运行时同时创建你所需要的数据库和带有全部权限的用户及其对应密码 6,设定 TERM 环境变量的值可以解决容器不能进入 mysql 控制台的问题。 对于不是自己建立的镜像,建立出来的容器未必能一次达到要求,建议是将 run 命令写成脚本,创建后使用 docker inspect <容器名> 仔细查看容器信息,关注镜像公开的端口和文件目录。如果发现达不到要求,使0 码力 | 3 页 | 103.32 KB | 1 年前3Kubernetes Operator 实践 - MySQL容器化
Kubernetes Operator 实践 —— MySQL 容器化 刘林 搜狗资深工程师 关于我 搜狗商业平台研发部 资深开发工程师 l 主要从事商业平台研发工作,在构建高性能、高可用大规模 系统方面有丰富的实践经验 l 目前专注于云计算、DevOps 等相关领域,负责搜狗商业云 平台的设计研发工作 刘林 1. 背景介绍 2. Operator 的基本原理 3. MySQL CI&&CD 统一配 置中心 Cluster2 Node Node Node Node 商业云平台 BizCloud • 弹性伸缩能力不足 • 机器资源利用率不高 • 服务管理复杂 问题 有状态服务的需求越来越多 有状态服务容器化 1. 背景介绍 2. Operator 的基本原理 3. MySQL Operator 设计实践 4. 小结 无状态服务 服务调度 有状态服务集群0 码力 | 42 页 | 4.77 MB | 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
共 11 条
- 1
- 2