`
woodding2008
  • 浏览: 289588 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

解决zookeeper磁盘IO高的问题

 
阅读更多

 

为什么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低至可以忽略

 

  • 大小: 13.5 KB
分享到:
评论

相关推荐

    Zookeeper压力测试.docx

    本文将深入探讨Zookeeper在压力测试中的表现,包括磁盘IO瓶颈、CPU利用率、事务日志与快照策略以及连接管理等问题。 首先,我们关注Zookeeper在高并发环境下的性能表现。在800个连接并发创建80万个数据点时,每个...

    Zookeeper压力测试.pdf

    在进行压力测试时,我们模拟了800个连接并发创建80万个数据点的情景,观察到每个Zookeeper虚机节点的磁盘IO达到极限,限制了系统的吞吐量(Transactions Per Second,简称TPS)。在测试中,TPS稳定在约9000,远低于...

    kafka+zookeeper安装教程

    - **磁盘I/O线程数**: 设定处理磁盘I/O的线程数, 如`num.io.threads=8`。 - **Zookeeper配置**: 设置Zookeeper的连接信息, 如`zookeeper.connect=localhost:2181,localhost:2182,localhost:2183`。 - **Zookeeper...

    基于内存的分布式计算架构.pdf

    2. **MySQL的限制**:虽然MySQL稳定易运维,但它不直接支持bitmap操作,每次更新需先查询、再更新,造成大量网络IO和磁盘IO。 3. **资源消耗**:随着用户数量的增加,bitmap对象大小显著增大,频繁的更新操作导致...

    Java思维导图xmind文件+导出图片

    Kafka基于Zookeeper搭建高可用集群实战 kafka消息处理过程剖析 Java客户端实现Kafka生产者与消费者实例 kafka的副本机制及选举原理剖析 基于kafka实现应用日志实时上报统计分析 RabbitMQ 初步认识RabbitMQ及...

    linux部署项目常见异常大全

    2. **优化日志配置**:除了手动清理日志文件外,还应考虑从源头上解决问题,比如调整Zookeeper的日志配置参数,限制单个日志文件的大小,或者增加日志滚动频率等。 3. **更改临时文件目录**:根据Java虚拟机警告...

    2021java互联网架构师学习路线.pdf

    1. **内存IO、网络IO、磁盘IO**:分析Kafka如何实现磁盘存储性能高于内存存储,以及Linux内核级的异步网络IO、文件IO、内存映射和数据零拷贝等概念。 2. **多线程与高并发**:探讨在单机环境下如何通过多线程实现高...

    四个Java常见分布式锁的选型和性能对比.rar

    Zookeeper的分布式锁特点是强一致性和高可用性,但由于其操作基于ZNode(节点),在高并发下可能会面临较高的网络IO压力。此外,Zookeeper的锁实现需要处理复杂的节点监控和超时重试逻辑。 2. Redis分布式锁: ...

    5-1+基于HBase的New+SQL落地实践.pdf

    4. **系统优化**:可能包含了对HBase系统进行性能调优的策略,包括内存配置、磁盘IO优化、Region划分策略等,以确保New SQL在HBase上的高效运行。 5. **监控与故障排查**:可能提到了如何监控HBase集群的运行状态,...

    Distributed-Operator

    分布式运营商假设单节点磁盘IO开销远大于内存计算减少磁盘IO分布式环境网络规模和磁盘IO都是性能的考量因素在读取和写入的情况下,网络开销可以和写入过多放在一起。假设关系为R,存储R的所有元组需要大小为B个块,...

    8.2、消息中间件--kafka(5题)1

    - Kafka 将接收到的消息先缓冲,达到一定阈值后才写入磁盘,减少磁盘 IO。同时,每个 Partition 可以设置备份到其他服务器的副本数量,通过 Leader-Follower 方式保证数据可用性。 4. **Zookeeper 角色** - ...

    客户端server选择1

    在本例中,客户端在启动时会从Zookeeper上获取所有可用Server的相关信息,包括serverID(用于唯一标识每个Server)、IP地址、端口,以及负载信息,如磁盘空间剩余率和IO使用率。这些信息对于客户端来说是至关重要的...

    分布式块存储系统:HCBS实现机制.pdf

    因此,分布式存储系统如HCBS应运而生,旨在提供更高性能、更低成本的存储解决方案。 HCBS采用的两层架构体系是其核心优势之一,它将用户IO与后端存储池直接交互,简化了IO路径,从而减少了网络通信的延迟,降低了...

    大数据平台常见面试题.pdf

    - **性能瓶颈**:在大数据处理中,通常磁盘IO是集群的主要瓶颈,因为大量的数据读写以及冗余数据存储需要高效的IO操作。 面试题还涉及到Kafka的部署和管理,Kafka是一种分布式流处理平台,常用于实时数据管道和...

    kafka调优(工作学习必备)

    - `vm.swappiness`:设置为1,表示只有在内存使用率极高时才启用swap,以减少磁盘IO操作。 - `vm.dirty_background_ratio`:建议设置为5,控制内核写回脏页的速度,平衡磁盘性能与内存使用。 - `vm.dirty_ratio`...

    大数据和云计算技术在计费系统的应用研究.pdf

    大数据与云计算技术在计费系统的应用研究主要探讨了在移动数据流量激增的背景下,如何通过构建基于开源软件和通用X86服务器的大数据详单云平台来解决详单存储和查询的问题。本文详细介绍了该平台的建设过程,并对...

    大数据面试题

    - **答案**: C 磁盘IO - **解释**: 集群的主要瓶颈通常是磁盘I/O。这是因为HDFS需要频繁地进行数据的读写操作,而磁盘的I/O速度相对较慢。对于大规模数据处理来说,提高磁盘I/O效率是优化系统性能的关键。 #### 五...

    Hadoop试题(卷)试题(卷)库.doc

    5. 集群瓶颈:在大数据处理中,最常见的瓶颈通常是磁盘IO,因为数据读取和写入速度对性能有很大影响。 6. MapReduce:MapReduce是一种编程模型,用于大规模数据集的并行计算。它来源于Google的学术论文,支持多种...

    kafka集群管理(翼支付内部生产环境有实际的命令).docx

    - **性能调优**:排查可能导致性能下降的因素,如磁盘IO瓶颈、网络延迟等,并进行相应的优化。 5. **扩缩容**: 随着业务增长,可能需要动态调整Kafka集群的规模。这包括添加或移除broker节点,重新分配partition...

    常见Hadoop面试题

    1. 集群的最主要瓶颈是磁盘 IO,因为大数据面临海量数据,读写数据都需要 IO,然后还要冗余数据,hadoop 一般备 3 份数据,所以 IO 就会打折扣。 SecondaryNameNode 1. SecondaryNameNode 的作用是帮助 NameNode ...

Global site tag (gtag.js) - Google Analytics