以下を使用してsupervisord
をインストールしました。
Sudo apt-get install supervisor
Laravelドキュメント の指示に従ってUbuntu14.04サーバーで。
サーバーのsupervisorctl
プロセスが常に非常に高い使用率で実行されていることに気付きました(80%を下回ることはなく、多くの場合99%)。
私のworkerconfファイルの内容は次のとおりです。
[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
プロセスがこれほど多くのリソースを消費する原因は何でしょうか。
autorestart
ディレクティブ
rUNNING状態のときにプロセスが終了した場合に、supervisordがプロセスを自動的に再開するかどうかを指定します。
(出典: http://supervisord.org/configuration.html )
言い換えると、PHPページが処理されると...インタプリタが終了します...そしてすべてが再び再開されます...そして再び...など。それは予想されることですか?
監視対象のバージョンは何ですか?古いスーパーバイザーは、CPU占有率の問題が高いようです。
また、laravelキューワーカーについては、queue:work --daemonを使用して、CPUへの影響を減らします。 https://laravel.com/docs/5.1/queues#daemon -queue-listener
Queue:work Artisanコマンドには、フレームワークを再起動せずにキューワーカーにジョブの処理を続行させるための--daemonオプションが含まれています。これにより、queue:listenコマンドと比較してCPU使用率が大幅に削減されます。