Kafka server部署配置优化

Kafka配置优化其实都是修改server.properties文件中参数值

1、网络和io操作线程配置优化

# broker处理消息的最大线程数
        num.network.threads=xxx
    #  broker处理磁盘IO的线程数
        num.io.threads=xxx

建议配置:

一般num.network.threads主要处理网络io,读写缓冲区数据,基本没有io等待,配置线程数量为cpu核数加1.

num.io.threads主要进行磁盘io操作,高峰期可能有些io等待,因此配置需要大些。配置线程数量为cpu核数2倍,最大不超过3倍.

2、log数据文件刷盘策略

为了大幅度提高producer写入吞吐量,需要定期批量写文件。

建议配置:

# 每当producer写入10000条消息时,刷数据到磁盘

log.flush.interval.messages=10000

# 每间隔1秒钟时间,刷数据到磁盘

log.flush.interval.ms=1000

3、日志保留策略配置

当kafka server的被写入海量消息后,会生成很多数据文件,且占用大量磁盘空间,如果不及时清理,可能磁盘空间不够用,kafka默认是保留7天。

建议配置:

# 保留三天,也可以更短 

log.retention.hours=72

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

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

log.segment.bytes=1073741824

4、replica复制配置

每个follow从leader拉取消息进行同步数据,follow同步性能由这几个参数决定,分别为拉取线程数(num.replica.fetchers)、最小字节数(replica.fetch.min.bytes)、最大字节数(replica.fetch.max.bytes)、最大等待时间(replica.fetch.wait.max.ms)

建议配置:

num.replica.fetchers 配置多可以提高follower的I/O并发度,单位时间内leader持有跟多请求,相应负载会增大,需要根据机器硬件资源做权衡

replica.fetch.min.bytes=1  默认配置为1字节,否则读取消息不及时

replica.fetch.max.bytes= 5  * 1024 * 1024 默认为1MB,这个值太小,5MB为宜,根据业务情况调整

replica.fetch.wait.max.ms  follow拉取频率,频率过高,会导致cpu飙升,因为leader无数据同步,leader会积压大量无效请求情况,又因为0.8.2.x版本存在bug,定时器超时检查比较消耗CPU,使用者需要做好权衡

5、配置jmx服务

kafka server中默认是不启动jmx端口的,需要用户自己配置

[[email protected] kafka_2.10-0.8.1]$ vim bin/kafka-run-class.sh

#最前面添加一行

JMX_PORT=8060

时间: 2024-10-26 19:00:59

Kafka server部署配置优化的相关文章

linux后台server开发环境的部署配置和验证(nginx+apache+php-fpm+FASTCGI(C/C++))

linux后台server开发环境部署配置 引言 背景 随着互联网业务的不断增多.开发环境变得越来越复杂,为了便于统一server端的开发部署环境,特制定本配置文档. 使用软件 CentOS 6.3(Linux version 2.6.32-279.el6.x86_64) gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4) 本次配置 Nginx 1.5.8 Apache 2.4.7 php 5.3.26 目的 构造WEB前端技术架构.web前端的部署结构技术全然

如何在linux服务器部署Rstudio server,配置ODBC远程访问win 服务器上的SQL server

如何在linux服务器部署Rstudio server,配置ODBC后通过RODBC包远程访问SQL server 背景介绍:之前写过一篇文章,提到近期要部署Rstudio server(搭建数据分析团队的分析环境),花了一个星期,搭好了.还YY过给这个亲生的儿子起个装逼的名字呢,莫扎特,巴赫什么的,并YY出以下场景{Jenny ,你把模型扔到莫扎特上跑一版最新结果出来...啊哈是不是特有逼格..哦哈哈...}我是部署的Rstudio server,这个是免费的,但是Rstudio sererv

Project Server 2003配置部署指南_百度文库

Project Server 2003配置部署指南_百度文库 Project server 2003配置部署指南 - 网管地带 - IT博客

配置FTP服务(二):vsftpd部署和优化

前面一篇文章介绍了pureftp部署和优化:http://1015489314.blog.51cto.com/8637744/1694166 下面我们接着来做CentOS自带的FTP软件vsftpd的部署和优化实验. 1.安装启动vsftpd [[email protected] ~]# yum install -y vsftpd [[email protected] ~]# /etc/init.d/vsftpd start 注:我们会发现启动失败,因为之前我们安装了pure-ftpd,被其占用

Windows Nano Server安装配置详解05:在虚拟机中部署NanoServer

1.将 NanoServerImageGenerator 文件夹从 Windows Server 2016 ISO 中 \NanoServer 文件夹复制到你硬盘上的文件夹. 拷贝到C盘根目录. 2.以管理员身份启动 Windows PowerShell,将目录更改为 NanoServerImageGenerator 文件夹所在的文件夹,然后导入模块,其方法为 Import-Module .\NanoServerImageGenerator -Verbose 3.通过运行以下命令(将提示你输入新

ELKB5.2.2集群环境部署及优化终极文档

ELKB5.2.2集群环境部署 本人陆陆续续接触了ELK的1.4,2.0,2.4,5.0,5.2版本,可以说前面使用当中一直没有太多感触,最近使用5.2才慢慢有了点感觉,可见认知事务的艰难,本次文档尽量详细点,现在写文档越来越喜欢简洁了,不知道是不是不太好.不扯了看正文(注意这里的配置是优化前配置,正常使用没问题,量大时需要优化). 备注: 本次属于大版本变更,有很多修改,部署重大修改如下: 1,filebeat直接输出kafka,并drop不必要的字段如beat相关的 2,elasticsea

Linux常用服务部署与优化

Linux常用服务部署与优化 A.NFS部署和优化1 1. 安装NFS服务端与配置文件 [[email protected] mnt]# yum install -y nfs-utils rpcbind     //安装服务端 [[email protected] mnt]# vim /etc/exports    //打开配置文件,配置共享文件,文件默认是空的 /mnt  10.30.4.137(rw,sync)    //配置共享文件/mnt [[email protected] mnt]#

nfs、samba、squid代理部署及优化

nfs部署及优化 nfs服务器上: [[email protected] vhosts]# yum install -y nfs-utils rpcbind [[email protected] vhosts]#  vim /etc/exports /mnt/ 192.168.137.21(rw,sync) //  /mnt/共享的目录,192.168.137.21允许访问的主机IP,(rw,sync)权限 [[email protected] vhosts]#  /etc/init.d/rpc

pureftp、vsftp部署及优化

pure-ftp部署及优化 pure-ftpd 官网 http://www.pureftpd.org/project/pure-ftpd ftp服务器上: [[email protected] client mnt]# cd /usr/local/src/ [[email protected] client src]#wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.40.tar.gz [[email p