《生死狙击》研发商无端科技使用RDS倚天ARM架构数据库,实现增效降本

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
简介: 进一步提升并释放技术红利

案例速览

image.png

行业:互联网游戏


挑战:在游戏场景下,安全、稳定和高性能是选择数据库的重要考量,以支持游戏平台和游戏开发者提供优质的游戏体验和用户服务。在满足稳定和性能的前提下,需技术手段降本增效帮助节约IT成本,并实现业务的无感切换和平滑迁移。


解决方案与产品:RDS倚天ARM架构数据库


成果:

降本增效,基于RDS ARM架构的数据库成本大幅下降,并保证性能和稳定性相当,达到客户降本增效的诉求;

业务平滑迁移,在应用0改造的基础上,实现业务无感平滑迁移,帮助客户实现迁移和优化改造;

高并发访问,RDS倚天ARM架构帮助客户稳定度过多次大型活动,稳定性和性能表现优异。


背景

无端科技成立于2010年,是国内一流的休闲竞技游戏研发商(是国内领先的集研发与运营为一体的射击游戏厂商)。公司先后在网页、手机、客户端平台自研和发行10余款游戏产品,其中射击页游《生死狙击》全球累用户超5亿,月活跃用户达3000万,首款自研次世代畅爽射击端游《生死狙击2》于2022年上线。


业务挑战

无端作为国内一流的游戏研发商,在游戏研发过程中,不光要考虑到游戏研发的效果,还要兼顾游戏投入成本,在保证游戏稳定搞下运行的前提下,依赖技术手段降低整体的成本是一直在探索的方向,其中游戏场景主要包括了游戏服和大厅服,游戏服承载了核心的游戏业务逻辑,大厅服作为登录,支付,商店等的核心应用承载场景,对稳定性和性能的要求很高,尤其是在一些游戏活动和赛季中,会有瞬时的高并发流量,对游戏的整体架构和性能负载都有很大的挑战,其中游戏架构中核心内容如下:


  1. 服务器场景:物理服务器架构通常用于大型多人在线游戏,它通过将游戏服务器置于物理服务器上,提供高可用性和高性能的游戏体验。这种架构需要大量的硬件、软件和网络资源来支持。
  2. 分布式场景:分布式架构采用多个节点来实现游戏的分布式处理。这种架构可以提高游戏的性能和可扩展性,同时也能够提供更好的容错性,防止游戏崩溃。
  3. 数据库场景:游戏场景中的数据库一般采用关系型数据库和非关系型数据库的混合使用。关系型数据库可以提供事务的支持,而非关系型数据库可以提供高可用性和高读写性能的支持。
  4. 客户端场景:随着移动设备的普及,移动端和PC端技术也成为了游戏场景下的一个重要技术。移动端技术主要包括移动应用开发、移动游戏开发、移动网页开发等方面的技术。


基于以上的游戏场景,游戏架构下主要有以下需求:


  1. 高并发:游戏场景下的互联网技术架构需要支持大量用户同时访问和使用游戏服务,因此架构需要具备高并发处理能力,同时保证游戏服务的稳定性和可用性。
  2. 实时性:大多数游戏都需要实时处理和响应玩家的操作,因此游戏场景下的互联网技术架构需要具备快速的实时处理能力,可以保证玩家在游戏过程中获得流畅的体验。
  3. 安全性:游戏场景下的互联网技术架构需要具备高强度的安全性措施,以保护用户隐私和游戏数据的安全。这包括权限控制、数据加密、防火墙等多种安全技术。
  4. 可扩展性:游戏场景下的互联网技术架构需要具备高度的可扩展性,可以支持新增功能和服务,同时支持大规模的用户增长。
  5. 灵活性:游戏场景下的互联网技术架构需要具备灵活性,可以快速适应不同类型的游戏需求和用户需求。架构需要支持快速迭代和定制化开发,以满足不同游戏的需求。


因此,在游戏场景下,安全、稳定和高性能是选择数据库的重要依据,以支持游戏平台和游戏开发者提供优质的游戏体验和用户服务。在满足稳定和性能的前提下,实现技术手段降本增效能帮助客户很好的节约IT成本,并且需要实现业务的无感切换和平滑迁移。


产品 & 解决方案


RDS倚天ARM架构


