다음을 사용하여 설치했습니다 supervisord
.
sudo apt-get install supervisor
내 Ubuntu 14.04 서버에서 다음 지침을 따르세요.라라벨 문서.
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의 버전은 무엇입니까? 이전 감독자는 CPU 사용량이 많은 문제가 있는 것 같습니다.
laravel 대기열 작업자의 경우 다음과 같이 queue:work --daemon을 사용하여 CPU 영향을 줄입니다.https://laravel.com/docs/5.1/queues#daemon-queue-listener
queue:work Artisan 명령어에는 대기열 작업자 스레드가 프레임워크를 다시 시작하지 않고도 작업을 계속 처리하도록 강제하는 --daemon 옵션이 포함되어 있습니다. 이렇게 하면 queue:listen 명령에 비해 CPU 사용량이 크게 줄어듭니다.