1

我做了一些测试,似乎 zookeeper 没有清理最后 500 个删除的节点。

在我的测试中,我创建了节点并在创建后删除了每个节点。我重复了这个步骤 1000 次,然后触发了一个完整的 gc。这些是结果

Creating 1000 Nodes and deleting 1000 Nodes and each node has...
 ...1000kb data = 529MB heap used after FullGC
 ...500kb  data = 281MB heap used after FullGC
 ...256kb  data = 140MB heap used after FullGC
 ...128kb  data =  68MB heap used after FullGC

如果我用每个 1000kb 数据创建 1000 个节点,然后删除这些节点,然后用 128kb 数据创建 1000 个节点并再次删除节点,则使用 68MB 堆空间。

所以看起来 Zookeeper 缓存/没有清理最后 500 个删除的节点。

这是一个错误还是有配置参数来改变这种行为?

4

1 回答 1

0

ZKDatabase.committedLog 保留了过去的 500 个事务。所以这就是行为的原因。此设置不可配置,但存在一个未解决的问题

于 2013-04-10T10:23:18.500 回答