RDS MySQL的ARM架构相对于传统的X86架构,在计算性能和能耗效率上具有较大的优势。阿里云RDS产研团队投入大量的研发资源,逐步优化ARM架构数据库的性能,使其可以更加稳定、高效地运行。随着技术逐步成熟,成本也相应降低,这使得降价成为了一个可行的选择。其次,伴随着信息化转型的改革浪潮以及云计算的蓬勃发展,越来越多的企业开始将数据库迁移到云上,对于高性能、低成本的云数据库诉求也越来越多。阿里云RDS倚天ARM架构通过技术手段实现降本可以更好地满足市场客户需求,作为企业数据资产的重要载体,数据库的高性价比可以明显地降低企业TCO。


硬件层面

Prefetch预取策略优化

倚天710上默认的Prefetch预取策略不适合数据库的访问场景,RDS产研团队和平头哥芯片团队一起进行了针对性的调整,从预取算法的选择,预取量的控制,预取过程中对L2的使用等方面,选取了一组最适合数据库场景的预取策略。


OS层面

为了更好适配ARM架构,RDS内核团队和OS团队一起,根据ARM架构倚天710特点在OS上进行了深度调优。


调度算法优化

自Linux内核版本2.6.23以来,CFS(Completely Fair Scheduler)成为默认的Linux内核调度程序。CFS为了保证对每个可运行任务的公平处理,会通过累计 vruntime,保证任务调度的公平。在ARM服务上,频繁的线程调度会带来较大的性能开销。基于此,我们针对OS的调度策略做了针对性优化,重点对sched_min_granularity_ns, sched_wakeup_granularity_ns, sched_migration_cost_ns等参数进行了调整,保证RDS在ARM服务器下的性能。


开启代码段大页

在传统X86服务器上,为了保证MySQL的性能稳定,默认关闭了大页。在ARM服务器上,新版本的OS支持了单独的代码段大页,即只对代码段开启大页,数据段不使用大页,从而降低代码段的TLB miss率,提升性能。对于PostgerSQL引擎,无论ARM还是X86,默认都开启了代码段大页。


网卡中断优化

通过“网卡中断聚合”的方式,针对SMP IRQ affinity和RPS做了相关调整,主要减少在处理网络中断时频繁的上下文切换带来的性能损耗,将多个网络队列绑定到一个核上,聚合处理能带来CPU icache使用效率提升。大致示意图如下:

image.png

编译优化

在ARM服务器上,为了提升OS的运行效率,RDS内核团队和OS团队一起,在OS编译过程中引入了PGO(Profile Guided Optimization)的方式,针对数据库的典型负载,对OS进行针对性的编译优化,保证OS在数据库场景下的运行效率。


数据库层面

编译优化

倚天710芯片支持了armv8.6指令集,数据库在编译过程中进行了相应适配,保证指令高效使用。同时在编译过程中启用了LTO(Link Time Optimization)和PGO(Profile Guided Optimization),分别从代码链接优化和运行时profiling反馈优化两个方面,提升数据库的性能。此外,在内存管理上,采用的Jemalloc替换默认的内存分配机制,保障内存分配与回收的高效。


锁优化

锁冲突是数据库并发场景下最常见的性能瓶颈点,数据库内核层面结合倚天710芯片的特点进行了针对性的优化,通过重新设计spinlock的实现、优化指令操作等方式,有效降低了并发场景下的锁冲突问题。


Double Write

MySQL数据库通过double write机制来保证数据写的安全性,但是double write机制也带来了更大的IO压力,特别是在云盘场景下。为此,数据库打通块存储和文件系统,实现了16K原子写的能力,在此能力的保障下,率先可以在ARM体系下安全地关闭double write,降级写IO的压力,极大提升IO Bound场景下的性能。


热点函数优化

数据针对并发访问场景下的典型热点函数进行了针对性优化,对包括:memcpy、crc32、hash_sort等热点函数进行了指令级的优化,充分发挥倚天710芯片的特点,保证数据库的性能。


特色场景优化

倚天710芯片在压缩场景下具有明显的性能优势,依托于倚天710芯片提供的硬件加速能力,RDS PostgerSQL在压缩表场景上进行了优化,开启压缩表后,在存储成本显著降低的情况下性能无退化。


倚天710为云而设计,体现云原生优势


