【问题标题】:How do you configure the java heap size for zookeeper?你如何为zookeeper配置java堆大小?
【发布时间】:2021-01-14 22:30:49
【问题描述】:

我正在尝试在 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 配置最大堆的正确步骤是什么?

【问题讨论】:

    标签: java ubuntu-18.04 apache-zookeeper


    【解决方案1】:

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

    • zkServer.sh
    • zkEnv.sh

    zkEnv.sh 定义所有配置文件的位置和一些 JVM 调整旋钮,例如 JVM 堆大小。 JVM 堆大小可以通过 shell 变量 ZK_SERVER_HEAP(in 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 opts,例如,使用非默认GC:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      • 1970-01-01
      • 1970-01-01
      • 2011-08-29
      • 2012-01-31
      • 2011-05-18
      • 1970-01-01
      相关资源
      最近更新 更多