A pegada de memória do trabalhador de fila do Laravel é muito grande: /

10

Estou executando um trabalhador de fila que se conecta a seis MQs. Quando é criado, consome 25MB de RAM. Isso é com zero trabalhos na fila, ou seja, o trabalhador está em um estado de suspensão. Eu uso Larvel para todos os meus projetos, este projeto em particular é puramente construído para o trabalhador de fila (ou seja, um microsserviço sem acesso à web).

Eu gostaria de reduzir o consumo de memória, mas o mais importante é saber onde a memória está sendo consumida. Eu estou usando o PHP 7.1, então agora que o xhprof não tem mais perfis de memória, eu tenho que descobrir uma alternativa.

Eu sei que o Lumen é destinado a consumir menos memória, e parece pelo menos que o Lumen é um subconjunto do Laravel. É possível "desligar" partes do meu aplicativo Laravel para que ele imite Lumen? Eu tentei comentar linhas do array config / app.php $providers , mas não parece haver uma grande diferença no consumo de memória (~ 1MB por minha medida).

tl; dr; como "ajustar" a pegada de memória do Laravel? como transformar o Laravel em Lumen?

Obrigado

EDIT: fotos ou não aconteceu. AFAIK a coluna RES está em kilobytes, então ~ 39MB de memória.

    
por mils 12.10.2017 в 01:05
fonte

2 respostas

1

Isso poderia ajudar a reduzir a memória usada na sua fila.

url: Filas do Laravel - Considerações sobre recursos

  

Considerações sobre recursos

Os funcionários da fila Daemon não "reinicializam" a estrutura antes de processar cada tarefa. Portanto, você deve liberar todos os recursos pesados após a conclusão de cada trabalho. Por exemplo, se você estiver fazendo manipulação de imagens com a biblioteca GD, deverá liberar a memória com imagedestroy quando terminar.

    
por Dhaval Purohit 10.01.2018 / 09:35
fonte
1

Você verificou seu php.ini e desativou todas as extensões que não são necessárias para seu funcionário & amp; resto da base de código.

Você poderia criar um arquivo php.ini personalizado para esse trabalhador e fornecê-lo por meio dos argumentos da linha de comando

  

Fila de artes do -c queue_php.ini : trabalho.

Não se esqueça de que a pegada de memória que você vê lá é para toda a execução do PHP, de modo que inclua o JIT Compiler e todas as extensões carregadas e o que quer que elas carreguem.

    
por Martin Barker 16.01.2018 / 16:53
fonte