Я работаю в очереди, которая подключается к шести MQ. Когда он вызывается, он потребляет 25 МБ оперативной памяти. То есть с нулевыми заданиями в очереди, то есть работник находится в спящем состоянии. Я использую Larvel для всех своих проектов, этот конкретный проект предназначен исключительно для работника очереди (т. Е. Микросервиса без веб-доступа).
Я хотел бы уменьшить объем занимаемой памяти, но, что более важно, я хотел бы знать, где используется память. Я использую PHP 7.1, так что теперь, когда xhprof больше не профилирует память, я должен найти альтернативу.
Я знаю, что Люмен должен потреблять меньше памяти, и, по крайней мере, кажется, что Люмен подмножество Laravel. Можно ли «отключить» части моего приложения Laravel, чтобы оно имитировало Lumen? Я попытался закомментировать строки из config / app.php $providers
массив, но, кажется, нет большой разницы в потреблении памяти (~ 1MB по моим меркам).
ТЛ; др; как «настроить» след памяти Laravel? как превратить Laravel в люмен?
Спасибо
РЕДАКТИРОВАТЬ: Фото или это не произошло. AFAIK столбец RES находится в килобайтах, поэтому ~ 39 МБ памяти.
Возможно, это поможет сократить объем памяти, используемой в вашей очереди.
URL: Очереди Laravel — Вопросы по ресурсам
Ресурсы
Работники очереди демонов не «перезагружают» каркас перед обработкой каждого задания. Поэтому вы должны освобождать любые тяжелые ресурсы после завершения каждой работы. Например, если вы выполняете манипуляции с изображениями с помощью библиотеки GD, вы должны освободить память с помощью imagedestroy
когда вы сделали.
Вы проверили свой php.ini и отключили все расширения, которые вам не нужны для вашего работника? & Остальная часть кодовой базы.
Вы можете создать собственный php.ini для этого работника и предоставить его через аргументы командной строки.
PHP -c queue_php.ini Ремесленная очередь: работа.
Не забывайте, что объем памяти, который вы видите там, предназначен для всего этого выполнения PHP, включая JIT-компилятор и все загруженные расширения и все, что они загружают.