CentOS上Zookeeper性能调优技巧
sysctl vm.swappiness=0关闭Swap(或设置为0),避免因内存不足导致的内存与磁盘交换,降低性能。/etc/security/limits.conf,添加zookeeper soft nofile 65536和zookeeper hard nofile 65536,避免因客户端连接过多导致的文件描述符耗尽问题。initLimit(Leader与Follower初始化同步的最大时间)建议设为10(即20秒,10*tickTime),适应网络延迟;syncLimit(Leader与Follower数据同步的最大时间)建议设为5(即10秒),避免因同步超时导致的不必要Leader切换。autopurge.snapRetainCount=3(保留最近3个快照)和autopurge.purgeInterval=24(每24小时清理一次),避免旧快照和事务日志占用过多磁盘空间。dataDir(快照文件目录)和dataLogDir(事务日志目录)分别挂载到不同的高速磁盘(如/data/zookeeper/snapshot和/data/zookeeper/log),减少写操作竞争,提升IO性能。-Xms4g -Xmx4g),避免堆内存过大导致Full GC时间过长,或过小导致频繁GC。-XX:+UseG1GC),适合大堆内存,可通过-XX:MaxGCPauseMillis=200设置最大GC暂停时间目标(如200毫秒),减少GC对系统性能的影响。-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m),避免元空间溢出(Out of Memory Error: Metaspace)。stat(查看服务器状态)、ruok(检查运行状态)、mntr(监控指标)等四字命令快速检查集群状态。/var/log/zookeeper/zookeeper.log),关注警告(WARN)和错误(ERROR)级别日志(如连接超时、磁盘空间不足),快速定位问题。