本文涵盖了更多的高级配置,包括了standalone模式和ensemble模式。不设置它们也能让ZooKeeper工作得很好,但是其中的一些应该需要好好配置一些(比如dataLogDir)。
preAllocSize
为每个事务日志文件预分配(preallocate)的大小,单位为kilobyte。(zookeeper.preAllocSize)
当开始写事务日志时,server每次都会分配这个配置项指定的大小的磁盘块。这样可以为文件系统减轻负担,这样就不用在更新元数据或者追加日志文件空间不够时申请新的磁盘块了。更重要的是,它最小化磁盘寻道的次数。
默认此配置项是64M。如果日志文件不会变得更大的话,可以减少这个配置项的值。因为在每一个快照结束时会开始生成一个新的日志文件,如果在两次快照的间隔期间的那个事务日志大小达不到64M的话,那么需要调低这个值,以免造成空间浪费。例如,如果我们每执行1000个事务就生成一次快照,一个事务的大小 平均为100字节,那么把preAllocSize配置成100KB就更合适。默认的preAllocSize的值对于“默认的snapCount值,事务大小 平均值大于512字节”的情况是适用的。
snapCount
在两次事务快照之间可执行事务的次数(zookeeper.snapCount)。
当一个ZooKeepe