Php-当 运行 supervisor 队列的时候,worker 在内存中不断增长

Php-worker keeps growing in memory when running supervisor queue's

当运行主管队列的php-worker容器的内存不断增加。 (如 docker 统计数据所示)

作业完成后,这个数字不会下降。 当队列继续处理作业一段时间内存达到 100% 并崩溃。

[program:updater]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/laravel/artisan queue:work --daemon --sleep=3 --tries=3 --timeout=1800 --queue=updater
autostart=true
autorestart=unexpected
numprocs=20
user=laradock
stdout_logfile=/var/www/laravel/storage/logs/updater.log

关于作业后清除内存,我是否遗漏了什么?

编辑 1: 日志:

[2019-08-07 16:26:36][4320] Processed:  App\Jobs\UpdateClient
[2019-08-07 16:26:36][4385] Processing:
App\Listeners\Statuses\NewClientCreatedStatuses
[2019-08-07 16:26:36][4385] Processed:  App\Listeners\Statuses\NewClientCreatedStatuses
[2019-08-07 16:26:36][4386] Processing: App\Jobs\UpdateClient
[2019-08-07 16:26:37][4281] Processed:  App\Jobs\UpdateClient
[2019-08-07 16:26:38][4314] Processed:  App\Jobs\UpdateClient
[2019-08-07 16:26:38][4388] Processing: App\Listeners\Statuses\NewClientCreatedStatuses
[2019-08-07 16:26:38][4388] Processed:  App\Listeners\Statuses\NewClientCreatedStatuses
[2019-08-07 16:26:38][4389] Processing: App\Jobs\UpdateClient
[2019-08-07 16:26:40][4391] Processing: App\Listeners\Statuses\NewClientCreatedStatuses
[2019-08-07 16:26:40][4391] Processed:  App\Listeners\Statuses\NewClientCreatedStatuses
[2019-08-07 16:26:41][4368] Processed:  App\Jobs\UpdateClient
[2019-08-07 16:26:41][4392] Processing: App\Jobs\UpdateClient
[2019-08-07 16:26:45][4371] Processed:  App\Jobs\UpdateClient
[2019-08-07 16:26:45][4394] Processing: App\Listeners\Statuses\NewClientCreatedStatuses
[2019-08-07 16:26:45][4394] Processed:  App\Listeners\Statuses\NewClientCreatedStatuses
[2019-08-07 16:26:45][4395] Processing: App\Jobs\UpdateClient

我认为 --daemon 标志是导致您出现问题的原因。这将使进程 运行 在后台运行。我的猜测是 supervisor 无法再终止进程,导致越来越多的进程 运行。 default laravel configuration 也不使用此标志。