V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
solaro
V2EX  ›  问与答

laravel 5.3 用 database 作为 queue 的 driver 时, mysql 内存占用非常高,导致服务器经常性崩溃

  •  
  •   solaro · 2017-02-10 15:33:21 +08:00 · 2068 次点击
    这是一个创建于 2850 天前的主题,其中的信息可能已经有所发展或是发生改变。

    laravel 5.3 的 queue 用 database 来进出队列,但是 mysql 的负载一直很高,动不动就挂,甚至整个 vps 都挂

    用的是 lnmp 一键包, laravel 每分钟都在跑 queue , queue 主要用途是用来发邮件 vps 配置 KVM 1G 内存 25G ssd

    top :

    Tasks: 125 total, 1 running, 124 sleeping, 0 stopped, 0 zombie Cpu(s): 1.4%us, 0.7%sy, 0.0%ni, 0.0%id, 96.3%wa, 0.3%hi, 0.3%si, 1.0%st Mem: 1020332k total, 959420k used, 60912k free, 424k buffers Swap: 262140k total, 262140k used, 0k free, 268552k cached

    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2489 mysql 20 0 1371m 472m 1804 S 0.0 47.4 0:01.18 mysqld 2561 root 20 0 345m 30m 19m S 0.0 3.1 0:00.46 php 2591 root 20 0 345m 30m 19m S 0.0 3.1 0:00.42 php 2627 root 20 0 345m 30m 19m S 0.0 3.1 0:00.37 php 2661 root 20 0 345m 30m 19m S 0.0 3.1 0:00.33 php 2697 root 20 0 345m 30m 19m S 0.3 3.1 0:00.28 php 2731 root 20 0 345m 30m 19m S 0.0 3.1 0:00.41 php

    难道改用 redis 吗?默认的 queue driver 是 sync ,但是 sync 无法满足我的需求,所有发送成功失败都要记录

    5 条回复    2017-02-15 10:26:38 +08:00
    Dlad
        1
    Dlad  
       2017-02-10 16:55:08 +08:00
    1 、业务量要给,就算 4 核 16G 也有它的极限;
    2 、 mysql 崩溃是因为执行语句多,还是执行语句慢?

    基于你给的数据,我找不到问题所在, redis 可以试试。
    tcsky
        2
    tcsky  
       2017-02-10 17:55:47 +08:00
    你队列消费时是不是有失败重试? 死循环了
    ovear
        3
    ovear  
       2017-02-10 19:11:37 +08:00 via Android
    lz 。。你没发现你的内存炸了么, swap 都满了。。
    MySQL 配置问题吧
    changwei
        4
    changwei  
       2017-02-10 21:04:01 +08:00 via Android
    你先 show process 看看是不是服务器本身有大量已打开链接,或者开一下 general_log ,观察一下你的服务器在何时被什么 ip 请求过什么 sql 查询,然后再做优化,从 top 信息我看不出什么名堂。。。感觉被 cc 攻击了也有可能会这样
    solaro
        5
    solaro  
    OP
       2017-02-15 10:26:38 +08:00
    @tcsky laravel 框架会自动重试。问题找到了,不在于用的是 database 还是 redis ,改用 redis 后一样挂。在于 php 执行 schedule 后,没有自动销毁进程,每分钟都在产生 php 进程,然后 30 分钟后 1G 的内存全爆了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2029 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:56 · PVG 08:56 · LAX 16:56 · JFK 19:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.