Laravel队列:listen一直占用所有服务器内存

时间:2016-03-11 21:29:28

标签: php laravel amazon-web-services laravel-5.1 elastic-beanstalk

我正在使用Amazon Beanstalk来托管我的Laravel应用程序。我创建了一个特殊配置,以便我的 queue:listen 会在部署时使用主管自动重新启动。

[unix_http_server]
file=/tmp/supervisor.sock
chmod=0777

[supervisord]
logfile=/var/app/support/logs/supervisord.log
logfile_maxbytes=25MB
logfile_backups=2
loglevel=warn
pidfile=/var/run/supervisord/supervisord.pid
nodaemon=false
nocleanup=true
user=webapp

[program:laravel_queue]
command=php artisan queue:listen --queue=email,activity,purging,misca --memory=256 --env=production
directory=/var/app/current
stdout_logfile=/var/app/support/logs/laravel-queue.log
logfile_maxbytes=25MB
logfile_backups=2
redirect_stderr=true
autostart=true
autorestart=true
startretries=86400

这很好用,我的问题是在一天之后,我的服务器内存总是达到95%!

我检查了内存并注意到一堆由队列启动的http进程:listen但由于某种原因从未被杀死(注意所有作业都成功,​​没有失败)。

webapp   22923  0.0  0.4 673948 19032 ?        S    18:10   0:00 /usr/sbin/httpd -D FOREGROUND
webapp   22926  0.0  0.8 674588 35512 ?        S    18:10   0:00 /usr/sbin/httpd -D FOREGROUND
webapp   22929  0.0  0.4 673948 19032 ?        S    18:11   0:00 /usr/sbin/httpd -D FOREGROUND
webapp   22931  0.0  0.9 674932 37576 ?        S    18:11   0:00 /usr/sbin/httpd -D FOREGROUND
webapp   22932  0.0  0.4 673948 19032 ?        S    18:11   0:00 /usr/sbin/httpd -D FOREGROUND
webapp   22934  0.0  0.8 674600 35536 ?        S    18:11   0:00 /usr/sbin/httpd -D FOREGROUND
webapp   22935  0.0  0.8 674588 35512 ?        S    18:11   0:00 /usr/sbin/httpd -D FOREGROUND

为什么我假设这些http进程是队列:worker没有终止?

1 个答案:

答案 0 :(得分:0)

虽然我遇到了同样的问题,但是对于你缺少的主管的程序配置有一个属性

尝试添加numprocs,然后添加您想要运行的个别流程

Reference Laravel's Example Supervisor Config in the Documentation