kafka调优

  1. 利用多磁盘并发读写,保证每个磁盘连续读写的特性。
    具体配置上,是将不同磁盘的多个目录配置到broker的log.dirs,例如
    log.dirs=/disk1/kafka-logs,/disk2/kafka-logs,/disk3/kafka-logs。
    JVM参数配置:
    设置垃圾回收器。推荐使用最新的G1来代替CMS作为垃圾回收器。 Broker中的JVM参数设置如下:
    -Xms30g -Xmx30g -XX:PermSize=48m -XX:MaxPermSize=48m
    -XX:+UseG1GC -XX:MaxGCPauseMillis=20
    -XX:InitiatingHeapOccupancyPercent=35
    Broker参数配置:
    配置优化都是修改server.properties文件中的参数。
    网络和io操作线程配置优化:

broker处理消息的最大线程数:

num.network.threads=xxx
# broker处理磁盘IO的线程数:
num.io.threads=xxx
log数据文件刷盘策略:
当kafka server的被写入海量数据后,会生成很多数据文件,且占有大量的磁盘空间,如果不及时处理,可能磁盘空间不够用,kafka默认保留时间是一周。
建议配置如下:
# 保留三天,也可以更短
log.retention.hours=72

段文件配置1GB,有利于快速回收磁盘空间,重启kafka加载也会加快(如果文件过小,则文件数量比较多,

kafka启动时是单线程扫描目录(log.dir)下所有数据文件)

log.segment.bytes=1073741824
配置jmx服务
Kafka server中默认是不启动jmx端口的,需要自己手动配置
[lizhitao@root kafka_2.10-0.8.1]$ vim bin/kafka-run-class.sh

最前面添加一行

JMX_PORT=8060
Replica相关配置
replica.lag.time.max.ms:10000
replica.lag.max.messages:4000
num.replica.fetchers:1

在Replica上会启动若干Fetch线程把对应的数据同步到本地,而num.replica.fetchers这个参数是用来控制Fetch线程的数量。

每个Partition启动的多个Fetcher,通过共享offset既保证了同一时间内Consumer和Partition之间的一对一关系,又允许我们通过增多Fetch线程来提高效率。

default.replication.factor:1

这个参数指新创建一个topic时,默认的Replica数量

Replica过少会影响数据的可用性,太多则会白白浪费存储资源,一般建议在2~3为宜。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值