一、硬件资源分配
-Xms512m~-Xmx4096m);避免内存过小导致频繁GC或过大引发Full GC停顿。二、操作系统级资源优化
swapoff -a)或通过vm.swappiness=1(内核参数)减少交换分区使用(交换分区会导致磁盘I/O瓶颈,严重影响Zookeeper性能)。/etc/default/zookeeper)中的JVMFLAGS参数,设置-Xms(初始堆内存,如-Xms1024m)和-Xmx(最大堆内存,如-Xmx2048m),两者建议一致以避免堆内存波动。systemd(修改/etc/systemd/system/zookeeper.service,添加MemoryLimit=1G)或cgroups(创建memory:/zookeeper cgroup并设置memory.limit_in_bytes=1G)实现系统级内存限制,防止Zookeeper进程占用过多内存。三、Zookeeper配置参数优化
tickTime(默认2000ms):根据集群规模调整(如小型集群可设为1000ms,大型集群可保持默认),影响心跳间隔和超时计算。initLimit(默认5tickTime):设置follower与leader初始化连接的超时时间(如tickTime=2000ms,则initLimit=10000ms);syncLimit(默认2tickTime):设置follower与leader同步数据的超时时间(如syncLimit=4000ms)。maxClientCnxns(默认60):限制单个客户端IP的最大连接数(如设为100,防止恶意或异常客户端耗尽资源)。autopurge.snapRetainCount(默认3):保留最近的快照文件数量(如设为5,避免删除过多快照导致恢复失败);autopurge.purgeInterval(默认0,关闭):开启自动清理(设为24,每天凌晨清理过期事务日志和快照)。dataDir(快照文件目录)和dataLogDir(事务日志目录)分别设置在不同物理磁盘(如/data/zookeeper/snapshot和/data/zookeeper/logs),减少磁盘I/O竞争。四、集群资源规划
leaderWeight参数调整leader选举权重,实现角色均衡。