Supervisord의 CPU 사용량이 99%에 도달했습니다.

Supervisord의 CPU 사용량이 99%에 도달했습니다.

다음을 사용하여 설치했습니다 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 사용량이 크게 줄어듭니다.

관련 정보