以下是提升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、网络延迟),再针对性调整参数。