Todos os méritos do Thundercache deve ser dado ao Rodrigo Manga e seus colaboradores no projeto, olhem a simplicidade do camarada no post acima.
Bom, esse tópico ''todo'' não é só para copiar e colar, é para que possamos compartilhas os problemas e soluções para instalar uma ferramenta importante e que nos auxiliará muito em nossos provedores.
Derepente parece ser ''desnecessário'' que uma pessoa qualquer oriente outras para a aprendizagem de qualquer coisa que seja, então vamos fechar colégios e faculdades por que os professores não precisam estar lá, para te orientar e te ensinar os detalhes ''seja'' ele qual for..sem sentido não? Longe de mim me comparar a qualquer ''bom'' professor, estou longe disso, mas algumas idéias são diferentes das minhas...analizem e tirem as suas conclusões.
Vamos ao que interessa realmente, no caso agora o apache:
Bom, vamos pensar e analizar como o apache se comportaria em diversos cenários,redes de 0 a 100 clientes, de 100 a 500 clientes, e acima, muito acima disso, mas acho que acima de 500 clientes se pode ter um hardware mais eficiente para esse serviço.
Como já disse no tópico anterior o diagrama ''basico e simplificado'' do Thunder é o seguinte:
A conexão é redirecionada do Mk para o server debian ''no caso'' lá a conexão entrará no squid e no próprio squid há um redirecionamento para o Thunder, esse por sua vez reescreve as url's originais para outra em que possa ser lida e interpretada como um HIT, quer dizer, o Thunder faz uma cópia dentro do servidor de todos os arquivos que entram para ele, essa cópia é que vai ser enviada para o cliente quando ele solicitar algo que esteja no Thunder, e quem faz esse envio é o apache, o servidor web do seu Thunder.
Então é fácil perceber que sua maquina começa a trabalhar como um ''servidor'' de arquivos de internet mesmo, se você verificar de onde está vindo os arquivos com o snnifer por exemplo, ele mostrará que vão vir todos do ip do seu Thunder no caso 192.168.10.250, e não de um ip válido da internet, pensando assim, quanto mais cheio estiver o seu HD mais requisições o apache vai ter que responder, talvez chegando ao seu limite em um período que pode ser diferente, e que cada caso é um caso, percebe-se também que os valores das configurações do apache podem mudar de acordo com a quantidade de solicitações recebidas por ele, isso quer dizer que, pode acontecer que quando seu cache encher de verdade, pode haver lentidão, ou travamentos, mas o próprio apache dispõe de várias ferramentas para isso não acontecer.
Peço aos colegas que sabem mais sobre o apache que postem alguma coisa para nos ajudar por que não domino o conteúdo do apache e tudo que sei sobre foi pesquizando no google. Aqui vai um execelente link onde mostra uma ferramenta do apache, e como ela pode ser usada exatamente nesse caso, vocês darão uma lida no conteúdo e todo comentário é bem vindo, mas as configurações ''default'' do apache estão funcionando perfeitamente para mim a não ser um só parâmetro que alterei, o link é esse:
http://www.gdhpress.com.br/servidores/leia/index.php?p=cap6-29
( Não utilizo esse módulo, só estou mostrando que temos inúmeras opções de configurações.)
Nesse outro link aqui temos uma relação dos módulos suportados pelo apache, aos quais podem ser pesquizados e adicionados em cada situação.
http://www.criarweb.com/artigos/arquitetura-servidor-apache.html
As principais funções do apache2.conf que estão setadas quando você instalar o seu ThundeCache são essas:
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
StartServers
A diretiva StartServers define o número de processos criados na inicialização do Apache. O Apache irá continuar abrir os processos até que alcance o número de MinSpareServers
MinSpareServers, MaxSpareServers
MaxSpareServers e MinSpareServers determina quantos processos filhos devem ser mantidos rodando. Se MinSpareServers for muito baixo e muitas requisições forem iniciadas, então o Apache terá que abrir processos adicionais para atender as requisições. Criar processos filhos é relativamente caro. Se o servidor estiver ocupado criando processos, ele não estará disponível para servir as requisições imediatamente. MaxSpareServers não deve ser muito alto, ele pode causar problemas de recursos desde que cada processo consome os recursos da máquina.
Maxclients
O MaxClients seta o número máximo de clientes simultâneos que pode ser suportada por cada servidor. Nenhum processo além do que está definido será aberto. Ele não deve conter um número muito baixo já que as requisições serão colacadas em fila, o que eventualmente irá dar time-out e os recursos do servidor continuarão não utilizados. Setar este valor muito alto irá causar o início de swap e o tempo de resposta irá cair drasticamente.
( A quantidade de clientes que você tem não é a quantidade que deve ser configurada em maxclients, até por que não estão todos conectados simultâneamente, esse número está de bom tamanho, a não ser que vc tenha uma rede superior a 500 clientes.)
MaxRequestsPerChild
A diretiva MaxRequestsPerChild definie o número de requisições que um processo do servidor irá gerenciar. Depois as requisições MaxRequestsPerChild irão morrer. É definido para 0 por padrão, o que significa que o processo não irá expirar nunca. É apropriado setar este valor para alguns milhares. Isto pode ajudar a previnir vazamento de memória desde que o processo morre depois de servir um número de requisições. Não sete este valor muito baixo, já que criar novos processos causa overhead.
Todos essas referências foram pesquizadas no google, e estão aqui para que possam ter uma referência no que pode ser mudado em seu server apache no caso de um execesso de requisições e travamento do mesmo.Vale citar que não mexi nas configurações default do apache2.conf, e até agora tudo está perfeito, veremos se algo acontecerá lá na frente, mas isso faz parte de uma nova ferramenta que está sendo desenvolvida, agora usuários que tenham realmente conhecimento com o apache podem citar aqui otimizações para todos, mas por enquanto tá bom demais.
Parâmetro alterado no meu apache2.conf: MaxKeepAliveRequests 100
Quanto maior esse número, mais requisições um mesmo usuário poderá fazer antes de liberar a conexão para outro. Valores típicos estão entre 100 e 500 (0 significa que não há limite).
Bom, finalizando hoje '''''aqui está o calcanhar de Aquiles''' do Thunder, prudência com esses valores, começe com as configurações default, observem que a maior parte desse conteúdo foi só referências para que todos consigam saber o que são as configurações.
Continua...PHP...