Supervisord 的 CPU 使用率达到 99%

Supervisord 的 CPU 使用率达到 99%

我已经安装supervisord使用:

sudo apt-get install supervisor

在我的 Ubuntu 14.04 服务器上,按照中的说明Laravel 文档

我注意到supervisorctl我的服务器上的进程以极高的使用率持续运行(从不低于 80%,通常为 99%)。

我的工作人员conf文件的内容是:

[program:interactions-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/interactions/current/artisan queue:listen sqs --sleep=3 --tries=3
autostart=true
autorestart=true
user=ubuntu
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/html/interactions/storage/worker.log

是什么导致该进程占用如此多的资源?

答案1

autorestart指令

指定当进程在 RUNNING 状态时退出时,supervisord 是否应自动重新启动该进程。

(来源:http://supervisord.org/configuration.html

换句话说,一旦 PHP 页面被处理...解释器退出...并且整个事情再次重新启动...一次又一次...等等。这是可以预料的吗?

答案2

Supervisor 的版本是什么?老supervisord好像有CPU占用高的问题。

对于 laravel 队列工作程序,请使用 queue:work --daemon 来减少 CPU 影响,根据https://laravel.com/docs/5.1/queues#daemon-queue-listener

queue:work Artisan 命令包含一个 --daemon 选项,用于强制队列工作线程继续处理作业,而无需重新启动框架。与queue:listen命令相比,这会显着降低CPU使用率:

相关内容