欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

解决zookeeper磁盘IO高的问题

程序员文章站 2022-06-26 20:01:43
...

 

为什么zookeeper会导致磁盘IO高

由于早期的storm版本心跳信息严重依赖zookeeper,心跳风暴会导致zookeeper的事务日志频繁的写磁盘,带来的问题首当其冲的是磁盘IO会爆掉。

 

 

优化思路

将zookeeper事务的日志放入内存中,降低对磁盘的依赖,受内存空间容量限制,需要控制事务日志大小。

这个方案的风险就是一旦机房断电会导致zookeeper中的部分数据丢失,所以特别重要的数据不建议这样做,SSD会是个不错的选择。

 

方案步骤

  • 事务日志指向内存文件系统dataLogDir=/dev/shm
  • 关闭自动事务日志的管理#autopurge.purgeInterval=1
  • 启用脚本删除历史事务日志以便控制内存的使用

 

 

清理事务日志

#!/bin/bash
source /etc/profile

#snapshot file dir 
dataDir=/opt/zookeeperdata/version-2
#tran log dir 
dataLogDir=/dev/shm/version-2

#leave transaction files
leaveTran=10
#leave snapshot files
leaveSnap=10000

echo ""
echo ""
echo "before purge memory:"
free -m
ls -t $dataLogDir/log.* | tail -n +$leaveTran  | xargs rm -f
ls -t $dataDir/snapshot.* | tail -n +$leaveSnap | xargs rm -f
echo "after purge memory:"
free -m

 

zookeeper配置

dataDir=/opt/zookeeperdata
dataLogDir=/dev/shm


#自动清理时保存在datadir里的数据快照数。最小值3
#autopurge.snapRetainCount=3

#自动清理任务的间隔小时数
#autopurge.purgeInterval=1

# 每当10000条事务日志写入时,创建snapshot文件
snapCount=10000

 

 磁盘IO低至可以忽略

 

解决zookeeper磁盘IO高的问题
            
    
    博客分类: ZookeeperStorm  

  • 解决zookeeper磁盘IO高的问题
            
    
    博客分类: ZookeeperStorm  
  • 大小: 13.5 KB