Em Sexta 24 Março 2006 07:53, Antonio da Silva Martins Junior escreveu:
>   Correto, em termos! O que eu disse é que se o servidor executa somente
> uma aplicação esta aplicação ficara presa a um único processador. O Apache
> por outro lado já executa n tasks em paralelo e o Scheduler irá alocar
> tempo de CPU em quaisquer processadores livres.

Ha! Agora eu entendi!
Por algum motivo a primeira vez que li sua frase no outro e-mail eu achei que 
você tinha dito exatamente o oposto disso. Ufa, isso é um alivio!

>   Não trabalhei ainda com a criação de bibliotecas dinâmicas, mas pelo que
> me recordo da teoria a sua utilização irá economizar a memória da area de
> código, que é compartilhada, e o tempo de carga pois a biblioteca só é
> carregada uma vez para todas as instâncias/processos que a utilizem.

Essa é a idéia, mas como vou experimentar isso na pratica, com um projeto 
realmente grande, quero ter certeza que esta tudo certo... pelo menos na 
teoria. :-D Nos outros projetos menores e mono-tarefa sobrava tanto recurso 
de hardware que quase não fazia diferença quanto a compilação estática e 
dinâmica, exceto na carga.

>   Com a utilização de uma máquina multi-processada você irá perceber a
> melhora de performance porque no pior caso o SO utiliza um processador e a
> sua aplicação o outro. No seu caso como a sua aplicação utiliza diversas
> tasks simultâneas o ganho de performance está praticamente garantido! Mas
> lembre-se de otimizar o sistema como um todo! Não adianta nada várias CPUs
> rápidas e pouca memória ou um disco lento (se o sistema depende de um
> banco de dados). O melhor é o equilibrio entre os componentes!

Sim, essa é uma boa dica!
Estou usando PostgreSQL como base de dados e seguindo as dicas do manual e do 
grupo de usuários para deixar o sistema otimizado. Coisas como usar discos 
rápidos, sistemas de arquivo adequado, separar os logs de transação para 
outro disco, etc.

Especificamente com relação a otimizar o meu sistema para maquinas 
multiprocessadas preferi que uma nova conexão com o banco de dados fosse 
aberta a cada requisição do usuário (como qualquer aplicação CGI sem recursos 
de persistência faria). O motivo é que o PostgreSQL cria um novo processo 
para cada nova conexão com o banco. Se eu usar algum meio de persistência 
para a conexão (via FastCGI por exemplo) isso vai diminuir o tempo gasto com 
a conexão o que é bom em uma maquina mono-processada mas também impede que o 
banco se beneficie de uma maquina multiprocessadas já que não se pode (pelo 
que eu sei) mover um processo de um processador para o outro.

Estou apostando nesse tipo de otimização com a premissa de que maquinas 
multiprocessadas e processadores com múltiplos núcleos estão cada vez mais 
acessíveis. 

Abraços!

Cesar Gimenes
---------------------------------------------------------------------------
Esta lista é patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br

Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
Regras de utilização da lista: http://linux-br.conectiva.com.br
FAQ: http://www.zago.eti.br/menu.html

Responder a