[Cascavel-pm] Perl X RAM (memória)

Tom Mostard capmostarda em gmail.com
Quarta Janeiro 19 21:13:05 PST 2011


Olá, pessoal!

Estou tendo um problema de memória com scripts em Perl.
Alguém aí teve algum problema parecido?

Tenho um "pequeno" sistema que precisa executar vários scripts Perl em
paralelo.
Então existe um script Perl "chefe" que fica responsável por executar eles
com parâmetros diferentes usando system().

O sistema acessa vários bancos de dados e a depender do banco, da tabela e
do campo ele executa um módulo específico.
Uso o MySQL em outra máquina para não abusar da memória.

Script-chefe:

while ( my $i < $execucoes ) # são execuções limitadas, mas por enquanto são
60
{
    system( './script.pl $parametro1 > /dev/null & ' );
}

Dentro do script é carregado um módulo usando require assim:

require $ARGV[ 0 ].".pm";

Funciona tudo certo, se rodo 20, funciona tudo normal e eles ocupam 158 MB
de memória.
Se rodo 40, eles ocupam 316 MB de memória além da memória usada pelo
sistema.
Me parece que cada script carregado usa 8 MB em média. (Isso é
possível/normal?)
Quando uso 60, nem todos os scripts são executados.
Existe alguma maneira de executar um script otimizando o uso de memória ou
vou ter que reavaliar o código?
Já revisei o código e eliminei arrays, variáveis de conexões com bancos
desnecessárias.
Existe algo mais que eu possa fazer?

Abraços,

Tom
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/cascavel-pm/attachments/20110120/d079ea78/attachment.html>


Mais detalhes sobre a lista de discussão Cascavel-pm