Память работника очереди Laravel слишком велика: /

Я работаю в очереди, которая подключается к шести MQ. Когда он вызывается, он потребляет 25 МБ оперативной памяти. То есть с нулевыми заданиями в очереди, то есть работник находится в спящем состоянии. Я использую Larvel для всех своих проектов, этот конкретный проект предназначен исключительно для работника очереди (т. Е. Микросервиса без веб-доступа).

Я хотел бы уменьшить объем занимаемой памяти, но, что более важно, я хотел бы знать, где используется память. Я использую PHP 7.1, так что теперь, когда xhprof больше не профилирует память, я должен найти альтернативу.

Я знаю, что Люмен должен потреблять меньше памяти, и, по крайней мере, кажется, что Люмен подмножество Laravel. Можно ли «отключить» части моего приложения Laravel, чтобы оно имитировало Lumen? Я попытался закомментировать строки из config / app.php $providers массив, но, кажется, нет большой разницы в потреблении памяти (~ 1MB по моим меркам).

ТЛ; др; как «настроить» след памяти Laravel? как превратить Laravel в люмен?

Спасибо

РЕДАКТИРОВАТЬ: Фото или это не произошло. AFAIK столбец RES находится в килобайтах, поэтому ~ 39 МБ памяти.

RES == 39 МБ

11

Решение

Возможно, это поможет сократить объем памяти, используемой в вашей очереди.

URL: Очереди Laravel — Вопросы по ресурсам

Ресурсы

Работники очереди демонов не «перезагружают» каркас перед обработкой каждого задания. Поэтому вы должны освобождать любые тяжелые ресурсы после завершения каждой работы. Например, если вы выполняете манипуляции с изображениями с помощью библиотеки GD, вы должны освободить память с помощью imagedestroy когда вы сделали.

1

Другие решения

Вы проверили свой php.ini и отключили все расширения, которые вам не нужны для вашего работника? & Остальная часть кодовой базы.

Вы можете создать собственный php.ini для этого работника и предоставить его через аргументы командной строки.

PHP -c queue_php.ini Ремесленная очередь: работа.

Не забывайте, что объем памяти, который вы видите там, предназначен для всего этого выполнения PHP, включая JIT-компилятор и все загруженные расширения и все, что они загружают.

1

По вопросам рекламы [email protected]