zoukankan      html  css  js  c++  java
  • 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、多线程优化了存储服务器,减少数据库频繁查询开销,提升存储服务器消费能力。

  • 相关阅读:
    __all__ = ["a"]被调用时只会调用list里面的
    if __name__ == "__main__"
    异常处理
    python
    python传智播客笔记--第十天:隐藏属性,私有属性,私有方法,__del__方法,类的继承,类中方法的重写
    python获取引用对象的个数
    对象属性会保留
    python中的不定长参数
    python的全局变量
    python实现文件命名
  • 原文地址:https://www.cnblogs.com/monkjavaer/p/9651424.html
Copyright © 2011-2022 走看看