以下是Ubuntu中Kafka的優化配置建議,涵蓋硬件、參數、網絡等多方面:
log.dirs指向高速存儲設備。tcp_nodelay、tcp_keepalive_time),增加網絡帶寬。num.partitions:設置為消費者線程數的1.5-2倍,提升并行處理能力。log.segment.bytes:設為1GB-2GB,減少日志分段數量,降低索引開銷。buffer.memory:設置為可用內存的50%-70%,控制生產者/消費者緩沖區大小。batch.size:增大至128KB-1MB,提升批量發送效率。linger.ms:設置為50-100ms,平衡延遲與吞吐量。compression.type:啟用snappy或lz4壓縮,減少網絡傳輸和存儲壓力。log.retention.hours:根據業務需求設置(如72小時),自動清理過期數據。num.io.threads:設置為CPU核心數的50%-100%,匹配磁盤I/O能力。num.network.threads:設置為CPU核心數的50%,處理網絡請求。kafka-server-start.sh中設置KAFKA_HEAP_OPTS,如-Xms8G -Xmx8G -XX:+UseG1GC,避免頻繁GC。ulimit -n 65535增加文件句柄數,支持高并發連接。replication.factor:根據數據重要性設置(通常2-3),平衡冗余與性能。acks:設為all確保數據可靠性,或1提升吞吐量(需權衡)。sendfile系統調用(Kafka默認支持),減少數據拷貝開銷。kafka-logs目錄,避免磁盤占滿。參考來源:[1,2,3,4,5,6,7,9,10,11]