如何调查Laravel Beanstalk Queue囤积内存的原因

时间:2017-10-10 05:17:54

标签: php laravel nginx queue elastic-beanstalk

背景

我在nginx上运行laravel 5.3支持的网络应用程序。我的prod工作正常(在AWS t2.medium上运行)并且我的暂存一直运行良好,直到它最近超载。分期是t2.micro。

问题

问题发生在开始尝试点击api端点时,开始出现此错误:

503 (Service Unavailable: Back-end server is at capacity)

使用htop我们得到以下内容:

enter image description here

所以我们发现我们的beanstalk队列占用了大量的内存。

我尝试了什么

我们使用telnet来查看beanstalk中的内容:

$~/beanstalk-console$ telnet localhost 11300
Trying 127.0.0.1...
Connected to staging-api-3.
Escape character is '^]'.
stats
OK 940
---
current-jobs-urgent: 0
current-jobs-ready: 0
current-jobs-reserved: 0
current-jobs-delayed: 2
current-jobs-buried: 0
cmd-put: 451
cmd-peek: 0
cmd-peek-ready: 0
cmd-peek-delayed: 0
cmd-peek-buried: 0
cmd-reserve: 0
cmd-reserve-with-timeout: 769174
cmd-delete: 449
cmd-release: 6
cmd-use: 321
cmd-watch: 579067
cmd-ignore: 579067
cmd-bury: 0
cmd-kick: 0
cmd-touch: 0
cmd-stats: 1
cmd-stats-job: 464
cmd-stats-tube: 0
cmd-list-tubes: 0
cmd-list-tube-used: 0
cmd-list-tubes-watched: 0
cmd-pause-tube: 0
job-timeouts: 0
total-jobs: 451
max-job-size: 65535
current-tubes: 2
current-connections: 1
current-producers: 0
current-workers: 0
current-waiting: 0
total-connections: 769377
pid: 1107
version: 1.10
rusage-utime: 97.572000
rusage-stime: 274.560000
uptime: 1609870
binlog-oldest-index: 0
binlog-current-index: 0
binlog-records-migrated: 0
binlog-records-written: 0
binlog-max-size: 10485760
id: 906b3629b01390dc
hostname: staging-api-3
似乎没有任何关于......

问题

我想更清楚地了解这些工作中正在进行的工作(即工作到底是什么?)我知道Laravel Horizon提供了这样的服务,但只有Laravel 5.5。我研究了哪些队列监视器out there并尝试安装beanstalk console。现在当我安装它时......我认为考虑到整个机器已经卡住了我认为是52.16.%ip%.%ip% took too long to respond.

我想如果我重新启动机器我可以安装beanstalk_console就好了,但是这次我将失去调查导致问题的原因的机会,这种情况很少见。我还能做些什么来调查并查看耗尽CPU的工作究竟是什么以及为什么

更新

我重新启动了实例,现在api工作了,但我仍然得到100%的CPU ...我错过了什么?

enter image description here

0 个答案:

没有答案