Laravel Queue进程无任务时内存占用过高问题咨询
Laravel Queue 空闲进程内存占用过高问题
我使用Laravel Queue执行后台任务,无论是直接运行php artisan queue:work还是通过Supervisor启动队列,htop显示该进程内存占用约2GB——即使队列中没有任何任务。
以下是sudo systemctl status supervisor的执行结果(numprocs = 1):
supervisor.service - Supervisor process control system for UNIX Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2023-06-23 11:39:35 CEST; 7s ago Docs: http://supervisord.org Main PID: 2850495 (supervisord) Tasks: 2 (limit: 618982) Memory: 1.9G CPU: 2.574s CGroup: /system.slice/supervisor.service ├─2850495 /usr/bin/python3 /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf └─2850496 php /var/www/html/pharavel/artisan queue:work --max-time=10800 --timeout=20 --tries=1
处理任务时内存并未增长,因此我认为可以排除内存泄漏的可能。
Laravel Queue文档中提到:
queue workers are long-lived processes and store the booted application state in memory
(译文:队列工作进程是长期运行的进程,会将启动后的应用状态存储在内存中)
但我不确定为何内存占用会如此之高。
编辑补充:Supervisor的Worker配置如下
[program:pharavel-worker] process_name=%(program_name)s_%(process_num)02d command=php /var/www/html/pharavel/artisan queue:work --max-time=10800 --timeout=10 --tries=1 autostart=true autorestart=true stopasgroup=true killasgroup=true ;user=forge numprocs=1 redirect_stderr=true stdout_logfile=/var/www/html/pharavel/storage/logs/pharavel-worker.log stopwaitsecs=7200
内容的提问来源于stack exchange,提问作者Bruno
相关产品推荐
相关产品推荐

