Como posso evitar que um host virtual de teste no Apache consuma muitos recursos em relação ao host principal?

1

Eu tenho um servidor web executando o Plesk. Eu criei um subdomínio de teste no apache e coloquei uma cópia do site lá para usar no teste. Desde então, o uso de memória no servidor aumentou bastante. Os arquivos são os mesmos, as tarefas são as mesmas ... mas se eu reiniciar o Apache, e a ferramenta no site ao vivo por um tempo, o uso fica em torno de 0.5gb / 2.0gb no total. Visitar uma página no site de teste coloca o uso em 1.0gb imediatamente e o uso fica em torno da marca de 1gb.

Minha primeira pergunta é: parece razoável que um segundo host virtual consuma muita memória extra? Eu não sei muito sobre essas coisas, mas posso imaginar que um monte de recursos são armazenados em cache e / ou reservados quando o segundo host virtual começa a ser usado, e que a quantidade de recursos exigidos por duas cópias desse aplicativo seria o dobro disso requerido por uma cópia.

Minha segunda pergunta é, se esse é o caso, existe alguma maneira de dizer ao sistema que este servidor de teste é realmente de baixa prioridade, e que eu estou perfeitamente feliz em esperar por mais tempo para que as solicitações passem, por isso para liberar memória depois de fazer coisas, etc?

    
por Jeremy Warne 19.02.2012 / 07:00

1 resposta

3

(Eu não sei plesk, então esta resposta pode estar errada se essas suposições estiverem erradas.)

Com relação ao uso da memória, isso depende do que o back-end do aplicativo está usando, porque mod_XXX php ou qualquer que seja sua linguagem de script que você esteja usando pode gerar uma nova instância de processamento de script para manipular o segundo host virtual. Portanto, é plausível que ele crie um segundo cache duplicado e um buffer para si mesmo. Você teria que fornecer os detalhes do servidor de aplicativos, etc.

Com relação à criação de uma prioridade mais alta para um site sobre o outro, aplica-se o seguinte; Supondo que seu subdomínio de teste esteja sendo executado como um NameVirtualHost, tanto o site principal quanto o site do subdomínio de teste estão sendo executados no mesmo endereço IP na mesma instância do apache httpd.

O problema é que o apache deve ler o cabeçalho HTTP "Host:" da solicitação para determinar qual host virtual deve manipular a solicitação, para que já seja possível executar a maior parte do caminho antes de aplicar limites. (a maioria dos limites de httpd se aplica por servidor, não por virtualhost, consulte link para obter detalhes )

Portanto, é difícil aplicar limites de CPU ou memória dessa maneira. No entanto, suas opções podem ser iniciar outra instância do httpd, que tem RLimitMEM menor, RLimitNPROC configurado nesse servidor e, para isso, seria necessário outro endereço IP. (no entanto, isso é um PITA, a menos que seja fácil fazer com o plesk, ou você está feliz em mexer com os arquivos init.d, e você pode acabar usando ainda mais memória RAM para o segundo httpd / children do que antes)

    
por 19.02.2012 / 07:35