我刚刚完成了一次测试,以查看我的单节点Kafka集群(1个Zookeeper,1个Kafka-Broker)如何处理未来项目的预期负载。集群组件在Docker容器中运行,并通过docker-compose文件初始化。
在测试运行期间,我注意到磁盘利用率并没有像我预期的那样线性上升。尽管吞吐量保持不变,但它却呈跳跃式增长。这是基础虚拟机的磁盘使用情况的图表(在测试运行时,几乎没有其他磁盘在运行,因此虚拟机的磁盘使用情况应与代理的磁盘使用情况相关联):
如您所见,磁盘使用情况的跳跃越来越大,而跳跃的频率也越来越少。而且,最后,磁盘使用率再次跳升,但是在测试运行完成后,磁盘使用率下降得非常困难。
这使我怀疑Kafka-Broker预期会使用预期的磁盘并提前保留磁盘空间。但我似乎找不到有关此事的任何佐证或文件。那么,这是怎么回事?
答案 0 :(得分:0)
broker configs中有一个'log.preallocate'设置,可以使kafka为分区预先创建段文件,但是默认为false。您更改了该设置吗?
关于收缩,您的日志应显示日志压缩是否开始。您没有提到您的主题配置(日志压缩了吗?)或测试工作负荷(它使用键吗?是否重复了它们?),所以我不确定。
我认为您的测试工作负载根本无法像您想象的那样线性生成数据