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.

Kristopher Johnson
fonte

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.
Carl Meyer
fonte
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. =)

Jauder Ho
fonte
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.

Dave Cheney
fonte
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