以下是Linux環境下Kafka的調優要點,涵蓋系統、Kafka配置、JVM及硬件層面:
noatime,nodiratime
減少磁盤寫入。net.core.wmem_max=16MB
、net.core.rmem_max=16MB
。vm.swappiness=10
(避免頻繁交換)。ulimit -n 65535
。num.partitions
:按CPU核心數設置(建議2-4倍),提升并行度。log.segment.bytes
:設為1GB,平衡日志段數量與磁盤I/O。log.flush.interval.messages
/log.flush.interval.ms
:根據吞吐量調整(如10000
條/1000ms
)。num.io.threads
:設為CPU核心數的2-3倍,優化磁盤讀寫。default.replication.factor=3
,min.insync.replicas=2
,確保數據安全。compression.type=snappy
(平衡壓縮比與速度)。-Xms
和-Xmx
設為相同值(如8GB),避免動態擴展開銷。-XX:+UseG1GC
),并設置-XX:MaxGCPauseMillis=20
控制暫停時間。tcp_nodelay
)并啟用多隊列網卡(RSS)提升吞吐量。log.flush.scheduler.interval.ms
控制刷盤頻率。sendfile
減少數據拷貝(需結合操作系統配置)。batch.size
、linger.ms
,啟用壓縮,增加分區數。linger.ms
、fetch.min.bytes
,減少批量處理。參考來源:[1,2,3,4,5,6,7,9,10,11]