Confuso sobre a solução de armazenamento em cache: MemCache, Varnished, mod_cache, else?

4

Eu tenho um site muito pesado no meu servidor. A carga do servidor é sempre cerca de 30-50 e, por vezes, torna-se ainda 150 e o trabalho do servidor é realmente difícil. Estou procurando uma solução de armazenamento em cache que possa aumentar o desempenho do servidor e diminuir a carga do servidor.

Mas eu não sei qual solução de cache devo usar? A propósito, estou usando o Drupal CMS e tenho o WHM / CPanel

Aqui estão as opções que encontrei: 1- Memcached 2- Verniz 3- Apache mod_cache

Alguém pode me dar alguma comparação ou orientação sobre essas plataformas? O mod_cache do Apache funciona tão bem quanto o Varnish? Porque instalar e configurar o Varnish não é um pouco complicado no cPanel / WHM. Embora eu li comentários muito bons sobre o verniz.

Estou procurando a melhor solução de cache que possa ser configurada de forma direta e não complicada. Eu apreciaria qualquer ajuda ou comentário.

    
por bman 23.09.2011 / 02:12

1 resposta

10

Here are options which I found: 1- Memcached 2- Varnish 3- Apache mod_cache

Advertências: Você sabe por que sua carga é tão alta? Se a carga é causada pela alta carga de CPU necessária para gerar conteúdo dinâmico e você capaz de servir esse conteúdo de um cache, do que uma solução de cache pode ajudar você. Mas se a carga for causada pela contenção de E / S ou se você estiver servindo conteúdo personalizado que não é passível de armazenamento em cache, solução de armazenamento em cache pode não ajudar muito.

Em geral, um cache precisará de um grande pedaço de memória para ser eficaz. Se o seu sistema já está com memória restrita, então o software de armazenamento em cache poderia, possivelmente, exacerbar o seu problema.

  • Memcached

    O Memcached por si só não ajuda você. Ou seja, ao contrário de Varnish e O mod_cache do Apache, o Memcached não é algo que você pode simplesmente suportar na frente de um aplicativo existente.

    Memcached é um datastore de chave / valor muito rápido que pode ser usado por aplicações para acelerar uma variedade de operações. Um exemplo comum é um banco de dados que precisa fazer consultas ao banco de dados: se não há problema em armazenar os resultados em cache por algum tempo, os resultados podem ser muito mais rápido pelo memcached do que pela base de dados de backend.

    Se a carga do servidor for basicamente o resultado de um código personalizado, modificar seu código para tirar proveito do memcached pode render um benefício substancial.

  • Varnish e mod_cache do Apache

    Ambos podem ser usados para acelerar a entrega de dados dinâmicos. conteúdo.

    Dos dois, o Varnish é uma ferramenta especializada projetada somente como acelerador de conteúdo. Só faz uma coisa, mas pela reputação faz muito bem. A linguagem de configuração é um subconjunto C que é compilado e carregado no processo de execução do verniz; isto não é bom ou ruim por si só, mas eu prefiro linguagens mais declarativas.

    O mod_cache do Apache também pode ser usado como um acelerador de conteúdo. Lá são duas vantagens para o mod_cache:

    • Se você já estiver executando o Apache, você estará familiarizado com o configuração usada por mod_cache.
    • Você pode combinar o mod_cache com outros módulos do Apache (por exemplo, mod_rewrite e mod_header) para criar um muito flexível configuração.

    Por outro lado, seu desempenho pode não ser tão bom quanto fornecido pelo verniz. Eu realmente não tenho números para apoiar isso para cima, mas eles provavelmente estão lá fora (procure por eles - não tome o meu palavra para isso!).

    Ambos os produtos funcionam melhor se você ajustar seu aplicativo de back-end para fornecer conteúdo compatível com cache. Isso significa cache apropriado cabeçalhos, nenhum cookie em conteúdo armazenável, max-age ou cabeçalhos de expiração, etc.

Certifique-se de entender seu problema primeiro: descobrir o que está causando a carga alta. Em seguida, tente uma ou mais dessas soluções e veja o que acontece.

    
por 23.09.2011 / 02:49