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

简介: 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内存,可获得比DDR4高50%带宽,实现更高性能的读写性能。同时在超高并发下,物理核+大Cache设计比传统的Hyper thread的共享ALU和cache,可获得更好的性能。

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

架构和环境

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

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

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

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

Processor

ECS type

Yitian 710

G8y.4xlarge

x86 CPU

G7.4xlarge

表1.1 测试ECS实例规格

Redis软件版本和测试参数。

Component name

Version

Redis

5.0.12

GCC version

10.2.1 20200825 (Alibaba 10.2.1-3 2.32)

Memtier benchmarking tool

1.3.0

Operating System

Alibaba Cloud Linux 3.2104 LTS

表1.2 Redis软件版本

Test config parameter

Value

Number of Memtier clients

2

Number of threads

32

Number of consecutive tests runs

3

Data size

random

Data size pattern

S

Protocol

Redis

Key pattern

G:G

Reading and writing ratio

1:1

Test time

60

Cluster-mode

Yes

Pipeline

1

表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加速”即可。

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

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

调优措施

G7.4xlarge

(Requests/sec)

G8y.4xlarge 

(Requests/sec)

Perf benifit gain

 (%)

基础

2252137

2307270

2%

Booster开启redis加速

2252137 

(无加速开关)

3046344

35%

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

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

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

平台选择决策

为了帮助用户决策,我们还测试了Redis6在最新主流场景的性能,在多款ECS产品中对比性能见图(8vcpu,其他参数与前文相同)

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

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

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

  • 注意事项:
  • Redis:4、5、6、7版本在倚天上均可直接运行,优化后性能都具备性能优势。(其他OS请联系服务支持优化)
  • Booster加速:默认对Alinux3环境加速,默认安装redis6(可自行更换版本)
  • 实例推荐:鉴于Redis消耗内存容量大,建议使用R系列内存型实例;
  • 不适用场景:vcpu资源部分闲置场景。比如x86场景下,2HT只使用1个进程,导致1HT闲置,如更换为ARM服务器性能不具备优势(只发挥50%物理核能力)

总结

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

好啦!小弹的分享到此为止。我们更欢迎您分享您对阿里云产品的设想、对功能的建议或者各种吐槽,请扫描提交问卷并获得社区积分或精美礼品一份。https://survey.aliyun.com/apps/zhiliao/P4y44bm_8

【扫码填写上方调研问卷】

欢迎每位来到弹性计算的开发者们来反馈问题哦~

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
2天前
|
人工智能 监控 测试技术
阿里云磐久服务器稳定性实践之路
阿里云服务器质量智能管理体系聚焦自研服务器硬件层面的极致优化,应对高并发交付、短稳定性周期、早问题发现和快修复四大挑战。通过“三个重构”(质量标准、开发流程、交付模式)、“六个归一”(架构、硬件、软件、测试、部件、制造)策略,实现芯片、整机和云同步发布,确保快速稳定上量。此外,全场景测试体系与智能预警、分析、修复系统协同工作,保障服务器在萌芽阶段发现问题并及时解决,提升整体质量水平。未来,阿里云将继续深化大数据驱动的质量管理,推动服务器行业硬件质量的持续进步。
|
3天前
|
存储 人工智能 运维
面向AI的服务器计算软硬件架构实践和创新
阿里云在新一代通用计算服务器设计中,针对处理器核心数迅速增长(2024年超100核)、超多核心带来的业务和硬件挑战、网络IO与CPU性能增速不匹配、服务器物理机型复杂等问题,推出了磐久F系列通用计算服务器。该系列服务器采用单路设计减少爆炸半径,优化散热支持600瓦TDP,并实现CIPU节点比例灵活配比及部件模块化可插拔设计,提升运维效率和客户响应速度。此外,还介绍了面向AI的服务器架构挑战与软硬件结合创新,包括内存墙问题、板级工程能力挑战以及AI Infra 2.0服务器的开放架构特点。最后,探讨了大模型高效推理中的显存优化和量化压缩技术,旨在降低部署成本并提高系统效率。
|
2月前
|
NoSQL Java 数据处理
基于Redis海量数据场景分布式ID架构实践
【11月更文挑战第30天】在现代分布式系统中,生成全局唯一的ID是一个常见且重要的需求。在微服务架构中,各个服务可能需要生成唯一标识符,如用户ID、订单ID等。传统的自增ID已经无法满足在集群环境下保持唯一性的要求,而分布式ID解决方案能够确保即使在多个实例间也能生成全局唯一的标识符。本文将深入探讨如何利用Redis实现分布式ID生成,并通过Java语言展示多个示例,同时分析每个实践方案的优缺点。
70 8
|
2月前
|
缓存 NoSQL Redis
Redis 缓存使用的实践
《Redis缓存最佳实践指南》涵盖缓存更新策略、缓存击穿防护、大key处理和性能优化。包括Cache Aside Pattern、Write Through、分布式锁、大key拆分和批量操作等技术,帮助你在项目中高效使用Redis缓存。
342 22
|
2月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
75 4
|
3月前
|
NoSQL 关系型数据库 MySQL
MySQL与Redis协同作战:百万级数据统计优化实践
【10月更文挑战第21天】 在处理大规模数据集时,传统的单体数据库解决方案往往力不从心。MySQL和Redis的组合提供了一种高效的解决方案,通过将数据库操作与高速缓存相结合,可以显著提升数据处理的性能。本文将分享一次实际的优化案例,探讨如何利用MySQL和Redis共同实现百万级数据统计的优化。
130 9
|
2月前
|
存储 弹性计算 NoSQL
"从入门到实践,全方位解析云服务器ECS的秘密——手把手教你轻松驾驭阿里云的强大计算力!"
【10月更文挑战第23天】云服务器ECS(Elastic Compute Service)是阿里云提供的基础云计算服务,允许用户在云端租用和管理虚拟服务器。ECS具有弹性伸缩、按需付费、简单易用等特点,适用于网站托管、数据库部署、大数据分析等多种场景。本文介绍ECS的基本概念、使用场景及快速上手指南。
93 3
|
3月前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
3月前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感

相关产品

  • 云服务器 ECS