客户案例 > 案例详情
RDS MySQL倚天ARM架构助力无端科技游戏业务稳定应对流量洪峰,并实现增效降本

借助RDS MySQL,无端科技在保证稳定和性能的前提下,实现降本增效、业务平滑迁移、稳定应对高并发访问。

客户介绍

无端科技成立于2010年,是国内一流的休闲竞技游戏研发商(国内领先的集研发与运营为一体的射击游戏厂商)。公司先后在网页、手机、客户端平台自研和发行10余款游戏产品,其中,射击页游《生死狙击》全球累计用户超5亿,月活跃用户达3000万。首款自研次世代畅爽射击端游《生死狙击2》于2022年上线。 无端深耕射击品类赛道的同时,致力于休闲竞技领域的差异化产品布局,持续推出打动人心和充满惊喜的精品游戏。

业务挑战

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

服务器场景:物理服务器架构通常用于大型多人在线游戏,它通过将游戏服务器置于物理服务器上,提供高可用性和高性能的游戏体验。这种架构需要大量的硬件、软件和网络资源来支持。

分布式场景:分布式架构采用多个节点来实现游戏的分布式处理。这种架构可以提高游戏的性能和可扩展性,同时也能够提供更好的容错性,防止游戏崩溃。

数据库场景:游戏场景一般采用关系型数据库和非关系型数据库的混合使用。关系型数据库提供事务的支持,非关系型数据库提供高可用性和高读写性能的支持。

客户端场景:随着移动设备的普及,移动端和PC端技术也成为了游戏场景下的一个重要技术。移动端技术主要包括移动应用开发、移动游戏开发、移动网页开发等方面的技术。

基于以上游戏场景,无端科技的游戏架构对高并发、实时性、安全性、可扩展性、灵活性提出了较高的需求:

高并发:游戏场景下的互联网技术架构需要支持大量用户同时访问和使用游戏服务,因此架构需要具备高并发处理能力,同时保证游戏服务的稳定性和可用性。

实时性:大多数游戏都需要实时处理和响应玩家的操作,因此游戏场景下的互联网技术架构需要具备快速的实时处理能力,可以保证玩家在游戏过程中获得流畅的体验。

安全性:游戏场景下的互联网技术架构需要具备高强度的安全性措施,以保护用户隐私和游戏数据的安全。这包括权限控制、数据加密、防火墙等多种安全技术。

可扩展性:游戏场景下的互联网技术架构需要具备高度的可扩展性,可以支持新增功能和服务,同时支持大规模的用户增长。

灵活性:游戏场景下的互联网技术架构需要具备灵活性,可以快速适应不同类型的游戏需求和用户需求。架构需要支持快速迭代和定制化开发,以满足不同游戏的需求。

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

“RDS MySQL倚天ARM版提供稳定高性能的访问,满足我们的业务诉求,助力我们实现降本增效,平滑支撑多次大型活动。”

--无端科技数据库负责人 许岩

阿里云的解决方案
RDS MySQL倚天ARM架构

硬件层面

Prefetch预取策略优化:阿里云对默认的倚天710进行了Prefetch预取策略优化。从预取算法的选择,预取量的控制,预取过程中对L2的使用等方面,选取了一组最适合数据库场景的预取策略。

OS层面

调度算法优化:自Linux内核版本2.6.23以来,CFS(Completely Fair Scheduler)成为默认的Linux内核调度程序。CFS为了保证对每个可运行任务的公平处理,会通过累计vruntime,保证任务调度的公平。在ARM服务上,频繁的线程调度会带来较大的性能开销。因此,阿里云数据库团队针对性优化了OS的调度策略,从而保证RDS在ARM服务器下的高性能。

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

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

编译优化:在ARM服务器上,为了提升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机制也带来了更大的I/O压力,特别是在云盘场景下。为此,数据库打通块存储和文件系统,实现了16K原子写的能力,在此能力的保障下,率先可以在ARM体系下安全地关闭Double Write,降级写I/O的压力,极大提升I/O Bound场景下的性能。

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

业务价值

在稳定性方面,RDS MySQL倚天ARM架构规格与X86有着一致的高SLA保障。产品功能和使用体验上也与X86规格完全一致,应用无适配门槛。 在无端科技的《生死狙击2》游戏场景中,基于RDS MySQL倚天ARM架构,在保证稳定和性能的前提下,助力客户实现了以下核心业务价值:

降本增效:相较于X86架构,基于RDS MySQL倚天ARM架构的数据库成本大幅下降,而性能和稳定性与X86架构相当,达到了无端科技对于降本增效的诉求。

业务平滑迁移:基于RDS MySQL倚天ARM架构的产品功能与X86架构上的功能完全一致,在应用零改造的基础上,实现业务的无感平滑迁移和改造。

稳定应对高并发访问:基于RDS MySQL倚天ARM架构有效应对游戏活动和赛季中的瞬间高并发访问,帮助无端科技稳定度过多次大型活动。