[FUG-BR] RES: RES: Script perl consome muito CPU
Fernando Buzon Macedo
fernando em bebedouro.sp.gov.br
Terça Agosto 17 11:02:38 BRT 2010
Eu fiz assim:
----------------------------------
next LOG unless defined $message;
if (!$message)
{
sleep(1);
}
else
{
chomp $message;
chop $message;
$message = substr $message,1;
my($dt,$id,$ip,$url,$what,$how,$size,$a,$why,$c,$d,$type,$f,$filter)=split
/","/,$message;
$sth->execute($dt,$id,$ip,$url,$what,$how,$size,$why,$type,$filter);
}
-----------------------------------
O script continua funcionando, só que não mudou nada no processamento não.
Eu imaginava que ele não ficaria em um loop infinito, mas que ele só faria o
insert quando houvesse um file input, esse que seria o chic da coisa, se for
pra ficar em loop infinito não tem graça, ai eu faço em shell! rs
Vou dar uma estudada melhor nesse script, de qualquer forma muito obrigado
pela dica e se vc tiver mais alguma idéia e quiser mandar eu te agradeço.
Valeu.
Fernando
-----Mensagem original-----
De: freebsd-bounces em fug.com.br [mailto:freebsd-bounces em fug.com.br] Em nome
de Fernando Buzon Macedo
Enviada em: terça-feira, 17 de agosto de 2010 10:45
Para: 'Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)'
Assunto: [FUG-BR] RES: Script perl consome muito CPU
Obrigado.
Eu acho que entendi sua idéia, vou ver em Perl e vou fazer, mas seria tipo:
next LOG unless defined $message;
if (!$message)
sleep 1
else
{
//Resto do código
}
Seria isso né?
Valeu, se conseguir algo posto aqui.
-----Mensagem original-----
De: freebsd-bounces em fug.com.br [mailto:freebsd-bounces em fug.com.br] Em nome
de Rafael Henrique Faria
Enviada em: terça-feira, 17 de agosto de 2010 10:27
Para: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)
Assunto: Re: [FUG-BR] Script perl consome muito CPU
2010/8/17 Fernando Buzon Macedo <fernando em bebedouro.sp.gov.br>
>
> LOG: while (1) {
>
>
Bom dia Fernando.
O problema, é esse while (1)
O código do script é realmente compacto, ele não realiza processamento.
Então, ele não deveria, e não poderia consumir CPU.
Porém, como ele está em um loop infinito, ele acaba consumindo CPU.
O que você pode fazer, é melhorar esse script, com outras formas de obter os
dados. Eu não conheço PERL, por isso não posso ajudar muito, mas posso dar
uma sugestão:
next LOG unless defined $message;
Nessa parte do código, em vez de já pular para o loop novamente quando não
existir nenhum dado a ser processado, poderia ser dada uma pausa... de 1
segundo por exemplo. Iria diminuir drasticamente o processamento.
--
Rafael Henrique da Silva Faria
-------------------------
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
-------------------------
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
Mais detalhes sobre a lista de discussão freebsd