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

kafka(五)服务器配置优化相关推荐

  1. kafka常见问题及优化

    kafka常见问题及优化 一.消息丢失: 二.消息重复发送和重复消费 三.消息乱序 四.消息积压 五.消息回溯 六.延时队列 七.kafka事务 八.kafka高性能原因 一.消息丢失: 发送端: a ...

  2. PostgreSQL:十五. 性能优化

    十五. 性能优化 优化简介: PostgreSQL优化一方面是找出系统的瓶颈,提高PostgreSQL数据库整体的性能: 另一方面,需要合理的结构设计和参数调整,以提高用户操作响应的速度: 同时还要尽 ...

  3. c++多元线性回归_五种优化算法实现多元线性回归

    实现多元线性回归的要求及假设条件: '''线性回归的假设条件:1.样本独立,即每个预测样本之间没有依赖关系:2.残差e要服从正态分布,即y_true-y_pred的残差需要服从高斯分布:3.特征之间独 ...

  4. 面试官问:上亿数据量下,Kafka是如何优化JVM GC问题的?

    大家都知道Kafka是一个高吞吐的消息队列,是大数据场景首选的消息队列,这种场景就意味着发送单位时间消息的量会特别的大,那既然如此巨大的数据量,kafka是如何支撑起如此庞大的数据量的分发的呢? 今天 ...

  5. Kafka 数据丢失与优化

    目录 Kafka数据丢失与解决方案 Kafka在什么情况下会丢失数据? broker发生丢失数据分为下面几类 consumer发生丢失数据分为下面几类 Kafka性能调优 producer需注意 br ...

  6. 快排两种实现及五种优化

    快速排序是一个优秀的排序算法,O(n²)和Ω(nlgn),期望运行时间:θ(nlgn)且常数因子较小. 快排运用了分治的思想: 分:将数组划分成两部分(核心,partition) 治:递归地对划分地两 ...

  7. kafka java jvm 优化_kafka优化–JVM参数配置优化

    主要是启动脚本和log4j基本参数的设置和优化,这些参数藏的比较深. 1.JVM参数配置优化 如果使用的CMS GC算法,建议JVM Heap不要太大,在4GB以内就可以.JVM太大,导致Major ...

  8. mysql服务器配置优化

    1.在linux系统中使用which mysqld确定msyql的配置文件所在 2.配置设置都是小写的,使用下划线或破折号分割单词 3.在32位的linux操作系统上,单个进程使用的内存是2.5G-2 ...

  9. 一步步优化JVM五:优化延迟或者响应时间(1)

    http://blog.csdn.net/zhoutao198712/article/details/7791969    本节的目标是做一些优化以满足对应用对延迟的需求.这次需要几个步骤,包括完善J ...

最新文章

  1. 12月18日云栖精选夜读 | Java 中创建对象的 5 种方式!...
  2. css3 box-sizing属性
  3. NOJ --138 找球号(二)
  4. 强烈推荐——微软一站式开发技术框架 All-In-One Code Framework (CodeFx)
  5. 百度鹰眼Web服务API开发使用教程
  6. web项目接到请求之后执行sql特别慢_小米开源!SQL优化工具,人工智能帮你 Rewrite...
  7. 机器视觉开源代码集合(转载)
  8. 声音模仿_学唱歌 |唱歌声音难听的解决方法有哪些?这里给你总结总结!
  9. java中long如何使用_在Java中如何使用lambda和方法引用实现LongSupplier?
  10. 苹果基带芯片“分家” 一箭多雕
  11. Umeng社会化组件使用笔记
  12. HttpClient忽略SSL证书,附带百度网盘jar包
  13. 论文笔记:You Only Look Once: Unified, Real-Time Object Detection(yolo v1)
  14. 【AI视野·今日CV 计算机视觉论文速览 第174期】Tue, 7 Jan 2020
  15. opencv自己生成标定板
  16. 【C语言入门】%f 和 %lf 的区别
  17. 工作几年了,还没成为“算法人上人”?
  18. 简单理解锁存器和触发器的主要区别
  19. MacOS操作系统使用-小白到熟练掌握
  20. 使用word 2013 发布csdn博客

热门文章

  1. Python菜鸟入门:day12编程学习
  2. 进击的小程序:品牌自营GMV同比增长210%,这些行业增速最快……
  3. JavaScript 虽火,但不要轻易去追随!
  4. Python 爬虫“学前班”!学会免踩坑!
  5. 重磅 | 京东云区块链数据服务(BDS)正式开源!
  6. Oracle 痛裁程序员,阿里云坐收渔翁利?
  7. 5G 爆发前夕,将渗透哪些领域?
  8. 前端主流的 Javascript,缺失了哪些技能?
  9. 你所掌握的开源,也许都是错的!
  10. 华为获 25 份 5G 合同;ofo 退款用户数超千万;贾跃亭躲豪宅拒收法律文书 | 极客头条...