Redis性能高30%,阿里云倚天ECS性能摸底和迁移实践

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: Redis在倚天ECS环境下与同规格的基于 x86 的 ECS 实例相比,Redis 部署在基于 Yitian 710 的 ECS 上可获得高达 30% 的吞吐量优势。成本方面基于倚天710的G8y实例售价比G7实例低23%,总性价比提高50%;按照相同算法,相对G8a,性价比为1.4倍左右。

简介

Redis(Remote Dictionary Server)是一种开源的内存型数据存储,通常被用作数据库缓存系统。 它广泛用于医疗卫生系统、物联网和金融服务等实时应用行业。 Redis具有高度可扩展性,可用于实时分析、缓存、发布/订阅应用程序和会话管理。

Redis是一种Key-Value的No SQL数据库,性能是Mysql的10-100倍;支持多种数据类型(String、Hash、List、set、zset...),支持通过CLI、API、GUI等方式读写。SQL数据存储在磁盘不同,Redis数据在内存中。倚天ECS采用DDR5内存,可获得比DDR450%带宽,实现更高性能的读写性能。同时在超高并发下,物理核+Cache设计比传统的Hyper thread的共享ALUcache,可获得更好的性能。

生产环境中,一般采用R系列(内存:CPU=8),在本文中,我们在阿里云 ECS G8y 实例(基于 Armv9 的倚天 710 处理器)和G7 实例(x86)上做了Redis的吞吐量测试对比,以展示倚天 710 的性能优势。

架构和环境

我们使用 memtier_benchmark作为负载生成器和性能基准测试工具。 它是 Redis Labs 为 Redis 构建的开源高吞吐量基准测试工具。 memtier_benchmark 部署在单独的 ECS 实例上。

对于Redis服务器,我们在4xlarge实例部署了16个Redis进程,并组成Redis集群模式,测试拓扑如下。16Redis进程通过绑核方式使其调度多个CPU上,充分发挥每个Core能力,部署架构如下

image.png

1. Redis部署架构-基准测试拓扑

两种被测ECS实例类型配置如下。基准测试客户端使用了一个单独的G8y.16xlarge实例。

表1.1 测试ECS实例规格


Redis软件版本和测试参数。

表1.2 Redis软件版本


表1.3 Redis测试参数


性能优化和测试结果

测试脚本

memtier_benchmark -s $redis_server_ip -p 7001 --random-data
   --data-size-pattern=S --key-minimum=200 --key-maximum=100000
   --key-pattern=G:G --cluster-mode --clients=2 --threads=32
   --ratio=1:1 --test-time=60

Redis-server运行在4xlarge实例上,16个进程组成一个集群,redis proxy 端口为7001,压测端使用16xlarge实例进行压测,memtier_benchmark创建2clients 32threads对redis 集群发送请求,相当于64个并发请求,每条请求会通过7001端口所在redis进程均衡到集群上。

通过在倚天上启用Booster加速,包括XPS (Transmit Packet Steering)以及中断调优手段, Yitian 710 与同规格的 x86 的 ECS 实例相比,Redis 数据库的吞吐量性能优势高达 35% 。下表中显示的结果是 5 次连续测试运行的汇总结果。

Redis性能优化方案通过ECS Booster一键开启。在实例创建阶段,选择倚天实例G8y,选择Alinux操作系统,勾选加速选项redis加速即可。

image.png

图2. ECS Booster一键加速功能开启

采用Booster加速,可以大幅度提升性能Redis 在 G8y 和 G7 实例上的性能数据如下:

 

表2. (G8y vs. G7) Redis 吞吐量性能数据

优化前后的性能测试表格如下:

image.png

图3. (G8y vs. G7) Redis吞吐量性能优势

平台选择决策

为了帮助用户决策,我们还测试了Redis6在最新主流场景的性能,在多款ECS产品中对比性能见图

8vcpu,其他参数与前文相同)

image.png

4. Redis ECS多代实例性能横向对比

另外,第八代ECS支持eRDMA,有效减少内存拷贝,降低网络时延,提升吞吐量,能帮助Redis大幅度提升处理性能;下图为阿里某客户业务性能。

image.png

图5,R8y.xlarge,4c32g规格下Redis qps性能数据

注意事项:

·       Redis4567版本在倚天上均可直接运行,优化后性能都具备性能优势。(其他OS请联系服务支持优化)

·      Booster加速:默认对Alinux3环境加速,默认安装redis6(可自行更换版本)

·       实例推荐:鉴于Redis消耗内存容量大,建议使用R系列内存型实例;

·       不适用场景:vcpu资源部分闲置场景。比如x86场景下,2HT只使用1个进程,导致1HT闲置,如更换为ARM服务器性能不具备优势(只发挥50%物理核能力)

总结

Redis是数据库加速方案最流行开源软件。适合电商、网站、博客等应对突发、大流量访问,需要数千台的部署。与同规格的基于 x86 ECS 实例相比,Redis部署在基于 Yitian 710 ECS 上可获得超过30%吞吐量性能优势。成本方面基于倚天710G8y实例售价比G7实例低23%,总性价比提高50%;按照相同算法,相对G8a,性价比为1.4倍左右。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
2天前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
3天前
|
网络安全 开发工具 云计算
服务器看代码阿里云
随着云计算技术的发展,阿里云作为国内领先的云计算服务提供商,其服务器受到广大用户青睐。本文主要介绍如何在阿里云服务器上便捷地查看与管理代码,如使用SSH连接服务器并通过命令行工具打开文件,以及利用Git进行版本控制和协作开发,提高代码管理效率。无论个人开发者还是企业团队,都能借助阿里云服务器高效地部署与管理应用程序,提升工作效率及产品质量。
27 10
|
7天前
|
人工智能 运维 Cloud Native
专访阿里云:AI 时代服务器操作系统洗牌在即,生态合作重构未来
AI智算时代,服务器操作系统面临的挑战与机遇有哪些?
|
6天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
8天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
2天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
弹性计算 NoSQL 测试技术
ECS上自建Redis服务压测报告
## 背景说明 最近处理的企业大客户问题中,出现好几例都是客户通过购买ECS进行自建Redis服务,并且在使用过程中碰到一些因云环境的内部限制等原因导致客户使用中碰到服务异常或者产品性能上无法满足业务需求的情况。
3313 0
|
18天前
|
缓存 NoSQL Redis
【Azure Redis 缓存】Redission客户端连接Azure:客户端出现 Unable to send PING command over channel
【Azure Redis 缓存】Redission客户端连接Azure:客户端出现 Unable to send PING command over channel
|
14天前
|
缓存 NoSQL Java
Redis深度解析:解锁高性能缓存的终极武器,让你的应用飞起来
【8月更文挑战第29天】本文从基本概念入手,通过实战示例、原理解析和高级使用技巧,全面讲解Redis这一高性能键值对数据库。Redis基于内存存储,支持多种数据结构,如字符串、列表和哈希表等,常用于数据库、缓存及消息队列。文中详细介绍了如何在Spring Boot项目中集成Redis,并展示了其工作原理、缓存实现方法及高级特性,如事务、发布/订阅、Lua脚本和集群等,帮助读者从入门到精通Redis,大幅提升应用性能与可扩展性。
32 0

相关产品

  • 云服务器 ECS