Laravel Queue工人记忆足迹太大了:/

时间:2017-10-11 23:05:53

标签: php laravel memory lumen memory-footprint

我正在运行一个连接到六个MQ的队列工作者。当它被启动时,它消耗25MB的RAM。即队列中没有任务,即工作人员处于睡眠状态。我在所有项目中使用Larvel,这个特殊项目纯粹是为队列工作者(即没有Web访问权限的微服务)构建的。

我想减少内存占用,但更重要的是我想知道内存消耗的位置。我正在使用PHP 7.1,所以现在xhprof不再是配置文件内存我必须找到一个替代方案。

我知道Lumen意味着消耗更少的内存,而且至少看起来Lumen是Laravel的子集。有可能"关闭"我的Laravel应用程序的一部分,以便它模仿流明?我尝试评估config / app.php $providers数组中的行,但内存消耗似乎没有太大差异(我的测量值约为1MB)。

TL;博士;如何"调整" Laravel内存占用空间?如何将Laravel变成Lumen?

谢谢

编辑:Pics或它没有发生。 RES列的AFAIK以千字节为单位,因此〜39MB的内存。

RES == 39MB

2 个答案:

答案 0 :(得分:1)

这可能有助于减少队列中使用的内存。

url:Laravel queues - Resource Considerations

  

资源注意事项

守护程序队列工作程序在处理每个作业之前不会“重新启动”框架。因此,您应该在每个作业完成后释放任何繁重的资源。例如,如果您使用GD库进行图像处理,则在完成后应使用imagedestroy释放内存。

答案 1 :(得分:1)

您是否检查过您的php.ini并关闭了您的工作人员不需要的任何扩展程序。代码库的其余部分。

您可以为此worker创建一个自定义php.ini,并通过命令行参数

提供它
  

php -c queue_php.ini 工匠队列:工作。

不要忘记,您在那里看到的内存占用所有PHP执行,包括JIT编译器和任何加载的扩展以及它们加载的任何内容。