參數(shù)說明
| 參數(shù) | 解釋 | 默認(rèn)值 |
|---|---|---|
| tickTime | 節(jié)點間信號發(fā)送的時間間隔,每個tickTime會發(fā)送一次心跳,單位為ms; | 2000 |
| initLimit | Follower節(jié)點與Leader節(jié)點間允許容忍初始化連接最大心跳數(shù); | 10 |
| syncLimit | Follower節(jié)點與Leader節(jié)點間允許請求和應(yīng)答的最大心跳書; | 5 |
| dataDir | 存放內(nèi)存數(shù)據(jù)的路徑,便于快捷恢復(fù); | /usr/local/zookeeper/data |
| dataLogDir | 存放事務(wù)日志路徑,對磁盤性能要求高,Zookeeper在響應(yīng)客戶端事務(wù)請求之前需要將請求的事務(wù)寫到磁盤上,事務(wù)日志的寫入性能直接影響到Zookeeper處理請求吞吐,dataLogDir沒有提供默認(rèn)使用dataDir | /usr/local/zookeeper/datalog |
| clientPort | Zookeeper的端口 | 2181 |
| maxClientCnxns | 在socket級別限制單個客戶端到Zookeeper節(jié)點并發(fā)連接數(shù),0為不限制 | 1000 |
| minSessionTimeout | 節(jié)點允許客戶端最小超時時間,默認(rèn)是2倍tickTime | 4000 |
| maxSessionTimeout | 節(jié)點允許客戶端最大超時時間,默認(rèn)是20倍tickTime | 40000 |
| autopurge.snapRetainCount | 若啟動自動清理功能后,Zookeeper將只保留autopurge.snapRetainCount個最近的數(shù)據(jù)快照和對應(yīng)的事務(wù)日志文件,其余將會刪除掉 | 3 |
| autopurge.purgeInterval | 用于配置觸發(fā)清理任務(wù)的時間間隔,單位為h; | 0 |
| globalOutstandingLimit | Zookeeper將會對客戶端進行限流,即限制系統(tǒng)中未處理的請求,數(shù)量不超過globalOutstandingLimit設(shè)置的值 | 1000 |
| preAllocSize | 用于配置Zookeeper事務(wù)日志文件預(yù)分區(qū)分配磁盤空間大小,單位為KB | 64000 |
| snapCount | Zookeeper將事務(wù)記錄到事務(wù)日志中,當(dāng)snapCount個事務(wù)被寫到一個日志文件后,啟動一個快照并創(chuàng)建一個新的事務(wù)日志文件 | 100000 |
推薦配置
maxClientCnxns=1000
minSessionTimeout=30000
maxSessionTimeout=60000
autopurge.snapRetainCount=10
autopurge.purgeInterval=1
globalOutstandingLimit=200
preAllocSize=131072
snapCount=300000
leaderServes=yes
jvm堆棧增加
說明
/usr/local/zookeeper/bin/zkEnv.sh腳本文件中已經(jīng)明確說明有獨立的jvm內(nèi)存設(shè)置文件,路徑是zookeeper目錄下的"conf/java.env"文件,但是這個文件安裝zookeeper時并不存在,需要我們進行手動創(chuàng)建。
配置java.env文件
\# cat /usr/local/zookeeper/conf/java.env
\#!/bin/sh
export JAVA_HOME=/usr/local/jdk
\# heap size MUST be modified according to cluster environment
export JVMFLAGS="-Xms2048m -Xmx3072m $JVMFLAGS"