kafka(五)服务器配置优化
1、磁盘类型和空间2、内存大小3、CPU核数原因:
·
1、磁盘类型和容量规划
1.1 磁盘类型
- 机械磁盘(HDD) 一般机械磁盘寻道时间是毫秒级的,若有大量随机I/O,则将会出现指数级的延迟,但是kafka是顺序读写的,因此对于机械磁盘的性能也是不弱的,所以,基于成本问题可以考虑。
- 固态硬盘(SSD) 读写速度可观,没有成本问题可以考虑。
- JBOD (Just Bunch Of Disks ) 经济实惠的方案,对数据安全级别不是非常非常高的情况下可以采用,建议用户在Broker服务器上设置多个日志路径,每个路径挂载在不同磁盘上,可以极大提升并发的日志写入速度。
- RAID 磁盘阵列 常见的RAID是RAID10,或者称为(RAID 1+0) 这种磁盘阵列结合了磁盘镜像和磁盘带化技术来保护数据,因为使用了磁盘镜像技术,使用率只有50%,注意,LinkedIn公司采用的就是RAID作为存储来提供服务的。那么弊端在什么地方呢?如果Kafka副本数量设置为3,那么实际上数据将存在6倍的冗余数据,利用率实在太低。因此,LinkedIn正在计划更改方案为JBOD.
1.2 磁盘容量规划
平台按每天产生一亿条消息处理,假设副本为2,数据保留7天,每条消息大小为1K,那么每天消息总量为:1亿 乘 2 乘 1K 除以 1000 除以 1000 =200G磁盘,一周大约1.4T。如果采用压缩比为0.5,那么整个消息的磁盘容量为0.7T。影响因素有:
- 新增消息数量
- 副本个数
- 消息是否启用压缩
- 消息大小
- 消息保留时长
2、内存大小
kafka对于内存的使用,并不过多依赖JVM 内存,而是更多的依赖操作系统的页缓存,consumer若命中页缓存,则不用消耗物理I/O操作。一般情况下,java堆内存的使用属于朝生夕灭的,很快会被GC,一般情况下,不会超过6G,对于16G内存的机器,文件系统page cache 可以达到10-14GB。
- 怎么设计page cache,可以设置为单个日志段文件大小,若日志段为10G,那么页缓存应该至少设计为10G以上。
- 堆内存最好不要超过6G。
3、CPU核数
kafka不属于计算密集型系统,因此CPU核数够多就可以,而不必追求时钟频率,因此核数选择最好大于8。
4、网络
假设平台一天每小时要处理1Tb的数据,我们选择1Gb/b带宽,那么需要选择多少机器呢?
- 假设网络带宽kafka专用,且分配给kafka服务器70%带宽,那么单台Borker带宽就是710Mb/s,但是万一出现突发流量问题,很容易把网卡打满,因此在降低1/3,也即240Mb/s。因为1小时处理1TTB数据,每秒需要处理292MB,1MB=8Mb,也就是2336Mb数据,那么一小时处理1TB数据至少需要2336/240=10台Broker数据。冗余设计,最终可以定为20台机器。
典型推荐
- cpu 核数 32
- 内存 32GB
- 磁盘 3TB 7200转 SAS盘三块
- 带宽 1Gb/s
作者:数据云技术社区
链接:https://juejin.im/post/5bd464ccf265da0ac3735124
更多推荐
已为社区贡献3条内容
所有评论(0)