![Supervisord 的 CPU 使用率达到 99%](https://linux22.com/image/81336/Supervisord%20%E7%9A%84%20CPU%20%E4%BD%BF%E7%94%A8%E7%8E%87%E8%BE%BE%E5%88%B0%2099%25.png)
我已经安装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使用率: