aLinks: o novo vilão do consumo de CPU

fecharEste post foi publicado há mais de noventa dias, e as informações aqui contidas podem estar desatualizadas ou mesmo não terem mais nenhuma validade. Não nos responsabilizamos por eventuais mal entendidos.

Era uma bela tarde chuvosa em Porto Alegre, daquelas que convidam a um café com leite e bolo de laranja e uma esticadinha pelos canais de filmes da tevê, quando os tickets de suporte avisando que um servidor estava arriado começaram a chegar. Conseguimos responder o primeiro ticket em 45 segundos e em menos de um minuto havíamos identificado a conta que estava causando problemas. Desabilitamo-la, mas isso nem de longe resolveria o problema. No máximo esta atitude iria amenizar o transtorno para os “vizinhos” do site suspenso, mas a situação só estaria resolvida quando todos os envolvidos estivessem satisfeitos.

O que a gente ouve é sempre a mesma coisa: “eu não mexi em nada no site, como é que de uma hora para outra começou a consumir tanto?”

Acontece que o problema começou a acontecer numa outra conta também, e com o cliente no MSN fomos desativando um por um dos plugins, até que o aLinks foi desativado, e o consumo de CPU baixou para os níveis normais do servidor. Pedi, então, ao outro cliente que o desabilitasse também.

Ficamos intrigados com o que poderia estar causando este problema, pois eu próprio uso o aLinks em diversos blogs, e não tenho este tipo de problema.

Analisando o código do plugin, contudo, tive um insight: os dois certamente teriam ativado a opção de gerar links nos comentários. Perguntei, e ambos disseram que sim. Voltamos à configuração de gerar links apenas no post, e os problemas acabaram.

É perfeitamente compreensível que a geração de links nos comentários pese excessivamente em um blog, principalmente se considerarmos que o aLinks usa muitas expressões regulares, que por natureza são pesadas para o PHP processar.

Vejamos um cálculo ilustrativo.

Consideremos “n” como sendo a carga necessária para o aLinks converter os termos de um determinado texto. Consideremos também “c” como sendo a quantidade de comentários de cada post.

Ora, se o aLinks vai ter de ser executado sempre para converter os links para o post, mais uma vez por comentário, temos a seguinte fórmula hipotética:

N = (c+1)n

Ou seja, a carga total é o resultado da carga individual multiplicada pela quantidade de comentários mais um.

Veja no gráfico abaixo o aumento de carga de acordo com o aumento de comentários por página. A linha azul indica o aumento de comentários numa página, e a linha vermelha indica a carga na CPU.

Então, agora você já sabe: não há problemas em usar o aLinks, mas muito cuidado com as opções de configuração, ou seu site pode ser suspenso por consumo excessivo de CPU.

Publicado por Janio Sarmento – 18 de agosto de 2008, em Blog, Ferramentas

Posts Relacionados:

Socialize-se
Assine nossa newsletter
PortoFácil © 2011 - Hospedagem Profissional Movido a WordPress | Sitemap | WebDesign