zookeeper节点数与watch的性能测试
作者:网络转载 发布时间:[ 2015/3/3 17:12:32 ] 推荐标签:性能测试 软件测试技术
zookeeper中节点数量理论上仅受限于内存,但一个节点下的子节点数量受限于request/response 1M数据 (size of data / number of znodes)
zookeeper的watch机制用于数据变更时zookeeper的主动通知。watch可以被附加到每一个节点上,那么如果一个应用有10W个节点,那zookeeper中可能有10W个watch(甚至更多)。每一次在zookeeper完成改写节点的操作时会检测是否有对应的watch,有的话则会通知到watch。Zookeeper-Watcher机制与异步调用原理
本文将关注以下内容:
zookeeper的性能是否会受节点数量的影响
zookeeper的性能是否会受watch数量的影响
测试方法
在3台机器上分别部署一个zookeeper,版本为3.4.3,机器配置:
Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz
16G
java version "1.6.0_32"
Java(TM) SE Runtime Environment (build 1.6.0_32-b05)
OpenJDK (Taobao) 64-Bit Server VM (build 20.0-b12-internal, mixed mode)
大部分实验JVM堆大小使用默认,也是1/4 RAM:
java -XX:+PrintFlagsFinal -version | grep HeapSize
测试客户端使用zk-smoketest,针对watch的测试则是我自己写的。基于zk-smoketest我写了些脚本可以自动跑数据并提取结果,相关脚本可以在这里找到:https://github.com/kevinlynx/zk-benchmark
测试结果
节点数对读写性能的影响
测试大10W个节点,度量1秒内操作数(ops):
可见节点数的增加并不会对zookeeper读写性能造成影响。
节点数据大小对读写性能的影响
这个网上其实已经有公认的结论。本身单个节点数据越大,对网络方面的吞吐会造成影响,所以其数据越大读写性能越低也在预料之中。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11