标签:local pattern ntp 搭建 通过命令 disable 方法 node节点 node
zookeeper配置:三台集群。zookeeper二进制包安装方法:
tar -xf zookeeper-3.4.6.tar.gz -C /usr/local
cd /usr/local
mv zookeeper-3.4.6 zookeeper
三台:
153:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/zookeeper
clientPort=2181
server.1=192.168.1.153:2888:3888
server.2=192.168.1.154:2888:3888
server.3=192.168.1.155:2888:3888
forceSync=yes
fsync.warningthresholdms=50
globalOutstandingLimit=100000
preAllocSize=64M
snapCount=100000
skipACL=yes
myid:这个需要手动创建
mkdir -p /var/zookeeper
cd /var/zookeeper
echo 1 myid
cat myid
1
154:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/zookeeper
clientPort=2181
server.1=192.168.1.153:2888:3888
server.2=192.168.1.154:2888:3888
server.3=192.168.1.155:2888:3888
forceSync=yes
fsync.warningthresholdms=50
globalOutstandingLimit=100000
preAllocSize=64M
snapCount=100000
skipACL=yes
myid:这个需要手动创建
mkdir -p /var/zookeeper
cd /var/zookeeper
echo 2 myid
cat myid
2
155:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/zookeeper
clientPort=2181
server.1=192.168.1.153:2888:3888
server.2=192.168.1.154:2888:3888
server.3=192.168.1.155:2888:3888
forceSync=yes
fsync.warningthresholdms=50
globalOutstandingLimit=100000
preAllocSize=64M
snapCount=100000
skipACL=yes
myid:这个需要手动创建
mkdir -p /var/zookeeper 创建数据目录
cd /var/zookeeper
echo 3 myid
cat myid
3
设置zookeeper的java虚拟机使用内存:
vim /usr/local/zookeeper/conf/java.env
export JVMFLAGS="-Xms2048m -Xmx2048m $JVMFLAGS" 此处的内存根据实际的内存做调整。
zookeeper服务端命令:
以上命令快捷使用方式:
echo ‘PATH=/usr/local/zookeeper/bin:$PATH‘ > /etc/profile.d/zookeeper.sh
source /etc/profile.d/zookeeper.sh
说明:其他服务也可以使用类似方案操作。
zookeeper客户端命令:
帮助命令: help
ZooKeeper 支持某些特定的四字命令字母与其的交互。它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息。用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交相应的命令
zookeeper服务优化
1.快照文件和事务日志文件分别挂在不同磁盘。zoo.cfg文件中,dataDir是存放快照数据的,dataLogDir是存放事务日志的。zookeeper更新操作过程:先写事务日志,再写内存,周期性落到磁盘(刷新内存到快照文件)。事务日志的对写请求的性能影响很大,保证dataLogDir所在磁盘性能良好、没有竞争者。
默认jvm没有配置Xmx、Xms等信息,可以在conf目录下创建java.env文件(内存堆空间一定要小于机器内存,避免使用swap)
export JVMFLAGS="-Xms2048m -Xmx2048m $JVMFLAGS"
zkEnv.sh文件日志输出方式从CONSOLE改为ROLLINGFILE;
if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
fi
conf/log4j.properties设置为按天生成文件DailyRollingFileAppender
#zookeeper.root.logger=INFO, CONSOLE
zookeeper.root.logger=INFO, ROLLINGFIL
log4j.appender.ROLLINGFILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ROLLINGFILE.Threshold=${zookeeper.log.threshold}
log4j.appender.ROLLINGFILE.File=${zookeeper.log.dir}/${zookeeper.log.file}
log4j.appender.ROLLINGFILE.DatePattern=‘.‘yyyy-MM-dd
#log4j.appender.ROLLINGFILE.MaxFileSize=10MB
zoo.cfg文件中skipACL=yes,忽略ACL验证,可以减少权限验证的相关操作,提升一点性能。
zoo.cfg文件中forceSync=no,这个对写请求的性能提升很有帮助,是指每次写请求的数据都要从pagecache中固化到磁盘上,才算是写成功返回。当写请求数量到达一定程度的时候,后续写请求会等待前面写请求的forceSync操作,造成一定延时。如果追求低延时的写请求,配置forceSync=no,数据写到pagecache后就返回。但是机器断电的时候,pagecache中的数据有可能丢失。
默认为forceSync=yes,为yes可以设置fsync.warningthresholdms=50 如果数据固化到磁盘的操作fsync超过50ms的时候,将会在zookeeper.out中输出一条warn日志(forceSync=yes有效)。
globalOutstandingLimit=100000 客户端连接过多,限制客户端请求,避免OOM
zoo.cfg文件中preAllocSize=64M 日志文件预分配大小; snapCount=100,000 多少次写事务,生成一个快照如果快照生成频繁可适当调大该参数。
一般zk的应用提倡读大于写,性能较好(10:1),存储元数据用来协调分布式数据最终一致。写过于频繁使用缓存更好
标签:local pattern ntp 搭建 通过命令 disable 方法 node节点 node
原文地址:http://blog.51cto.com/8248183/2063622