kafka集群性能的OS参数

1 文件描述符

kafka读写磁盘会频繁的创建并修改文件系统中的文件,主要有下面3类

日志文件
索引文件
元数据文件

一个broker需要控制的文件数 近似 等于

(一个topic分区大小 / 分区段文件大小 ) * 3 * 所有topic分区数总和

比如一个partition(topic 分区) 大小为200G, 一个partition segment(分区段文件)大小为10G,  并且该broker上面有100个topic分区

则 该broker上面需要维护的文件个数为 (200 / 10) * 3 * 100 = 6000

查看linux系统限制参数

[bigdataservice@hadoop]$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 256897
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 102400
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4096
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

可以看到这一行参数配置open files                      (-n) 102400

由此可知系统允许的打开最多文件数为102400

如果要进行重新设置的话只需 执行下面的命令

ulimit -n 102400

2 Socket 缓存大小

3 文件系统尽量采用xfs格式的,实在不行,也得是ext4

XFS是高性能文件系统,CentOS7, CentOS8默认文件系统都是XFS格式的

 

4关闭swap

sysctl vm.swapiness = <一个较小的数值>

 

5 设置更长的flush时间

查看页缓存刷盘参数

sysctl -a | grep dirty
vm.dirty_background_bytes = 0
vm.dirty_background_ratio = 10
vm.dirty_bytes = 0
vm.dirty_expire_centisecs = 3000
vm.dirty_ratio = 30
vm.dirty_writeback_centisecs = 500

kafka时依赖OS页缓存的flush功能实现消息的真正落盘,默认刷盘间隔时5秒,可适当调大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值