在Ubuntu上優化Kafka配置可從硬件、系統參數、Kafka參數及監控等方面入手,具體如下:
ulimit -n 65535
提升文件句柄數。net.core.rmem_max=4MB
)及啟用零拷貝相關參數。num.partitions
:設置為消費者線程數的整數倍,提升并行處理能力。replication.factor
:建議3副本,保障數據可靠性。num.io.threads
:設置為CPU核心數的50%~100%,提高磁盤寫入效率。log.segment.bytes
:設為1GB~2GB,減少分段數量,降低索引開銷。log.retention.hours
:按需設置(如72小時),避免磁盤占滿。num.network.threads
:設置為CPU核心數的50%,處理網絡請求。compression.type
:啟用snappy
或lz4
壓縮,減少網絡傳輸量。batch.size
:設置為16KB~1MB,批量發送消息提升吞吐量。linger.ms
:設為50~100ms,允許消息短暫堆積后批量發送。fetch.min.bytes
:設為1MB,減少拉取頻率,提升吞吐量。max.poll.records
:根據消費能力設置(如1000條/次),避免內存溢出。sendfile
機制(需配合操作系統參數),減少數據拷貝開銷。-Xms4G -Xmx4G
),并使用G1垃圾回收器(-XX:+UseG1GC
)。kafka-producer-perf-test
和kafka-consumer-perf-test
模擬流量,調整參數至最優。注意:所有配置需在測試環境驗證后,再部署到生產環境,避免影響業務穩定性。
參考來源: