集群环境规划
规划
操作系统
首选Linux系统。
- IO模型:epoll
- 数据网络传输效率:sendfile零拷贝技术
磁盘规划
- 追求性价比高的可以考虑使用JBOD(Just Bunch Of Disks)
- 使用机械硬盘完全够用,当然SSD更好
磁盘容量
- 新增消息数量
- 消息留存时间
- 平均消息大小
- 副本数
- 是否启用压缩及压缩率
内存规划
- 尽量分配更多的内存给操作系统的page cache
- 不要为broker设置过大的堆内存,最好不超过6GB
- page cache大小至少要大于一个日志段的大小
CPU规划
- 使用多核系统,CPU核数最好大于8
带宽规划
- 尽量使用告诉网络
- 根据自身网络条件和带宽来评估Kafka集群机器数量
- 避免使用跨机房网络
典型基准配置
- CPU 24核
- 内存 32GB
- 磁盘 1TB 7200转SAS盘2块
- 带宽 1Gb/s
- ulimit -n 1,000,000
- Socket Buffer至少64KB——适用于跨机房网络传输