Quantos domínios em um único servidor Apache?

9

Estou hospedando cerca de 300 domínios para meus clientes em um único servidor Apache. Como todos eles não têm muito tráfego, a carga do servidor não é um problema.

Teoricamente, não deve haver limite de quantos domínios de baixo tráfego eu posso ter no servidor, mas estou preocupado que, se houver muitos domínios no servidor, a lista completa de domínios a serem verificados para cada solicitação recebida diminua o Apache baixa.

Existe uma regra de ouro quanto tempo uma configuração do Apache pode ter e quantos domínios diferentes ele pode lidar sem problemas? 500 são ok? 5000?

Esclarecendo: não estou perguntando quanto tráfego um servidor pode suportar. Eu sei que esse servidor específico pode lidar com pelo menos duas vezes a quantidade de seu tráfego atual. Quero saber se o número de domínios é um fator crítico ou não.

Gene Vincent
fonte

Respostas:

9

Eu já vi servidores com literalmente milhares de domínios rodando sem problemas. O desempenho não diminui significativamente apenas pelo número de sites que você está executando.

É o número geral de solicitações e a quantidade de CPU (e outros recursos, como largura de banda, E / S de disco, chamadas ao banco de dados etc.) é necessária por solicitação que influencia a capacidade de resposta do servidor.

splattne
fonte
+1 - a quantidade de tempo de CPU necessária para fazer uma verificação serial de uma matriz de 10.000 entradas armazenadas na RAM é insignificante.
Mark Henderson
4

Não existe regra mágica para esse tipo de coisa. Tudo é baseado em especificações de hardware e ajuste de software. Você não adicionará um novo site e verá o servidor tombar e morrer sufocado (a menos que seja um site de alto uso logo de cara e você não esteja preparado para isso). Como na maioria das coisas, você precisa monitorar o desempenho do servidor e, quando começar a vê-lo desacelerar, avalie nesse ponto e veja as atualizações de hardware ou um novo servidor para lidar com a nova hospedagem de domínio. E, para responder ao seu ponto de esclarecimento, não se trata de número de domínios, é sobre o que cada domínio está trazendo individualmente como carga para o servidor. Nenhum número mágico.

Holocryptic
fonte
Como específica de uma resposta pode ser a esta pergunta ...
Nandhini Anand
3
Gene, para fazer backup do que o Holocryptic diz, imagine a carga de trabalho gerada por 500 (ou 5.000) sites com uma ou duas páginas estáticas. Agora imagine a carga de trabalho gerada se você hospedar apenas um site. Mas e se esse site for google.com ou facebook.com - o número de domínios não é o problema, é o trabalho que esses domínios estão solicitando ao servidor.
Rob Moir
@ Robert Moir: Não estou perguntando sobre o tráfego que o servidor pode suportar. Quero saber se o número de domínios ou o tamanho do arquivo de configuração é um fator.
Gene Vincent
3

Você pode encontrar http://httpd.apache.org/docs/2.2/vhosts/details.html#hostmatching informativo. O Apache usa uma tabela de hash para manipular VHosts que não estão mapeados para *: 80 e, em seguida, itera sobre uma lista vinculada de todos os VHosts atribuídos a essa porta IP: para encontrar o servidor correspondente (Nome | Alias). Você provavelmente precisaria hospedar milhões de domínios antes que esse processo ficasse visivelmente caro.

Você também pode dar uma olhada em http://httpd.apache.org/docs/2.2/vhosts/mass.html e comparar isso com sua abordagem atual; Depois de obter VHosts suficientes para que a passagem da lista vinculada demore mais tempo que um lstat (), VirtualDocumentRootacabará sendo mais rápida que os VHosts especificados individualmente.

BMDan
fonte
Estou usando hosts virtuais baseados em nome e parece que o Apache usa apenas a tabela de hash para hosts virtuais baseados em IP, resultando em uma pesquisa linear.
Gene Vincent
Corrigir. Desculpe se minha resposta não foi tão clara quanto poderia ser neste ponto: a tabela de hash é usada para selecionar qual lista vinculada iterar, não (diretamente) para selecionar qual VHost deve atender a uma determinada solicitação (exceto quando não estiver em execução NameVirtualHost)
BMDan 15/05
1

Eu tenho alguns servidores VPS que hospedam mais de 8000 domínios. O servidor está funcionando corretamente, com carga média sempre no nível 0.xx. Eu acho que ele pode lidar com mais sem problemas. Será necessário mais tempo para recompilar o Apache ao adicionar ou excluir um domínio. Além disso, o arquivo httpd.conf é bastante grande, em torno de 60 milhões. É mais seguro limitar o número de domínios para cerca de 5000.

garconcn
fonte