ImageMagick – Como limitar threads

Olá, pequeno Kangaroo, como vai? Você conhece a extensão ImageMagick do PHP e sabe para que ela serve? Se ainda não sabe, não se preocupe, neste artigo vamos te falar um pouco sobre ele, e te passar uma dica que pode salvar muitas hospedagens, que é como limitar os threads dessa ferramenta.

O que é e para que serve a ImageMagick

Basicamente, a extensão ImageMagick do PHP te permite criar, editar, converter imagens e algumas outras funções, em outras palavras, essa extensão te permite, de certa forma, “manusear” imagens que você está usando nas suas aplicações. Porém, note que essa não é uma ferramenta que você abre e executa as ações, ela é uma extensão que permite que suas aplicações e hospedagem consigam realizar esse tipo de ação.

Por exemplo, se você possui um site WordPress, ao subir uma imagem para a biblioteca, ele por padrão redimensiona as imagens, de forma a otimizar e ter vários tamanhos para usar em algumas situações no site. Além do próprio WordPress, alguns plugins de otimização de imagem também podem requisitar essa extensão.

Problemas com threads ilimitados

Porém, há situações relatadas onde a extensão acabou esgotando os recursos da hospedagem, possivelmente ao tentar converter tipos de imagem mais pesadas, o ImageMagick pode tentar alocar mais recursos do que há disponível na hospedagem, resultando no esgotamento com erros 503.

Uma possível solução para isso é limitar os threads da extensão, fazendo com que, embora converta mais lentamente, evite travamentos ou esgotamento de recursos, podendo até mesmo evitar que seu site fique fora do ar. Abaixo mostramos como criar esse limitador.

Como limitar os threads

  1. Acesse o painel de controle da sua hospedagem (cPanel)
  2. Já no painel, acesse a opção Gerenciador de Arquivos
    Gerenciador de arquivos no cPanel
  3. Acesse o diretório do site que você deseja limitar os threads, o diretório do domínio principal é o public_html
    diretório do site, nesse caso, public_html
  4. Aqui, procure pelo arquivo wp-config.php, clique com o botão direito e depois em Edit
    Arquivo wp-config.php, botão para editar
  5. Dentro do arquivo, de preferência logo no início, adicione o código putenv('MAGICK_THREAD_LIMIT=1');, como no exemplo abaixo:
    Código para definir o limite de 1 thread para a extensão ImageMagick
  6. Feito isso, clique em Salvar as alterações no canto superior direito

E pronto, ao fazer isso, agora você definiu que a extensão pode no máximo utilizar 1 thread, porém, note que é essencial colocar esse valor mais baixo, pois ele é definido para cada ação da extensão. Por exemplo, se você estiver otimizando 5 imagens de uma vez, e aumentar esse valor para 4, ele pode só nesse processo consumir 20, já sendo um número bem elevado.

Encontrou sua resposta?