一千萬個為什麽

搜索

如何確定kafka機器上的java heep大小



我們有Hadoop集群(版本2.6.4)和3臺物理kafka機器

我們想知道我們需要在kafka機器上分配的Xmx和Xms的值是多少

為了在kafka機器上設置Xmx和Xms,我們需要配置腳本

/usr/hdp/2.6.4/kafka/bin/kafka-server-start

目前默認值為(Xmx為1G,Xms為1G)

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export
KAFKA_HEAP_OPTS="-Xmx1G –Xms1G"
fi

[[email protected] ~]# free -g
              total        used        free      shared  buff/cache   available
Mem:            251          17          11           0         222         233
Swap:            15           6           9

在每個卡夫卡,我們有256G

我們發現了這個鏈接 - 如何確定默認的Java堆大小?

根據stack-overflow中的鏈接我們可以使用這個公式:

[[email protected] ~]# java -XX:+PrintFlagsFinal -version | grep HeapSize
    uintx ErgoHeapSizeLimit                         = 0                                                                                                                {product}
    uintx HeapSizePerGCThread                       = 87241520                                                                                                         {product}
    uintx InitialHeapSize                          := 2147483648                                                                                                       {product}
    uintx LargePageHeapSizeThreshold                = 134217728                                                                                                        {product}
    uintx MaxHeapSize                              := 32210157568                                                                                                      {product}
openjdk version "1.8.0_65"
OpenJDK Runtime Environment (build 1.8.0_65-b17)
OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)

所以這些值帶有字節,我們可以將它們計算為千兆

Xmx = 32G Xms = 2G

那麽關於kafka機器上Xmx和Xms的建議是什麽?

劑量公式(命令):

java -XX:+PrintFlagsFinal -version | grep HeapSize

也適用於kafka機器,以便為Xmx和Xms找到合適的值?

轉載註明原文: 如何確定kafka機器上的java heep大小

一共有 0 個回答: