目标:通过对常规的Redis性能测试,使学员快速了解到在X86架构和ARM架构的性能差异,以及熟练使用benchmark压力测试工具,分析比较不同架构的Redis性能差异.

架构图中部署3台主机,分别是:\
1台压测服务器(沿用 压力测试机)
1台X86的Redis(沿用实验2的 x86 Redis服务器)
1台ARM架构的Redis(沿用实验2的 Graviton Redis服务器)
Redis使用6.0.9版本

压测EC2已经通过模版创建,参数如下:
名称: Graviton_GameDay_Stress
实例类型:c5.2xlarge
Amazon Machine Image(AMI): Amazon Linux 2 AMI(HVM)
架构:64位(ARM)
密钥对名称:模版创建的密钥对ee-default-keypair.pem
VPC: gameday1-VPCStack
子网:Public-subnet 1A
安全组:gameday1-SecurityGroupStack-XXXXXXX-APPServerSecurityGroup
存储:50GB

使用putty或者第三方工具通过跳板机Bastion登Graviton_GameDay_Redis2目标服务器,也可以使用aws ssm工具登录
打开命令行窗口
#登录跳板机
ssh -i /<your private key> ec2-user@<your Bastion IP>
#登录Graviton redis服务器
ssh -i /<your private key> ec2-user@<your Graviton_Target-Redis IP>
如打算使用SSM登录请参考Java部分,请先确认EC2是否具有SSM的角色,请查看如下图

确认有对应的角色,则可以使用SSM连接登录。
Redis目标主机上分别运行netsta -natp命令,
netstat -natp
效果如下图:
查看到端口6379处于监听中,说明redis服务正常。
exit
运行exit,回到跳板机Bastion
再跳转登录到Graviton_GameDay_Redis1,查询X86 redis的主机Graviton_GameDay_Redis1 IP地址

然后通过跳板机登录到Graviton_GameDay_Redis1
ssh -i /<your private key> ec2-user@<your Graviton_GameDay_Redis1 IP>
运行netsta -natp查看redis服务是否正常运行。
netstat -natp
效果如下图:
查看到端口6379处于监听中,说明redis服务正常。
使用SSM登录,或者打开一个新的命令行窗口,使用SSH登录Graviton_GameDay_Stress主机,命令如下:
ssh -i /<your private key> ec2-user@<Graviton_GameDay_Stress IP>
请在Graviton_GameDay_Stress压测服务器上执行以下命令,部署redis 自带的benchmark压测服务
cd /home/ec2-user/
Redisversion=6.0.9
sudo amazon-linux-extras install epel -y
sudo yum install gcc jemalloc-devel openssl-devel tcl tcl-devel -y
sudo wget https://download.redis.io/releases/redis-$Redisversion.tar.gz -O ./redis.tar.gz
sudo tar xvzf redis.tar.gz
cd redis-$Redisversion
sudo make BUILD_TLS=yes
请下载压测excel模版文档,对压测结果进行记录和比较
home/ec2-user/redis-6.0.9/src/redis-benchmark -h <redis-server IP> -c 200 -r 100000000 -n 20000000 -t get,set,lpush,lpop -q -P 100
参数说明:
-c 模拟客户端连接数
-r 用于测试的随机key数量
-n 发送的请求数
-t 发送的命令类型
-q 静默模式,只输出query/sec
-P Pipeline 请求的数量
执行结果如下,记录结果到excel 文档:
/home/ec2-user/redis-6.0.9/src/redis-benchmark -h 172.31.39.141 -c 200 -r 100000000 -n 20000000 -t get,set,lpush,lpop -q -P 100
SET: 624519.94 requests per second
GET: 793553.62 requests per second
LPUSH: 1191435.88 requests per second
LPOP: 973057.62 requests per second
通过对ARM和X86的 EC2主机分别做压测,并记录测试的最终数据, 我们可以发现ARM架构gravition的服务器在吞吐量和延迟上的表现有明显优势
测试结束请不要关闭压测服务器,以待后续数据库压测使用。