zkServer.sh中JVMFLAGS设置初始堆(-Xms)和最大堆(-Xmx),建议设置为相同值(如-Xms4g -Xmx4g),避免堆内存动态扩展带来的性能损耗。-XX:+UseG1GC),并设置最大GC暂停时间(如-XX:MaxGCPauseMillis=200),优化垃圾回收效率。-XX:MetaspaceSize和-XX:MaxMetaspaceSize),默认值通常足够,可根据实际需求微调。sysctl vm.swappiness=0减少内存与磁盘的交换,提升性能。ulimit -n增加客户端连接数限制,避免因连接过多导致内存异常。dataDir)和事务日志目录(datalogDir)分离至不同SSD磁盘,减少I/O竞争。autopurge.snapRetainCount(保留快照数,如5)和autopurge.purgeInterval(清理间隔,如24小时),定期清理旧数据。maxClientCnxns参数限制单个客户端的最大连接数,避免内存占用过高。top、jstat等工具监控JVM内存占用,结合ZooKeeper四字命令(如ruok、stat)检查集群状态,及时调整配置。参数示例(zkServer.sh):
export JVMFLAGS="-Xms4g -Xmx4g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"