随着互联网行业的高速发展,数据库已经是绝大多数 IT 应用的核心因素,虽然数据库种类繁多,但是多层体系结构以及 SOA 的发展,使得应用逻辑的实现前移。数据库的性能与其功能相比较,变得越来越重要了。而对每个开发者或者 DBA 而言,都应该用更精深的方式来实现数据库性能的优化和改进。

10 月 31 日,OneAPM 技术公开课在北京、成都「双城」共演新一轮的「性能之战」。本次北京站公开课围绕「千万级并发下数据库性能调优」为主题,特别邀请了来自前新浪首席数据架构师杨海朝、云和恩墨创始人(Oracle ACE 总监)盖国强、PingCAP 创始人兼 CEO(曾任豌豆荚,京东资深系统架构师)刘奇、新东方教育科技集团的架构师赵而星等数据库领域的技术专家,为现场的观众带来一场技术实践分享。

大道至简 —— 基于 Oracle 的 OLTP 核心金融系统的极致优化

第一位演讲嘉宾是云和恩墨创始人,Oracle ACE 总监,ITPUB 版主盖国强老师,他也是中国地区首位 Oracle ACE 和 ACE 总监,曾获评「2006年中国首届杰出数据库工程师」奖,拥有近15年的数据库实施和顾问咨询经验,对于数据库性能优化及内部技术具有深入理解。

OneAPM 技术公开课:千万级并发下的数据库性能调优实践 技术分享 第1张

其实,在数据库的世界里,Oracle 是 OLTP 领域不可动摇的王者,大量核心金融交易系统都构建在 Oracle 数据库之上,在高并发、高性能和高一致性要求的环境中,Oracle 数据库面临怎样的性能问题与挑战,又应该从何种角度去优化呢?盖国强老师给出了建议,他认为大道至简,在发现数据库的性能瓶颈时,第一,可以通过提高存储响应,降低单次 LOG FILE PARALLEL WRITE 等待时间;第二,业务端合并短小事务,降低每秒处理的事务数量;第三,初始化参数 COMMIT_WAIT=nowait;第四,增加实例,分担单个实例每秒处理事务数量;第五,数据库级切分,增加新的数据库来分担每秒处理事务数量。最后一点,就是可以把数据库版本升级到12.1。

接下来,盖国强老师还介绍了 12c – adaptive scalable LGWR、云和基础设施:In-Memory 选件、Exadata - 去「IE」的分布式存储解决方案、U2L – 电信 CRM 核心去「I」实践、共享存储平台的新趋势等多个方面的内容。

TiDB: 支持 MySQL 协议的分布式数据库解决方案

PingCAP 创始人兼 CEO 刘奇刘奇先后创建了 TiDB,Codis 等知名开源项目,同时也是知名的 Go 语言专家和 Redis 专家。现从事开源的分布式 NewSQL 数据库 TiDB(受 Google F1 启发)的开发。擅长高并发、大规模、分布式数据库系统架构设计。在本次公开课上,他主要分享了TiDB 和 Google F1 相关的技术,分布式事务处理,在线异步 schema 变更,以及 SQL 到 KV 层的映射,索引实现等等。

OneAPM 技术公开课:千万级并发下的数据库性能调优实践 技术分享 第2张

在数据库领域,最为知名的解决方案有传统的 Oracle 和 互联网思维的 Google F1,而 TiDB 的灵感就来自于 Google 的 F1, TiDB 支持包括传统 RDBMS 和 NoSQL 的一些特点。刘奇老师还介绍了TiDB的架构,以及其多种特性,包括水平伸缩、异步的 schema 调整、一致性的分布式事务等等,而且 TiDB 兼容 MySQL 协议,我们可以像使用 MySQL 一样来使用 TiDB,可以使用 TiDB 来替换 MySQL 来服务业务,而绝大多情况下无需修改一行代码。因为采用 Go 语言开发,代码简单而且易于理解,而且性能非常高。此外,就是对多存储引擎的支持,包括包括 goleveldb、LevelDB、RocksDB、LMDB、BoltDB 等等。

新东方基于互联网应用的监控实战

来自新东方教育科技集团架构师赵而星曾在 IBM 工作过 8 年,先后参与过泰康人寿、中信证券、中核集团等多家大型公司的大型系统建设和性能优化,拥有近 10 年的系统实施经验,对于系统架构和性能优化具有丰富的理论和实践经验。目前负责新东方核心系统的升级改造和高并发性能优化工作。

OneAPM 技术公开课:千万级并发下的数据库性能调优实践 技术分享 第3张

赵而星老师首先介绍了应用监控的痛点,首选没有详细的数据,导致应用的整体性能无法进行评估。其次,系统故障不能及时发现和告警;还有一点,就是当系统出现故障后,无法完整还原事发现场,导致定位问题原因困难。最后,就是有些应用缺乏文档导致网络拓扑结构不清楚。

目前,新东方主要使用 Apdex 指数来评估应用的性能,其中(App Performance Index)=(1满意样本数+0.5 容忍样本)/样本总数。不久前,新东方通过部署 OneAPM 提供的整体性能解决方案来帮助企业提升业务生产力。首先,OneAPM 可以帮助新东方快速了解应用的健康情况,其次,能够精确定位执行缓慢的代码或者 SQL 语句,而且能够快速发现错误并定位原因;同时,还能够自动生成网络拓扑结构及对应性能,帮助新东方的开发和运维人员对整个 IT 系统实现全面的把控。

Redis 应用之道

前新浪首席数据架构师 & 高级技术经理分享了Redis 的应用之道。杨海朝拥有多年大规模系统的开发和运维经验。经历了新浪史上两大产品,博客和微博从小变大的整个过程。尤其是在大规模高并发、海量访问方面有丰富的管理经验。热衷于整体架构、数据库设计、性能优化、分布式部署方案和高可用性方面的研究。

OneAPM 技术公开课:千万级并发下的数据库性能调优实践 技术分享 第4张

在本次 OneAPM 技术公开课上,主要分享大规模 Redis 的使用历程,以及在不同阶段遇到的问题和解决思路。其实,随着机器规模的不断增加,可用性和自动化需求越来越强烈。首先,Redis 在性能上超越了 MySQL,而且提供了丰富的数据类型;其次,Redis 有半持久化和持久化两种方式,能从某种程度上解决这个问题,以减少 Cache 宕机带来的雪崩效应。此外,在部分业务场景中,使用 MySQL+Memcached 存在一致性问题,若使用 Redis 替代,能降低整体架构的复杂度。杨海潮表示,想做好 Redis,首先必须做精细化存储,在用户维度对数据进行存储。同时,他还介绍了多种 Redis 的应用场景。

技术情怀,OneAPM 公开课分享知识蜜饯

「OneAPM 技术公开课」由应用性能管理第一品牌 OneAPM 发起,内容面向 IT 开发、运维人员以及架构师群体。云集技术牛人、知名架构师、实践专家共同探讨技术热点。未来,我们希望为开发者和架构师搭建一个知识分享和交流的平台,开发者和架构师可以从中获取方法论,也能从实战经验的分享中受益。OneAPM 技术公开课还会在深圳、广州等城市陆续开讲,期望在「性能与架构」领域引领一次新的升华和飞跃。