V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
AllenBigBear
V2EX  ›  程序员

Supervisor 同时管理 Django(Gunicorn), Celery, Redis 时,导致 Mysql 问题

  •  
  •   AllenBigBear · 2019-07-26 22:20:17 +08:00 · 1986 次点击
    这是一个创建于 1947 天前的主题,其中的信息可能已经有所发展或是发生改变。

    自己用 Django 做了个小站,在 Debian 上面部署 Django:2.2 Python:3.5

    部署完以后想用 supervisor 来管理 Django (通过 Gunicorn ),celery 和 redis 单独管理 Django 的时候,一切问题没有。

    然后在 supervisor 的配置文件里面加入了 celery 和 redis 的管理 program,如下方的配置。 但是运行 supervisorctl start all 之后,网站就再也跑步起来了,而且最奇怪的是,原因是 MYSQL 无法连接本地服务器 报警为: (2003, "Can't connect to MySQL server on '127.0.0.1' ([Errno 111] Connection refused)")

    百思不得其解,网上搜了几天了,没解决,请问大侠们有没有能帮忙的。。谢谢 PS:目前已经测试过:supervisor 中去掉 redis 的 program 去掉,留下 gunicorn 和 celery 的,也不行。

    [program:celery] directory = /home/allen/NBAsite/NBAsite command = /home/allen/NBAsite/env/bin/celery -A NBAsite worker -B -l info autostart = true startsecs = 5 autorestart = true startretries = 3 user = allen redirect_stderr = true stdout_logfile_maxbytes = 20MB stdout_logfile_backups = 20 stdout_logfile = /home/allen/NBAsite/celery_log/allenbigbear_celery.log

    [program:redis] directory = /usr/bin command = /usr/bin/redis-server autostart = true startsecs = 5 autorestart = true startretries = 3 user = root redirect_stderr = true stdout_logfile_maxbytes = 20MB stdout_logfile_backups = 20 stdout_logfile = /home/allen/NBAsite/redis_log/allenbigbear_redis.log

    [program:NBAsite] directory = /home/allen/NBAsite/NBAsite command = /home/allen/NBAsite/env/bin/gunicorn NBAsite.wsgi:application -b 0.0.0.0:8000 autostart = true startsecs = 5 autorestart = true startretries = 3 user = allen redirect_stderr = true stdout_logfile_maxbytes = 20MB stdout_logfile_backups = 20 stdout_logfile = /home/allen/NBAsite/supervisor_log/allenbigbear.log

    14 条回复    2019-08-08 21:05:07 +08:00
    SmiteChow
        1
    SmiteChow  
       2019-07-27 18:17:44 +08:00
    不建议使用 supervisor 你可以自己写 shell 脚本监控 或者 crontab 都行
    julyclyde
        2
    julyclyde  
       2019-07-27 19:40:24 +08:00
    @SmiteChow 你这种回答根本毫无信息量
    julyclyde
        3
    julyclyde  
       2019-07-27 19:41:51 +08:00
    你这根本就是 mysql 服务没启动,但是你自己强行联想到和 supervisor 有关
    时间上的相关关系 不等于因果关系!!
    wzwwzw
        4
    wzwwzw  
       2019-07-28 01:13:43 +08:00
    这个是 mysql 服务没有启动起来吧。
    cz5424
        5
    cz5424  
       2019-07-28 10:40:21 +08:00 via iPhone
    专注 MySQL 为啥没起来,跟 supervisor 没啥关系
    AllenBigBear
        6
    AllenBigBear  
    OP
       2019-07-29 08:56:01 +08:00
    @julyclyde 嗯,我双休日都在搞这个问题,我觉得不是 MYSQL 没有起来,因为打个比方,我单独运行 GUNICORN,MYSQL 数据返回没问题的。
    如果我再运行 CELERY 命令,马上就出现问题了

    导致问题的原因是,在 /var/run/下面,原本有 mysqld 的文件夹,里面是放着 sock 文件
    但是一旦我运行了 celery 以后,这个 mysqld 文件夹马上消失了,只有重启我的 VPS 以后才能出现。
    AllenBigBear
        7
    AllenBigBear  
    OP
       2019-07-29 08:56:52 +08:00
    @wzwwzw 我觉得 MYSQL 是起来了。。因为我单独运行 GUNICORN,网站是起得来的,MYSQL 返回数据也都正常。如上一层我的描述
    AllenBigBear
        8
    AllenBigBear  
    OP
       2019-07-29 08:57:17 +08:00
    @cz5424 但是问题是我单独运行 GUNICORN 是可以的。。。请见 6 楼描述。。。
    julyclyde
        9
    julyclyde  
       2019-07-30 13:07:39 +08:00
    @AllenBigBear 这一定是幻觉!
    AllenBigBear
        10
    AllenBigBear  
    OP
       2019-08-07 13:38:56 +08:00
    @julyclyde 总算找到问题了。。。。MySQL 占用内存太高了。。。我把 performance_schema=OFF 设置成关闭了,MYSQL 占用内存马上下来了,才 100 多 MB,另外还把 innoDB_pool_size 的数值也改小了,现在流畅了。。。。
    julyclyde
        11
    julyclyde  
       2019-08-07 15:57:22 +08:00
    @AllenBigBear 那你看看系统日志,可能有 oom killer 的记录
    AllenBigBear
        12
    AllenBigBear  
    OP
       2019-08-07 20:50:28 +08:00
    @julyclyde 好的,请教一下,我用的是 debian,这个系统日志可以在哪里看?
    julyclyde
        13
    julyclyde  
       2019-08-08 18:31:50 +08:00
    @AllenBigBear /var/log/syslog 吧
    AllenBigBear
        14
    AllenBigBear  
    OP
       2019-08-08 21:05:07 +08:00
    @julyclyde 好的,谢谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1899 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:33 · PVG 08:33 · LAX 16:33 · JFK 19:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.