ZooKeeper的一个性能测试

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
云原生网关 MSE Higress,422元/月
性能测试 PTS,5000VUM额度
简介:

3台ZooKeeper服务器。8核64位 jdk1.6;log和snapshot放在不同磁盘

场景一

同一个目录下,先create EPHEMERAL node,再delete;create和delete各计一次更新。没有订阅。
一个进程开多个连接,每个连接绑定一个线程,在多个path下做上述操作;不同的连接操作的path不同

测试结果数据汇总如下:

dataSize(字节) totalReq recentTPS avgTPS recentRspTim avgRspTim failTotal
4096 2037 1585
1024 7677 280
255 14723 82
说明 总请求数 实时TPS 实时响应时间(ms)

场景二

一个进程开多个连接,每连接一个线程,每个连接在多个path下做下述操作;不同的连接操作的path不同
每个path有3个订阅者连接,一个修改者连接。先全部订阅好。然后每个修改者在自己的每个path下创建一个EPHEMERAL node,不删除;创建前记录时间,订阅者收到event后记录时间(eventStat);重新get到数据后再记录时间(dataStat)。共1000个pub连接,3000个sub连接,20W条数据。

结果汇总:getAfterNotify=false(只收事件,受到通知后不去读取数据);五台4核client机器
dataSize(字节) totalReq recentTPS avgTPS recentRspTim avgRspTim failTotal
4096 8000+ 520左右
2048 1W+ 270左右
1024 1W+ 256左右
255 1W+ 256左右
说明 总请求数 实时TPS 实时响应时间(ms)

收到通知后再去读取数据,五台4核client机器
dataSize(字节) totalReq recentTPS avgTPS recentRspTim avgRspTim failTotal
eventStat 4096 8000+ 1000左右
eventStat 4096 3200 2200-2600
dataStat 4096 3200 4000-4300
eventStat 1024 9500 400-900
dataStat 1024 9500 700-1100
eventStat 256 8500 200-1000
dataStat 256 8500 300-1400
说明 总请求数 实时TPS 实时响应时间(ms)

收到通知后再去读取数据,1台8核client机器
dataSize(字节) totalReq recentTPS avgTPS recentRspTim avgRspTim failTotal
eventStat 4096 5771 9604
eventStat 4096 5558 10633
dataStat 4096 5558 10743
eventStat 1024 6000 9400
dataStat 1024 6000 10000
eventStat 256 6374 10050
dataStat 256 6374 10138
说明 总请求数 实时TPS 实时响应时间(ms)

场景三

一个进程开多个连接,每连接一个线程,每个连接在多个path下做下述操作;不同的连接操作的path不同
每个path有一个修改者连接,没有订阅者。每个修改者在自己的每个path下设置数据。

结果汇总:getAfterNotify=false(只收事件,受到通知后不去读取数据);五台4核client机器

dataSize(字节)

totalReq

recentTPS

avgTPS

recentRspTim

avgRspTim

failTotal

4096

2037

1585


1024

7677

280


255

14723

82


说明

总请求数

实时TPS

实时响应时间(ms)

总结
由于一致性协议带来的额外网络交互,消息开销,以及本地log的IO开销,再加上ZK本身每1000条批量处理1次的优化策略,写入的平均响应时间总会在50-60ms之上。但是整体的TPS还是可观的。单个写入数据的体积越大,响应时间越长,TPS越低,这也是普遍规律了。压测过程中log文件对磁盘的消耗很大。实际运行中应该使用自动脚本定时删除历史log和snapshot文件。

本文来源于"阿里中间件团队播客",原文发表时间" 2011-07-15"

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
打赏
0
0
0
0
159
分享
相关文章
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
89 1
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
96 1
假设测试数据集test_data为随机生成的,并设置小批次。model神经网络已经训练好了,怎么用MSE来做测试
其中,model表示已经训练好的PyTorch模型,torch.rand()函数用于生成测试数据集,torch.split()函数用于将测试数据集分成小批次,model(batch)用于对小批次的输入数据进行预测,torch.cat()函数用于将所有小批次的预测值拼接在一起,最后使用mean_squared_error()函数计算均方误差。注意,在计算均方误差之前,需要将测试数据集和预测值转换为NumPy数组并将它们从GPU中移动到CPU上。
202 0
测试理论--zookeeper相关
ZooKeeper相关内容讲解与基本操作方法
151 0
测试理论--zookeeper相关
消息中间件kafka+zookeeper集群部署、测试与应用
业务系统中,通常会遇到这些场景:A系统向B系统主动推送一个处理请求;A系统向B系统发送一个业务处理请求,因为某些原因(断电、宕机。。),B业务系统挂机了,A系统发起的请求处理失败;前端应用并发量过大,部分请求丢失或后端业务系统卡死。
2296 15
zookeeper集群搭建及java程序测试
下载官网:http://zookeeper.apache.org/releases.html 下载:zookeeper-3.4.8.tar.gz 安装因为资源有限,所以我在同一个服务器上面创建3个目录 server1、server2、server3 来模拟3台服务器集群。
8393 0

热门文章

最新文章