Apache worker mpm, um processo e muitos threads: compreendendo o desempenho

2

Tem um programa serverside mod_perl-written. Estou usando a memória mpm do trabalhador apache compartilhada com apenas um processo e ~ 60 encadeamentos. Eu estou usando bloqueios para temporária proteger o acesso à memória compartilhada, apenas 0,1s de 1,7s são bloqueados tempo embora.

O problema é que obtenho a mesma velocidade em 10 solicitações sequenciais em comparação com 10 solicitações simultâneas.

meu script de estresse aciona n número de solicitações de processamento de URL com 0,1 s de atraso entre cada um. O número entre parênteses é o número da solicitação.

perl stressTestServer.pl n=1
DONE  ( 0 ) > 1.778257 sek 

perl stressTestServer.pl n=5
DONE  ( 3 ) > 8.71926 sek 
DONE  ( 0 ) > 8.85207 sek 
DONE  ( 1 ) > 8.976061 sek 
DONE  ( 4 ) > 9.119936 sek 
DONE  ( 2 ) > 9.218552 sek 

perl stressTestServer.pl n=10
DONE  ( 9 ) > 8.840539 sek 
DONE  ( 7 ) > 9.130133 sek 
DONE  ( 8 ) > 9.271598 sek 
DONE  ( 6 ) > 9.873936 sek 
DONE  ( 5 ) > 10.02668 sek 
DONE  ( 4 ) > 18.169001 sek 
DONE  ( 3 ) > 18.432776 sek 
DONE  ( 2 ) > 18.617186 sek 
DONE  ( 1 ) > 18.775277 sek 
DONE  ( 0 ) > 18.821972 sek 

isso é normal para essa configuração? isso é testado em um dual-core. movendo-se para um quad core, que diferença de desempenho posso esperar com essa configuração? Eu tenho dificuldade em acreditar que mais núcleos ajudarão aqui .. Parece que a execução serializada pode ser mais eficiente que os threads simultâneos.

tx para entrada!

    
por user2148543 17.07.2013 / 04:57

0 respostas