在Debian上排查RabbitMQ性能瓶颈可从以下方面入手:
systemctl status rabbitmq-server
确认服务运行状态,用netstat -tuln | grep 5672
(默认AMQP端口)或ss -tuln | grep 5672
检查端口监听情况。/var/log/rabbitmq/
目录下的日志文件,通过tail -f
实时监控,搜索error
、flow control
等关键词定位异常。free -m
查看内存使用,df -h
检查磁盘空间,确保内存充足且磁盘未满。/etc/rabbitmq/rabbitmq.conf
中vm_memory_high_watermark
(内存高水位线,默认0.4,可适当调高至0.6~0.8)。prefetch count
(预取计数)是否合理,避免消费者积压未确认消息。tracing
),减少资源占用。rabbitmq-plugins enable rabbitmq_management
),通过Web界面查看队列长度、消费者数量、消息吞吐量等。rabbitmqctl
命令:rabbitmqctl status
查看节点状态,rabbitmqctl list_queues
查看队列详情,rabbitmqctl list_connections
查看连接数。rabbitmq-munin
插件,通过munin生成性能图表。ping
、traceroute
测试网络延迟,iftop
/nethogs
查看带宽占用,确保客户端与Broker在同一局域网。rabbitmqctl cluster_status
检查节点状态,确认节点间通信正常,无Cookie
不一致或端口阻塞问题。rabbitmqctl list_queues
查看messages_ready
,若持续增长,需增加消费者或优化处理逻辑。top
/htop
查看CPU负载,iostat -x 1
查看磁盘I/O,若磁盘I/O高,可考虑使用SSD或启用Lazy Queue。Publisher Confirms
确保消息可靠投递,合理设置消息持久化策略。Stream Queue
或分片队列提升吞吐量。参考来源:[1,2,3,4,6,7,8,9,10,11]