倚天710 CPU是专门为云而生的云原生处理器芯片,主要体现在如下几个方面:


  • 倚天710芯片无超线程概念,用户使用ECS规格享受的是极致的物理核性能体验,无论用户业务负载压力多大,均不会造成业务性能衰减。在此基础上,芯片设计充分考虑云用户不同规格虚拟机在性能上的可预期性,例如CPU缓存qos特性等,不同规格的划分均具备可预期的线性性能变化,帮助客户充分应对复杂的业务变化。
  • 倚天710芯片与CIPU实现了1+1大于2的效果。倚天710将自身算力优势和CIPU IO优势结合,使得倚天ECS在用户业务场景取得了优异的性能表现。同时,通过以CIPU为核心的理念,倚天ECS的成本和稳定性均得到了很好优化。通过CIPU为核心,我们采用多单路的机型设计方式,在保证低爆炸半径的前提下,提升部署密度,有效降低倚天ECS使用成本。


RDS MySQL为例,经过深度优化性能超过普通自建MySQL


在经过一系列的软硬件优化以后,我们以一个规格为8C32G 100G数据的实例进行Sysbench跑分压测,其中RDS ARM指RDS on 倚天深度优化的实例、X86自建指客户基于X86架构的ECS实例自建同等规格数据库、ARM自建指客户基于倚天架构的ECS实例自建同等规格数据库,具体性能数据如下:


RDS ARM

image.png

image.png

image.png

RDS MySQL的ARM架构在无端《生死狙击2》的应用:


  • 开服场景在游戏活动中,开服瞬间有大并发的登录和读写数据库的操作,对数据库的锁冲突挑战非常大,RDS MySQL结合倚天710芯片的特点进行了针对性的优化,通过重新设计spinlock的实现、优化指令操作等方式,有效降低了并发场景下的锁冲突问题。


  • IO优化游戏场景下,由于涉及到背包和道具属性通常比较大,因此在读写数据库过程中,游戏数据库存储IO压力相对较大。RDS ARM架构打通块存储和文件系统,实现了16K原子写的能力,在此能力的保障下,率先可以在ARM体系下安全地关闭double write,降级写IO的压力,极大提升IO Bound场景下的性能。


  • 备份恢复RDS支持PITR、极速库表恢复等多种备份恢复能力,帮忙游戏业务在异常情况下快速回档。


客户收益


image.png

RDS产研团队经过软硬协同的一系列优化,使得倚天ARM架构数据库性能进一步提升并释放技术红利。在稳定性方面,RDS ARM架构规格承诺与X86一致的高SLA保障,高可用规格最高SLA 99.99%。产品功能和使用体验上也与X86规格完全一致,应用无适配门槛。在无端科技的《生死狙击2》游戏场景中,基于RDS MySQL的倚天ARM架构,在保证稳定和性能的前提下,帮助客户实现降本增效,其中核心业务价值包括:


1. 降本增效

相较于X86架构,基于RDS ARM架构的数据库成本大幅下降,并且可以保证性能和稳定性相当,达到客户降本增效的诉求;


2. 业务平滑迁移

RDS ARM产品功能与X86架构完全一致,在应用0改造的基础上,实现业务的无感平滑迁移,帮助客户实现迁移和优化改造;


3. 高并发访问

在游戏活动和赛季中,通常有瞬间的高并发访问,因此对数据库的性能有极大的挑战,RDS倚天ARM架构帮助客户稳定度过多次大型活动,稳定性和性能表现优异。


客户感言


无端科技数据库负责人许岩表示:“倚天ARM架构下的RDS数据库,在提供稳定高性能的访问前提下,帮助我们实现了降本增效的目的,很好的满足了我们业务诉求,也支撑了多次大型活动。”



阿里云瑶池数据库开通免费试用啦!


面向国内1000万云上开发者阿里云推出“飞天免费试用计划”云数据库RDS现推出3个月免费试用】,快来领取吧!

