Apache Kafka交换内存使用情况

时间:2018-10-30 12:51:54

标签: java apache-kafka heap-memory

我有一个由10台计算机组成的Kafka集群。

Kafka的xmx配置现在为8g。

但是,在检查了每个Kafka进程之后,我确认正在使用1g〜3g的交换内存。

我知道Kafka不需要使用大堆。

在这种情况下,我需要增加Kafka的xmx吗?

还是有其他解决方案?

此外,操作系统的当前可交换性设置为1。

1 个答案:

答案 0 :(得分:1)

操作系统互换性很难确定。我已经进行了配置,其中所有程序都在不到可用内存的一半的情况下运行,并且操作系统仍然决定将几GB的内存换出到磁盘。我还试图完全关闭可交换性,但我发现性能根本没有改善。

我的建议是不保留操作系统互换性。的确,Kafka不需要很大的JVM堆,但是它将使用OS中任何可用的堆外RAM作为页面缓存,以从RAM中提供尽可能多的数据/消息。我的建议是使用-Xms-Xmx将JVM的大小设置为相同的值(大多数情况下8GB应该足够),而剩下的可用RAM供Kafka用作堆外资源。内存和操作系统开销。