你如何为 zookeeper 配置 java 堆大小?
How do you configure the java heap size for zookeeper?
我正在尝试在 Ubuntu 18.04LTS Azure VM 上设置 Zookeeper 3.4.10。
根据 ZooKeeper Administrator's Guide
“不正确的 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
- zkEnv.sh
zkEnv.sh
定义所有配置文件的位置和一些 JVM 调整旋钮,例如 JVM 堆大小。 JVM 堆大小可以通过 shell 变量 ZK_SERVER_HEAP
(以 MB 为单位)更改。
使用以下命令设置自定义堆大小:
cd bin/
ZK_SERVER_HEAP=128 ./zkServer.sh start-foreground
在最新版本的 Zookeeper 的输出中,您可以找到以下几行:
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
我正在尝试在 Ubuntu 18.04LTS Azure VM 上设置 Zookeeper 3.4.10。
根据 ZooKeeper Administrator's Guide “不正确的 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
- zkEnv.sh
zkEnv.sh
定义所有配置文件的位置和一些 JVM 调整旋钮,例如 JVM 堆大小。 JVM 堆大小可以通过 shell 变量 ZK_SERVER_HEAP
(以 MB 为单位)更改。
使用以下命令设置自定义堆大小:
cd bin/
ZK_SERVER_HEAP=128 ./zkServer.sh start-foreground
在最新版本的 Zookeeper 的输出中,您可以找到以下几行:
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