天天看點

kafka 性能調優

# 每個topic預設partition數量,根據消費者實際情況配置,配置過小會影響消費性能

num.partitions=50

#日志傳輸時候的壓縮格式,可選擇lz4, snappy, gzip,不壓縮。建議打開壓縮,可以提高傳輸性能,壓縮格式的選擇可以參考文章結尾的參考資料。

compression.type=snappy

# 啟用壓縮的topic名稱。若上面參數選擇了一個壓縮格式,那麼壓縮僅對本參數指定的topic有效,若本參數為空,則對所有topic有效。

compressed.topics=topic1

#用來從主partion同步資料的線程數,預設為1,建議适當調大,資料量大的時候一個同步線程可能不夠用

num.replica.fetchers=3

#消息日志備份因子,預設是1

default.replication.factor=2

1.網絡和io操作線程配置優化

# broker處理消息的最大線程數

num.network.threads=xxx

# broker處理磁盤IO的線程數

num.io.threads=xxx

建議配置:

一般num.network.threads主要處理網絡io,讀寫緩沖區資料,基本沒有io等待,配置線程數量為cpu核數加1.

num.io.threads主要進行磁盤io操作,高峰期可能有些io等待,是以配置需要大些。配置線程數量為cpu核數2倍,最大不超過3倍.

1.網絡和io操作線程配置優化

# broker處理消息的最大線程數

num.network.threads=xxx

# broker處理磁盤IO的線程數

num.io.threads=xxx

建議配置:

一般num.network.threads主要處理網絡io,讀寫緩沖區資料,基本沒有io等待,配置線程數量為cpu核數加1.

num.io.threads主要進行磁盤io操作,高峰期可能有些io等待,是以配置需要大些。配置線程數量為cpu核數2倍,最大不超過3倍.

4.replica複制配置

每個follow從leader拉取消息進行同步資料,follow同步性能由這幾個參數決定,分别為拉取線程數(num.replica.fetchers)、最小位元組數(replica.fetch.min.bytes)、最大位元組數(replica.fetch.max.bytes)、最大等待時間(replica.fetch.wait.max.ms)

建議配置:

num.replica.fetchers 配置多可以提高follower的I/O并發度,機關時間内leader持有跟多請求,相應負載會增大,需要根據機器硬體資源做權衡

replica.fetch.min.bytes=1  預設配置為1位元組,否則讀取消息不及時

replica.fetch.max.bytes= 5  * 1024 * 1024 預設為1MB,這個值太小,5MB為宜,根據業務情況調整

replica.fetch.wait.max.ms  follow拉取頻率,頻率過高,會導緻cpu飙升,因為leader無資料同步,leader會積壓大量無效請求情況,又因為0.8.2.x版本存在bug,定時器逾時檢查比較消耗CPU,使用者需要做好權衡

轉載于:https://my.oschina.net/whx403/blog/913325

繼續閱讀