RabbitMQ消息隊列阻塞導致服務器宕機


最近工作中存儲服務器由於壓力太大無法及時消費消息、這個過程中,導致RabbitMQ意外掛掉,無法訪問。下面是部分問題分析過程。

麒麟系統服務器分析

1、服務器異常信息:

[root@localhost ~]# service rabbitmq-server status
Status of node rabbit@localhost ...
Error: unable to connect to node rabbit@localhost: nodedown

DIAGNOSTICS
===========

attempted to contact: [rabbit@localhost]

rabbit@localhost:
* connected to epmd (port 4369) on localhost
* epmd reports: node 'rabbit' not running at all
no other nodes on localhost
* suggestion: start the node

current node details:
- node name: 'rabbitmq-cli-90@localhost'
- home dir: /var/lib/rabbitmq
- cookie hash: HIkCAX9bQ+wszeJ6VEmyxw==

 2、查看服務器轉態:df -h   根目錄空間用完了。

[root@localhost /]# df -h
文件系統                容量  已用  可用 已用% 掛載點
/dev/mapper/kylin-root   50G   50G   20K  100% /
devtmpfs                1.9G     0  1.9G    0% /dev
tmpfs                   1.9G   84K  1.9G    1% /dev/shm
tmpfs                   1.9G   97M  1.8G    6% /run
tmpfs                   1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1              1014M  174M  841M   18% /boot
/dev/mapper/kylin-home   46G  2.4G   43G    6% /home
tmpfs                   380M   16K  380M    1% /run/user/42

 3.繼續排查,通過:du -h -x --max-depth=1 一步步發現queue太大問題:系統總共50G、資源已被消耗完。

[root@localhost rabbit@localhost]# du -h -x --max-depth=1
0	./msg_store_persistent
46G	./queues
12K	./msg_store_transient

 由於沒有及時消費rabbitmq消息,導致消息隊列越來越大,最終撐爆服務器資源。最后找到./queues下面的大文件刪除即可(生產環境請備份進行后續處理!!!)。

 基於此問題,最終通過Redis、多線程優化了存儲服務器,減少數據庫頻繁查詢開銷,提升存儲服務器消費能力。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM