zookeeper节点数与watch的性能测试

发表于:2015-3-03 13:30

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:kevinlynx    来源:51Testing软件测试网采编

  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读写性能造成影响。
  节点数据大小对读写性能的影响
  这个网上其实已经有公认的结论。本身单个节点数据越大,对网络方面的吞吐就会造成影响,所以其数据越大读写性能越低也在预料之中。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号