在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
查看帶寬占用,確??蛻舳伺cBroker在同一局域網。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]