Zookeeper启动慢通常与硬件性能、操作系统配置、JVM参数、Zookeeper自身配置相关,以下是针对性的优化措施:
vm.swappiness参数(设为10以下,彻底禁用更佳):sudo sysctl vm.swappiness=10
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
/etc/security/limits.conf,添加以下内容:* soft nofile 65536
* hard nofile 65536
重启系统或重新登录生效。-Xms和-Xmx),建议设置为物理内存的1/4~1/2(如4GB内存设为-Xms2g -Xmx2g),避免过大导致GC停顿或过小导致频繁扩容。-XX:+UseG1GC),并配置以下参数减少GC暂停时间:-XX:MaxGCPauseMillis=100
-XX:InitiatingHeapOccupancyPercent=35
这些参数能平衡吞吐量和延迟,提升启动时的内存初始化速度。tickTime:心跳间隔(默认2000ms),适当减小(如1500ms)可加快Leader选举和节点同步速度,但过小会增加网络负载,建议根据集群规模调整。initLimit:Follower与Leader初始同步的超时时间(默认10tickTime),可根据集群节点数量适当增加(如15tickTime),避免因网络延迟导致启动超时。syncLimit:Leader与Follower同步的超时时间(默认5*tickTime),保持默认或小幅增加即可。autopurge.snapRetainCount(保留快照数量,默认3)和autopurge.purgeInterval(清理间隔,默认0,即不开启)参数,定期删除旧的事务日志和快照,减少数据目录的文件数量,加快启动时的数据加载速度。示例配置:autopurge.snapRetainCount=5
autopurge.purgeInterval=1
dataDir(快照文件)和dataLogDir(事务日志)分别挂载到不同的物理磁盘,减少磁盘I/O竞争,提升启动速度。通过以上优化措施,可显著提升CentOS上Zookeeper的启动速度。需注意,具体参数配置需根据集群规模、硬件资源和业务需求进行调整,建议在测试环境验证后再应用于生产环境。