以下是提升CentOS消息隊列性能的關鍵措施,需根據具體消息中間件(如RabbitMQ、Kafka等)選擇適配方案:
ulimit -n 65535
,并修改/etc/sysctl.conf
永久生效。net.core.somaxconn
(連接隊列長度)、net.ipv4.tcp_tw_reuse
(快速復用TIME-WAIT連接)。vm.swappiness
(避免頻繁swap)至1-10。prefetch count
(消費者預取數量),避免消息堆積。Publisher Confirms
確保消息可靠投遞,關閉非必要持久化以提升吞吐量。num.queues
和num.channels
限制,避免資源耗盡。replication.factor
)設為2-3,平衡可靠性和性能。batch.size
(如1MB)和linger.ms
(如100ms),啟用壓縮(compression.type=lz4
)。fetch.max.bytes
和max.poll.records
,減少拉取次數。log.dirs
配置多磁盤路徑分散I/O壓力。net.core.rmem_max
/wmem_max
增大緩沖區。kafka-consumer-groups
或rabbitmqctl
命令查看消費者狀態和積壓情況。中間件 | 核心優化點 | 參考來源 |
---|---|---|
RabbitMQ | 預取計數、持久化策略、內存隔離 | |
Kafka | 分區數、副本因子、批量處理、JVM調優 | |
ActiveMQ | 生產者流控、消費者并發、內存分配策略 |
注意:優化前需在測試環境驗證配置有效性,避免生產環境直接調整導致異常。優先通過監控定位瓶頸(如CPU、磁盤I/O、網絡延遲),再針對性調整參數。