Recurso usado no Amazon EC2 hospedando vários domínios

2

Estou hospedando 4 domínios usando virtualhost na minha conta de nível livre da AWS com micro instância do Ubuntu. Quando hospedei apenas um domínio, o uso de RAM estava em torno de 250MB de 613MB disponíveis. Depois de adicionar 4 domínios, são 535,67 MB usados, com 11 instâncias de apache2 em execução.
É para funcionar assim? Desde que esses domínios não estejam sendo acessados. Eles são redirecionados para lá e o registro de vhost é adicionado. É isso aí. Então, é como se o apache se mantenha dimensionado à medida que adicionamos mais registros de vhost? se eu quiser hospedar cerca de 4 domínios em um servidor, quanto a quantidade de RAM deve ser para casos padrão?

    
por Bibhas 09.11.2011 / 18:14

2 respostas

1

O Apache, infelizmente, lança um thread de trabalho por solicitação - o que implica iniciar essencialmente uma cópia completa do Apache (há alguma memória compartilhada). Isso torna muito fácil para baixa carga consumir toda a memória disponível. Você desejará desabilitar tantos módulos quanto possível para minimizar a pegada do Apache (tendo em mente que os segmentos gerados tendem a permanecer por um tempo). Você vai querer olhar para o uso médio de memória por processo do Apache (por exemplo, usando ps / top) e, em seguida, calcular o número máximo de processos que você pode executar (configurando esse valor no bloco prefork ou mpm do httpd.conf). Na instância t1.micro, eu também recomendaria a adição de um volume de troca baseado em EBS para que, se você ficar sem memória, não diminua seu servidor.

Os próprios domínios não aumentam o uso da memória, mas o Apache gerará mais trabalhadores se suas configurações permitirem - é possível que os mecanismos de pesquisa, etc., acessem os domínios que resultarão nos processos adicionais.

É bastante comum que os processos do Apache iniciem por volta de 10MB e cresçam com o uso (alcançando facilmente 40-60MB por processo). Um dos grandes contribuidores para isso é o PHP (se você estiver usando). Evite usar o mod_php no t1.micro, pois ele adiciona uma sobrecarga considerável a cada encadeamento do Apache. Em vez disso, vá com php-fcgi ou melhor ainda php-fpm. Em ambos os casos, o interpretador php é executado independentemente do Apache, oferecendo uma utilização de memória muito melhor (há uma leve perda de desempenho, mas os benefícios superam em muito as perdas).

Se você não precisar usar o Apache (por exemplo, não tenha um requisito para um módulo específico e não exija arquivos .htaccess) eu recomendo o nginx (com php-fpm). O uso geral da memória diminuirá consideravelmente e você também deverá notar um aumento de desempenho.

    
por 09.11.2011 / 18:47
0

Os sistemas operacionais modernos são geralmente projetados intencionalmente para usar toda a memória disponível. A suposição é que você não pode salvá-lo para mais tarde, então não há nenhum benefício em deixá-lo sem uso. Os dados mantidos na RAM podem se tornar necessários mais tarde e salvar um acesso ao disco. A RAM livre que é improvável de ser usada em um futuro próximo não oferece nenhum benefício, então não faz sentido criar muito dela.

O sistema assume que você deu essa memória porque queria usá-la para melhorar o desempenho.

    
por 09.11.2011 / 18:56