中国移动云能力中心:基于鲲鹏 DevKit 开发移动云云数据库,让数据并行访问更高效
随着企业数字化转型进程的不断深入,大量数据价值亟待释放,而传统数据库不仅投入成本高,而且面临使用周期长、不灵活、运维管理复杂等诸多挑战,难以满足数据库用户对海量数据及多元化场景的需求。随着国内云计算市场的快速发展,云数据库以高可靠、高可用、高性能,高弹性、自动化智能部署与运维等压倒性优势迅速崛起,成为企业打破传统数据库瓶颈的首选。
中国移动云能力中心是中国移动通信集团公司注资成立的一级子公司,以“云设施构建者、云服务提供者、云生态汇聚者”为定位,围绕“连接+算力+能力”布局,向客户提供专业的云计算、大数据解决方案。其自主研发的移动云云数据库 Redis,基于双机热备的高可用架构,并且兼容开源 Redis 协议,支持单机、主从、集群等多种缓存架构,能满足高并发场景下的读写请求,以及快速数据访问与弹性扩容的业务需求,为用户提供安全可靠的数据库管理服务。
云原生时代,大数据、GIS、人工智能和高性能计算等新兴应用和负载也在考验着数据库的“抗压”能力,因此承载中国移动云能力中心云数据库的底层基础设施也面临更多挑战:
高可用:数据库的正常运行会直接或间接地影响到程序的可用性,对互联网应用和企业大型应用而言,可用性需达到 99.999%以上以保证应用的平稳运行;
高性能:数据的爆发式增长,要求数据库具备更高的扩展性和更强悍的性能,以减少数据库访问压力,从而提升业务的稳定性和访问体验;
高安全:因为云数据库部署在云平台上,极容易遇到其他虚拟机或云用户的恶意攻击,从而对云数据库的安全性造成极大威胁。
鲲鹏平台天生的多核多并行能力,能够很好的满足移动云云数据库 Redis 对高可用、高性能及高安全的要求,同时还提供完善的鲲鹏 DevKit 开发套件以及专业服务,能够帮助用户快速完成应用的迁移、开发、编译和调优。
基于此,中国移动云能力中心与江苏鲲鹏·昇腾生态创新中心团队达成了深度合作,从技术安全性、生态连续性、技术先进性等多维度考虑进行产品研发创新,基于鲲鹏平台共同打造移动云云数据库 Redis ECSOV2.2,以高并发快速查询、高性能的数据处理能力为关键驱动要素,为政府、金融、用户提供高性能、高可靠的数据库产品。
【移动云云数据库 Redis ECSO 架构全栈图】
迁移:基于鲲鹏 DevKit 代码迁移工具,1 人天快速迁移部署 Redis ECSO
面对鲲鹏新的指令集架构硬件平台,技术人员需要由源码开始构建运行环境,手动编译该版本相关组件速度慢、效率低,工作量和技术难度大,通过鲲鹏 DevKit 代码迁移工具 Porting Advisor 共识别出待修改代码行 380 行,10 个待替换 Jar 包。原计划需要一周时间完成手动迁移,在工具帮助下,自动识别待迁移代码并给出代码修改建议,避免反复编译排错,平均 1 人天/应用就完成了业务系统的迁移,极大提高了迁移效率。
开发 &调优:基于鲲鹏 DevKit 高效开发移动云云数据 Redis ECSO V2.2 集群版,性能提升 18.90%+
迁移完成后,中国移动云能力中心计划在鲲鹏平台上进行该系统集群版本的开发迭代,满足高并发场景下的数据读写及准确性等要求。在开发过程中,为了提升编译效率,技术人员将 OpenJDK 替换成毕昇 JDK,为云数据库 Redis 的前端代码编译提供了更好的兼容性和稳定性。
此外,针对高并发场景下数据访问速度慢等问题,技术人员使用了鲲鹏 DevKit 性能分析工具对该平台进行了调优,以实现业务的快速响应。通过鲲鹏系统性能分析工具对系统软硬件配置进行在线分析,识别出系统运行时存在较多非连续内存问题及网卡资源消耗过高等情况,影响高并发场景下数据的处理能力。根据工具提供的优化建议,将系统参数 rx_buff 值修改成 8,提高内存使用率;同时修改系统参数 Ring Buffer,开启 LRO、配置网卡中断合并及网卡中断绑核,有效提高了网卡对数据的处理能力。
通过上述优化,数据设置指令的并行处理能力 QPS(每秒执行的请求数)效率提升 18.90%;数据获取指令的并行处理能力 QPS(每秒执行的请求数)效率提升 11.80%。云数据库的并行处理能力显著提升,同时优化了用户的访问速度,提升了用户使用体验。
【Redis ECSO V2.2 云数据库的数据并行处理能力对比】
目前中国移动云能力中心云数据库 Redis ECSO V2.2 已经广泛应用在视频直播、游戏、电商、互联网等业务场景。作为云计算领域的引领者,中国移动云能力中心也在不断推动云原生数据库服务的创新,积极探索云数据库与鲲鹏、openEuler 等产业生态的结合,帮助各行业企业展开云上创新之旅,持续为数字中国建设贡献力量。
鲲鹏 DevKit 也将围绕开发者体验持续升级能力,支持迁移扫描、鲲鹏亲和分析等插件快速接入企业现有开发流水线(如:Jenkins),不改变现有开发流程,开发者可以在流水线中快速扫描、修改、提交代码,更加便捷的发布鲲鹏版本。
【扫码登录鲲鹏社区 DevKit 专区,了解更多】
评论