我有一个带有三个节点的 kafka 0.11.xx 服务器。托管服务器的机器是具有 4GB RAM 的 linux Ubuntu 机器。我可以看到 java 进程使用了大约 90% 的 RAM。我已将堆值设置为 5GB。消耗内存的进程是jre/bin/java -Xmx5G -Xms5G那么,kafka 预计以 4-5 GB 的内存运行是正常情况,还是不正常的情况。如果这不是通常的情况,您能否提出解决此问题的建议,或者增加 RAM 将是唯一的答案。
2 回答
萧十郎
TA贡献1815条经验 获得超13个赞
Kafka旨在使用可用的内存,作为确保其高性能的一部分。
Linux 也会抢占它需要的内存,这不一定是件坏事。
如果您的性能分析确定机器在可用 RAM 上存在瓶颈,我只会担心内存使用情况。
慕婉清6462132
TA贡献1804条经验 获得超2个赞
一些东西:
不知何故,您将 JVM 堆参数设置为 5GB。但是你的服务器只有 4GB 的物理内存?您需要为操作系统、其他辅助应用程序/实用程序以及 Kafka 留出内存,否则您会遇到问题。
Kafka 本身依赖于堆外内存(即JVM之外的内存)从那里为消费者提供服务,因此它不必一直从磁盘读取所有内容。但同样,您需要有可用的内存。
既然你表明有没有大量的活动的集群上,我会先用(我假定这就是你贴什么)设置JVM参数为卡夫卡服务只有2GB,所以开始:-Xmx2G -Xms2G
。然后看看它如何影响您的应用程序/服务。然后,Kafka 将有大约 2GB 以上的 RAM 用于堆外处理。
添加回答
举报
0/150
提交
取消