Otimizando o Apache e o MySQL no Linux Xen VPS


10

Eu tenho um servidor virtual privado (VPS) Xen executando o Ubuntu 8.10, com 128M de RAM.

Encontrei várias páginas "como otimizar Apache e MySQL para VPS com pouca memória" via Google, mas elas fornecem informações contraditórias. Então, eu estou perguntando à falha do servidor: como otimizar o Apache e o MySQL para uma configuração de VPS com pouca memória?


Algumas pessoas sugeriram o uso do nginx em vez do Apache. Analisarei isso, mas eu preferiria ficar com o Apache, se possível, apenas para evitar ter que aprender tudo sobre a configuração de pilhas de aplicativos em cima de um servidor da Web desconhecido para mim.

Respostas:


7

O Nginx é ótimo, mas se você quiser ficar com o Apache, é possível reduzi-lo um pouco a partir das configurações padrão:

  • Use o MPM de trabalho em vez de pré-fork (com o MPM de trabalho, o Apache não possui mais um modelo de "processo por conexão").
  • Veja todos os módulos compartilhados que você está carregando, livre-se de todos os que não precisa.
  • Evite incorporar servidores de aplicativos no Apache (por exemplo, mod_python, mod_php, etc), se puder evitá-lo. Em vez disso, execute servidores de aplicativos em um processo separado e tenha o proxy Apache para eles (ou seja, para código Python, use mod_wsgi no modo daemon). Dessa forma, os threads do Apache que estão simplesmente exibindo conteúdo estático não serão desnecessariamente inchados.
  • Na sua configuração do Apache, reduza as configurações StartServers, MaxClients, MinSpareThreads e MaxSpareThreads. Dependendo da carga esperada, às vezes você pode reduzi-las por um fator de cinco ou mais nas configurações padrão.

2

Se você tiver restrições de memória, eu recomendaria o uso do nginx como uma alternativa, se possível. Consome muito menos memória que o Apache e, dependendo de suas necessidades, pode ser tudo o que você precisa.

Como um bônus, o nginx tende a ser significativamente mais rápido que o Apache. =)


2

Ditch apache, seu processo por modelo de conexão não será reproduzido com seu VPS de pouca memória.

Eu sugiro o nginx como um substituto.


4
Este é apenas um problema para 1.3. O apache 2.x permite módulos de processo plugáveis, incluindo MPM, que executa muitos threads em um pequeno número de processos. Todos ajustáveis ao gosto
— Vagnerr

Sim, mas nginx ainda será um processo menor
— Dave Cheney

2
Sim, mas isso não é o que você disse
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.