繁体   English   中英

你如何为 zookeeper 配置 java 堆大小?

[英]How do you configure the java heap size for zookeeper?

我正在尝试在 Ubuntu 18.04LTS Azure VM 上设置 Zookeeper 3.4.10。

根据ZooKeeper 管理员指南“不正确的Java 堆大小你应该特别注意正确设置你的 Java 最大堆大小。特别是,你不应该创建 ZooKeeper 交换到磁盘的情况......”

该指南没有提供有关如何设置最大堆大小的说明。 我已经做了一些搜索并找到了在 zookeeper/conf 目录中创建一个 java.env 的建议。 我已经这样做了,并尝试使用我在研究过程中发现的两种不同方法来设置变量:

尝试 #1:

export JVMFLAGS="-Xmx6144m"

尝试#2

#!/bin/bash
export CLASSPATH="~/zookeeper-3.4.10/conf/log4j.properties"
export JVMFLAGS="-Xmx6144m"

进行这些更改并重新启动 zookeeper 后,我检查了 java 堆大小:

java -XshowSettings:vm

并且最大堆大小没有改变。

为 zookeeper 配置最大堆的正确步骤是什么?

Zookeeper 的二进制版本包含bin目录,其中包含您感兴趣的以下文件:

  • zkServer.sh
  • zk环境.sh

zkEnv.sh定义所有配置文件的位置和一些 JVM 调整旋钮,例如 JVM 堆大小。 JVM 堆大小可以通过 shell 变量ZK_SERVER_HEAP (以 MB 为单位)更改。
使用以下命令设置自定义堆大小:

cd bin/
ZK_SERVER_HEAP=128 ./zkServer.sh start-foreground

在最新版本的 Zookeeper 的 output 中,您可以找到以下几行:

2021-01-14 17:24:18,400 [myid:] - INFO  [main:Environment@98] - Server environment:os.memory.free=114MB
2021-01-14 17:24:18,400 [myid:] - INFO  [main:Environment@98] - Server environment:os.memory.max=128MB
2021-01-14 17:24:18,400 [myid:] - INFO  [main:Environment@98] - Server environment:os.memory.total=128MB

可以使用SERVER_JVMFLAGS设置其他 JVM 选项,例如,使用非默认 GC:

ZK_SERVER_HEAP=128 SERVER_JVMFLAGS="-XX:+UseShenandoahGC" ./zkServer.sh start-foreground

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM