kafka java进程消耗太多内存

我有一个带有三个节点的 kafka 0.11.xx 服务器。托管服务器的机器是具有 4GB RAM 的 linux Ubuntu 机器。我可以看到 java 进程使用了大约 90% 的 RAM。我已将堆值设置为 5GB。

消耗内存的进程是jre/bin/java -Xmx5G -Xms5G

那么,kafka 预计以 4-5 GB 的内存运行是正常情况,还是不正常的情况。

如果这不是通常的情况,您能否提出解决此问题的建议,或者增加 RAM 将是唯一的答案。


慕姐4208626
浏览 615回答 2
2回答

萧十郎

Kafka旨在使用可用的内存,作为确保其高性能的一部分。Linux 也会抢占它需要的内存,这不一定是件坏事。如果您的性能分析确定机器在可用 RAM 上存在瓶颈,我只会担心内存使用情况。

慕婉清6462132

一些东西:不知何故,您将 JVM 堆参数设置为 5GB。但是你的服务器只有 4GB 的物理内存?您需要为操作系统、其他辅助应用程序/实用程序以及 Kafka 留出内存,否则您会遇到问题。Kafka 本身依赖于堆外内存(即JVM之外的内存)从那里为消费者提供服务,因此它不必一直从磁盘读取所有内容。但同样,您需要有可用的内存。既然你表明有没有大量的活动的集群上,我会先用(我假定这就是你贴什么)设置JVM参数为卡夫卡服务只有2GB,所以开始:-Xmx2G -Xms2G。然后看看它如何影响您的应用程序/服务。然后,Kafka 将有大约 2GB 以上的 RAM 用于堆外处理。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java