6-kafka server部署配置優化

在server.properties配置文件參數說明:ios

配置優化是修改的配置文件中的參數值:vim

1.網絡和ios操做線程配置優化:bash

# 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倍性能

2.log數據文件刷盤策略fetch

爲了大幅度提升producer寫入吞吐量,須要按期批量寫文件。優化

建議配置:.net

# 每當producer寫入10000條消息時,刷數據到磁盤
log.flush.interval.messages=10000
# 每間隔1秒鐘時間,刷數據到磁盤
log.flush.interval.ms=1000

3.日誌保留策略配置線程

當kafka server的被寫入海量消息後,會生成不少數據文件,且佔用大量磁盤空間,若是不及時清理,可能磁盤空間不夠用,kafka默認是保留7天

建議配置:

# 保留三天,也能夠更短 
log.retention.hours=72
# 段文件配置1GB,有利於快速回收磁盤空間,重啓kafka加載也會加快(若是文件太小,則文件數量比較多,
# kafka啓動時是單線程掃描目錄(log.dir)下全部數據文件)
log.segment.bytes=1073741824

4.replica複製配置

每一個follow從leader拉取消息進行同步數據,follow同步性能由這幾個參數決定,分別爲拉取線程數(num.replica.fetchers)、最小字節數(replica.fetch.min.bytes)、最大字節數(replica.fetch.max.bytes)、最大等待時間(replica.fetch.wait.max.ms)

建議配置:

num.replica.fetchers=1 配置多能夠提升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,使用者須要作好權衡

5.配置jmx服務

kafkaserver中默認不啓動jmx端口須要用戶本身配置

vim bin/kafka-run-class.sh
#最前面添加一行
JMX_PORT=8060
相關文章
相關標籤/搜索