CentOS上Zookeeper性能调优技巧
/etc/fstab文件注释掉Swap挂载项,或使用swapoff -a命令临时关闭,避免因内存不足导致的内存与磁盘频繁交换(Swap会极大降低Zookeeper性能)。/etc/security/limits.conf,添加zookeeper soft nofile 65536和zookeeper hard nofile 65536,避免因系统资源紧张导致连接数受限。initLimit(Leader与Follower初始同步最大延迟)建议设为10(即20秒),syncLimit(正常同步最大延迟)建议设为5(即10秒),根据网络延迟调整(网络差时可适当增大)。autopurge.snapRetainCount=3(保留最近3个快照)和autopurge.purgeInterval=1(每天凌晨执行清理),避免旧快照和事务日志占用过多磁盘空间。dataDir(快照文件路径)和dataLogDir(事务日志路径)分别挂载到不同的物理磁盘(如/data/zookeeper_snap和/data/zookeeper_log),减少I/O争用,提升写入性能。-Xms4g -Xmx4g),避免堆过大导致Full GC停顿时间过长,或堆过小导致频繁GC。-XX:+UseG1GC;若对延迟敏感,可添加-XX:MaxGCPauseMillis=200(设置最大GC暂停时间为200毫秒)。-XX:+UseCompressedOops(默认开启),减少对象引用的内存占用(从8字节压缩到4字节),提升内存利用率。latency(请求延迟)、requests(请求处理量)、sessions(活跃会话数)、connections(当前连接数)等指标,及时发现性能瓶颈。-Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false),通过JConsole或VisualVM连接,监控堆内存使用、GC情况等。/var/log/zookeeper/zookeeper.log),关注WARN和ERROR级别的日志(如连接超时、磁盘空间不足);使用logrotate工具配置日志滚动(如每天生成一个新日志文件,保留7天),避免日志文件过大。