以下是Kafka配置中優化磁盤I/O的關鍵措施:
log.dirs
路徑(如多塊磁盤),分散I/O壓力。noatime,nodiratime
選項,減少磁盤寫入。deadline
或noop
(通過echo deadline > /sys/block/sdX/queue/scheduler
)。num.io.threads
(建議為CPU核心數2倍),提升磁盤I/O并發能力。log.flush.interval.messages
(如10000)和log.flush.interval.ms
(如1000),平衡刷盤頻率與吞吐量。log.segment.bytes
(如1GB),控制日志段大小,避免頻繁切換文件。compression.type=snappy/lz4
),減少寫入數據量。num.partitions
),并行處理提升吞吐量,避免單分區成為瓶頸。replication.factor
),分散讀寫壓力,但需權衡存儲成本。Disk Read/Write Time
(建議<50%)、Log Flush Time
(建議<100ms)等指標。swapoff -a
),減少磁盤I/O延遲。參考來源: