zookeeper开机启动内存设置

由于服务器内存比较多,以前用的是zookeeper的默认内存,启动的时候没有对内存进行修改,为了让zookeeper能更好的工作,现在对zookeeper的启动内存进行指定。
首先 zookeep的内存大小指定的的配置文件在bin/zkEnv.sh,如下:

ZOOBINDIR="${ZOOBINDIR:-/usr/bin}"
ZOOKEEPER_PREFIX="${ZOOBINDIR}/.."

if [ "x$ZOOCFGDIR" = "x" ]
then
  if [ -e "${ZOOKEEPER_PREFIX}/conf" ]; then
    ZOOCFGDIR="$ZOOBINDIR/../conf"
  else
    ZOOCFGDIR="$ZOOBINDIR/../etc/zookeeper"
  fi
fi

if [ -f "${ZOOCFGDIR}/zookeeper-env.sh" ]; then
  . "${ZOOCFGDIR}/zookeeper-env.sh"
fi

if [ "x$ZOOCFG" = "x" ]
then
    ZOOCFG="zoo.cfg"
fi

ZOOCFG="$ZOOCFGDIR/$ZOOCFG"

if [ -f "$ZOOCFGDIR/java.env" ]
then
    . "$ZOOCFGDIR/java.env"
fi

if [ "x${ZOO_LOG_DIR}" = "x" ]

其中$ZOOCFGDIR/java.env是就是设置jvm内存大小的文件,这个文件默认情况下是没有的,需要手动创建,

 vim /usr/local/services/zookeeper-3.4.8/conf/zookeeper-env.sh
source /etc/profile.d/java.sh
#ZOO_LOG4J_PROP=INFO,ROLLINGFILE
#ZOO_LOG_DIR=/usr/local/services/zookeeper-3.4.8/logs
#ZOOPIDFILE="${ZOO_LOG_DIR}"/zookeeper-server.pid
#SERVER_JVMFLAGS="-Xms2096m -Xmx2086m"
export JVMFLAGS="-Xms4096m -Xmx4096m $JVMFLAGS"

然后重新启动zk,然后你会发现,zk的jvm设置生效了,神奇吧:

[root@esearch-prod-component-010177210122 /usr/local/services/zookeeper-3.4.8/logs] 20:28:02 0
# jmap  -heap 31058
Attaching to process ID 31058, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.91-b14

using thread-local object allocation.
Parallel GC with 23 thread(s)

Heap Configuration:
   MinHeapFreeRatio         = 0
   MaxHeapFreeRatio         = 100
   MaxHeapSize              = 4294967296 (4096.0MB)
   NewSize                  = 1431306240 (1365.0MB)
   MaxNewSize               = 1431306240 (1365.0MB)
   OldSize                  = 2863661056 (2731.0MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 17592186044415 MB
   G1HeapRegionSize         = 0 (0.0MB)

Heap Usage:
PS Young Generation

你可能感兴趣的:(zookeeper开机启动内存设置)