12

我正在运行一个连接到六个 MQ 的队列工作程序。启动时,它会消耗 25MB 的 RAM。那就是队列上的作业为零,即工作人员处于睡眠状态。我的所有项目都使用 Larvel,这个特定的项目纯粹是为队列工作者构建的(即没有 Web 访问的微服务)。

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

我知道 Lumen 是为了消耗更少的内存,至少 Lumen 似乎是Laravel的一个子集。是否可以“关闭”我的 Laravel 应用程序的某些部分以模仿 Lumen?我尝试从 config/app.php 数组中注释掉行$providers,但内存消耗似乎没有太大差异(根据我的测量约为 1MB)。

tl;博士; 如何“调整” Laravel 内存占用?如何将 Laravel 变成 Lumen?

谢谢

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

RES == 39MB

4

2 回答 2

1

您是否检查了您的 php.ini 并关闭了您的工作人员和其他代码库不需要的任何扩展。

您可以为此工作人员创建一个自定义 php.ini 并通过命令行参数提供它

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

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

于 2018-01-16T15:53:00.040 回答
1

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

url : Laravel 队列 - 资源注意事项

资源注意事项

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

于 2018-01-10T08:35:41.300 回答