Apache zookeeper Zookeeper忽略JVM标志?

Apache zookeeper Zookeeper忽略JVM标志?,apache-zookeeper,Apache Zookeeper,嗨,我设置了我的zookeeper集群,它似乎运行良好。但是我试图设置堆的大小,但它似乎没有得到尊重。我在conf/中使用export-JVMFLAGS=“-xms300m-xmx300m”文件创建了java.env 当我ps-aux | grep java时,我可以看到-Xmx1000m-xms300m-xmx300m。但是当我检查free-m时,我只看到200M已使用和3.3G免费 我注意到默认值是不考虑的。这会影响它吗 Xms不应该填满用过的RAM吗 如果使用/usr/bin/zooke

嗨,我设置了我的zookeeper集群,它似乎运行良好。但是我试图设置堆的大小,但它似乎没有得到尊重。我在
conf/
中使用
export-JVMFLAGS=“-xms300m-xmx300m”
文件创建了
java.env

当我
ps-aux | grep java
时,我可以看到
-Xmx1000m-xms300m-xmx300m
。但是当我检查
free-m
时,我只看到
200M
已使用和
3.3G
免费

  • 我注意到默认值是不考虑的。这会影响它吗
  • Xms不应该填满用过的RAM吗

如果使用/usr/bin/zookeeper服务器,则可能需要在systemd unit文件中设置kafka_HEAP_OPTS

Environment="KAFKA_HEAP_OPTS=-Xmx1024M -Xms1024M"

文件
zkEnv.sh
包含以下行:

export SERVER_JVMFLAGS="-Xmx${ZK_SERVER_HEAP}m $SERVER_JVMFLAGS"

“-Xmx${ZK\u SERVER\u HEAP}m”
造成了麻烦。

这就是我最终的工作方式

在conf/java.env中


export SERVER_JVMFLAGS=“-Xms6144m-Xmx6144m-XX:+AlwaysPreTouch”

我还通过systemd内部的
Environment=“JVMFLAGS=-Xmx512m”
使用3.5.5获得了一个重复的
Xmx
ps
显示:
-Xmx1000m-Xms512m-Xmx512m
请参阅我对第二个答案的评论。它将显示double,但JVM将使用最后一个值。但是你需要做这个触摸前的事情。当然,我没弄错。为了让它在启动时分配最大ram。Hi@user432024,我面临同样的问题。你找到答案了吗?感谢我对关于-XX:+的第二个答案的评论。我想出来了。即使您使用-Xmx,JVM/Linux也可能不会在应用程序的init上分配所有ram,即使-Xmx意味着分配最大值。Linux将确保应用程序将获得ram,但不会预先分配它。JVM上还有另一个标志-XxAlwaysPreTouch,它将触及所有页面,并强制Linux在init上分配完整的Xmx。我记得我对自己说不需要它,所以没有使用它。有人能证实这一点吗?