https://free.aliyun.com/?crowd=enterprise&pipCode=mysql&utm_content=m_1000371605

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
Cloud Native 关系型数据库 分布式数据库
阿里云牵手海亮科技,共建“教育科技数据库创新应用中心”
海亮科技选择引入阿里云PolarDB开源分布式版(PolarDB for Xscale)数据库,不仅能解决海亮科技数据库业务中面临的可靠性、稳定性问题,也为海亮科技业务的高速发展提供了更好的灵活性和可扩展性。
|
3月前
|
关系型数据库 MySQL 数据库
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
|
2月前
|
Cloud Native 关系型数据库 分布式数据库
阿里云牵手海亮科技,共建“教育科技数据库创新应用中心”
近日,阿里云与世界500强旗下、国内领先的教育服务提供商海亮科技集团(以下简称“海亮科技”)达成合作,联合成立“教育科技数据库创新应用中心”。双方将充分整合优势资源,共同推进教育科技领域的数据库技术研究和国产数据库的应用与发展。
90 8
|
29天前
|
存储 NoSQL MongoDB
小川科技携手阿里云数据库MongoDB:数据赋能企业构建年轻娱乐生态
基于MongoDB灵活模式的特性,小川实现了功能的快速迭代和上线,而数据库侧无需任何更改
|
3月前
|
关系型数据库 Serverless 分布式数据库
揭秘PolarDB Serverless:大促洪峰秒级应对,无感伸缩见证科技魔法!一探云数据库管理的颠覆性革新,强一致性的守护神来了!
【8月更文挑战第13天】在云计算背景下,阿里巴巴的云原生数据库PolarDB Serverless针对弹性伸缩与高性能一致性提供了出色解决方案。本文通过一个电商平台大促活动的真实案例全面测评PolarDB Serverless的表现。面对激增流量,PolarDB Serverless能秒级自动扩展资源,如通过调用`pd_add_reader`快速增加读节点分摊压力;其无感伸缩确保服务平滑运行,不因扩展中断;强一致性模型则保障了数据准确性,即便在高并发写操作下也确保库存等数据的同步一致性。PolarDB Serverless简化了数据库管理,提升了系统效能,是追求高效云数据库管理企业的理想选择。
100 7
|
3月前
|
SQL 关系型数据库 数据库
数据库空间之谜:彻底解决RDS for SQL Server的空间难题
【8月更文挑战第16天】在管理阿里云RDS for SQL Server时,合理排查与解决空间问题是确保数据库性能稳定的关键。常见问题包括数据文件增长、日志文件膨胀及索引碎片累积。利用SQL Server的动态管理视图(DMV)可有效监测文件使用情况、日志空间及索引碎片化程度。例如,使用`sp_spaceused`检查文件使用量,`sys.dm_db_log_space_usage`监控日志空间,`sys.dm_db_index_physical_stats`识别索引碎片。同时,合理的备份策略和文件组设置也有助于优化空间使用,确保数据库高效运行。
78 2
|
3月前
|
关系型数据库 数据库 数据安全/隐私保护
"告别繁琐!Python大神揭秘:如何一键定制阿里云RDS备份策略,让数据安全与效率并肩飞,轻松玩转云端数据库!"
【8月更文挑战第14天】在云计算时代,数据库安全至关重要。阿里云RDS提供自动备份,但标准策略难以适应所有场景。传统手动备份灵活性差、管理成本高且恢复效率低。本文对比手动备份,介绍使用Python自定义阿里云RDS备份策略的方法,实现动态调整备份频率、集中管理和智能决策,提升备份效率与数据安全性。示例代码演示如何创建自动备份任务。通过自动化与智能化备份管理,支持企业数字化转型。
93 2
|
3月前
|
存储 C# 关系型数据库
“云端融合:WPF应用无缝对接Azure与AWS——从Blob存储到RDS数据库,全面解析跨平台云服务集成的最佳实践”
【8月更文挑战第31天】本文探讨了如何将Windows Presentation Foundation(WPF)应用与Microsoft Azure和Amazon Web Services(AWS)两大主流云平台无缝集成。通过具体示例代码展示了如何利用Azure Blob Storage存储非结构化数据、Azure Cosmos DB进行分布式数据库操作;同时介绍了如何借助Amazon S3实现大规模数据存储及通过Amazon RDS简化数据库管理。这不仅提升了WPF应用的可扩展性和可用性,还降低了基础设施成本。
81 0
|
30天前
|
编解码 弹性计算 应用服务中间件
阿里云服务器Arm计算架构解析:Arm计算架构云服务器租用收费标准价格参考
阿里云服务器架构分为X86计算、Arm计算、高性能计算等多种架构,其中Arm计算架构以其低功耗、高效率的特点受到广泛关注。本文将深入解析阿里云Arm计算架构云服务器的技术特点、适用场景以及包年包月与按量付费的收费标准与最新活动价格情况,以供选择参考。
|
1月前
|
存储 Docker 容器
ARM架构鲲鹏主机BClinux离线安装docker步骤
下载并安装适用于ARM架构的Docker CE二进制文件,解压后移动至/usr/bin目录。创建docker组,配置systemd服务脚本(docker.service、docker.socket、containerd.service),重载systemd配置,启动并启用docker服务。编辑daemon.json配置存储驱动、镜像加速地址等,最后拉取所需镜像。
44 0

相关产品

  • 云数据库 RDS MySQL 版
  • 云数据库 RDS