[FUG-BR] netstat: kvm_read: Bad address

2010-08-17 Por tôpico jorhardware
 Pessoal atualizei meu kernnel via cvsup copilei e instalei o
tradicionalmente.

quando boot a maquina noite que as rotas náo funcionava e deu o erro abaixo?


residencial ~]# netstat -rn
Routing tables
netstat: kvm_read: Bad address

Internet:
DestinationGatewayFlagsRefs  Use  Netif Expire

Protocol Family 3:
DestinationGatewayFlagsNetif Expire
netstat: kvm_read: Bad address
netstat: kvm_read: Bad address
netstat: kvm_read: Bad address

Protocol Family 8:
DestinationGatewayFlagsNetif Expire
netstat: kvm_read: Bad address

Protocol Family 14:
DestinationGatewayFlagsNetif Expire

Protocol Family 15:
DestinationGatewayFlagsNetif Expire

Protocol Family 17:
DestinationGatewayFlagsNetif Expire

Protocol Family 25:
DestinationGatewayFlagsNetif Expire

Protocol Family 26:
DestinationGatewayFlagsNetif Expire
netstat: kvm_read: Bad address

Protocol Family 27:
DestinationGatewayFlagsNetif Expire

Protocol Family 29:
DestinationGatewayFlagsNetif Expire
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] netstat: kvm_read: Bad address

2010-08-17 Por tôpico Anderson Eduardo
Em 17/8/2010 09:12, jorhardware escreveu:
   Pessoal atualizei meu kernnel via cvsup copilei e instalei o
 tradicionalmente.

 quando boot a maquina noite que as rotas náo funcionava e deu o erro abaixo?


 residencial ~]# netstat -rn
 Routing tables
 netstat: kvm_read: Bad address

 Internet:
 DestinationGatewayFlagsRefs  Use  Netif Expire

 Protocol Family 3:
 DestinationGatewayFlagsNetif Expire
 netstat: kvm_read: Bad address
 netstat: kvm_read: Bad address
 netstat: kvm_read: Bad address

 Protocol Family 8:
 DestinationGatewayFlagsNetif Expire
 netstat: kvm_read: Bad address

 Protocol Family 14:
 DestinationGatewayFlagsNetif Expire

 Protocol Family 15:
 DestinationGatewayFlagsNetif Expire

 Protocol Family 17:
 DestinationGatewayFlagsNetif Expire

 Protocol Family 25:
 DestinationGatewayFlagsNetif Expire

 Protocol Family 26:
 DestinationGatewayFlagsNetif Expire
 netstat: kvm_read: Bad address

 Protocol Family 27:
 DestinationGatewayFlagsNetif Expire

 Protocol Family 29:
 DestinationGatewayFlagsNetif Expire

Verifica permissão de leitura do /dev/kmem/mem.

Faz um ktrace netstat -rn e depois kdump e tenta ver onde esta o erro, 
em qual syscall esta acontecendo o erro.
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


[FUG-BR] Script perl consome muito CPU

2010-08-17 Por tôpico Fernando Buzon Macedo
Ola pessoal, não sei se alguém já utilizou isso, mas eu vi no contrib do
dansguardian um script Perl que funciona com FIFO, a cada modificação no
arquivo ele faz um insert no banco, o script é esse ai em baixo.

 

Tenho uma aplicação em php pra gerenciar o dansguardian e esse script foi
fundamental na parte de debugar os acessos/permissões. Está rodando, o
servidor não está lento, mas...

 

Eu monitoro com o cacti, no CPU-usage, bate 150, processamento como “user”
agora estou executando ele com o comando “nice”, ele baixou o processamento
do “user” mas agora apareceu o “nice”, mas o total não abaixa.

Pelo que li o “nice” é pra setar prioridades e não pra limitar o
processamento, sendo assim ele realmente não vai baixar o consumo.

 

Será que teria algo a fazer? Pra limitar esse consumo? Ou eu que não devo me
preocupar com isso já que agora com o “Nice” ele tem prioridade baixa sobre
os demais processos?

 

Apesar que tem acesso pra caramba, pra vcs terem uma idéia, eu rotaciono o
log diariamente e o arquivo diário, sem compactar dá em média 90MB.

 

Obrigado a todos.

Fernando - “O Punk nunca morre!”

 

sqllogfifo.pl===
=

#!/usr/local/bin/perl -w

 

use IO::File;

use DBI;

use strict;

 

my $server=192.168.x.x;

my $port=3306;

my $user=filter;

my $pass=x;

my $db=filter;

my $table=log;

 

my
$dbh=DBI-connect(DBI:mysql:database=$db;host=$server;port=$port,$user,$pa
ss) or die Can't connect to db: , DBI-errstr;

my $sth=$dbh-prepare(INSERT INTO
$table(datetime,ident,ip,url,what,how,size,why,type,filter)VALUES(?,?,?,?,?,
?,?,?,?,?));

open(FIFO,  /var/log/dansguardian/access.log) or die Can't open log
FIFO: $!\n;

LOG: while (1) {

my $message = FIFO;

next LOG unless defined $message;

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);

}

fim=
=

-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] OFFTOPIC - NAS ou iSCSI no Freebsd para file server

2010-08-17 Por tôpico Matheus Weber da Conceição
In short, the Oracle executives said that the open source,
community-driven OpenSolaris project as conceived and built by Sun
Microsystems five years ago is dead. Get over it.



-- 

Matheus Weber da Conceição
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Script perl consome muito CPU

2010-08-17 Por tôpico Rafael Henrique Faria
2010/8/17 Fernando Buzon Macedo ferna...@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


Re: [FUG-BR] Problema com vLan

2010-08-17 Por tôpico Joel Cappellesso
Normalmente a vlan fica desta forma:

vlan532: flags=8843UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST metric 0 mtu 1500
options=2TXCSUM
ether 00:1e:c9:b3:41:46
inet 187.x.x.x netmask 0xfffc broadcast 187.x.x.x
media: Ethernet autoselect (1000baseT full-duplex)
status: active
vlan: 532 parent interface: bce0


Note que no final aparece vlan:532,
no seu caso aparece no final vlan 990

 vlan0: flags=8843UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST mtu 1500
 inet6 fe80::240:a7ff:fe11:8bd2%vlan0 prefixlen 64 scopeid 0x9
  inet 172.30.0.59 netmask 0x broadcast 172.30.255.255
 ether 00:40:a7:11:8b:d2
  media: autoselect (1000baseT full-duplex) status: active
 supported media: autoselect
-  vlan: 990 parent interface: en0

Me parece algo errado aí.

rc.conf seria desta forma:
cloned_interfaces=vlan10 vlan11
ifconfig_vlan10=inet x.x.x.12 netmask 255.255.255.0 vlan 10 vlandev bce0

Att.
Joel


Em 16 de agosto de 2010 18:13, Rafael Henrique Faria
rafaelhfa...@cenadigital.com.br escreveu:
 Boa noite.

 Alguém já viu um comportamento assim em vLan:

 Meu netstat -r:
 172.30             link#9             UCS         6        0  vlan0
 172.30.0.1         0.1f.29.58.ee.b2   UHLW        0       17  vlan0   1128
 172.30.0.3         0.22.15.26.fb.a    UHLW        0        4  vlan0   1128
 172.30.0.4         0.22.15.15.7.d7    UHLW        0        0  vlan0   1128
 172.30.0.59        localhost              UHS         0        2    lo0
 172.30.0.100       0.22.57.28.da.1    UHLW        0       13  vlan0   1132
 172.30.0.101       0.24.73.13.2d.1    UHLW        0        1  vlan0   1134
 172.30.255.255     link#9             UHLWb       2       47  vlan0

 Note, que os MAC aparecem com . no lugar dos :. Todas as outras rotas,
 para as outras interfaces, aparecem com o MAC normal.

 O meu sistema, não consegue se identificar (tcpdump -i vlan0):

 17:55:47.671674 arp who-has 172.30.0.59 (Broadcast) tell 172.30.0.1
 17:55:47.671684 arp reply 172.30.0.59 is-at 00:40:a7:11:8b:d2 (oui Unknown)
 17:55:48.664509 arp who-has 172.30.0.59 (Broadcast) tell 172.30.0.1
 17:55:48.664524 arp reply 172.30.0.59 is-at 00:40:a7:11:8b:d2 (oui Unknown)
 17:55:49.663208 arp who-has 172.30.0.59 (Broadcast) tell 172.30.0.1
 17:55:49.663222 arp reply 172.30.0.59 is-at 00:40:a7:11:8b:d2 (oui Unknown)
 17:55:50.663651 arp who-has 172.30.0.59 (Broadcast) tell 172.30.0.1
 17:55:50.663665 arp reply 172.30.0.59 is-at 00:40:a7:11:8b:d2 (oui Unknown)
 17:55:51.663327 arp who-has 172.30.0.59 (Broadcast) tell 172.30.0.1
 17:55:51.663341 arp reply 172.30.0.59 is-at 00:40:a7:11:8b:d2 (oui Unknown)

 Resumindo, eu não consigo pingar ninguém. Mas todos os outros IPs desta
 vLan, conseguem se enxergar normalmente.

 Meu ifconfig:

 vlan0: flags=8843UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST mtu 1500
 inet6 fe80::240:a7ff:fe11:8bd2%vlan0 prefixlen 64 scopeid 0x9
  inet 172.30.0.59 netmask 0x broadcast 172.30.255.255
 ether 00:40:a7:11:8b:d2
  media: autoselect (1000baseT full-duplex) status: active
 supported media: autoselect
  vlan: 990 parent interface: en0

 O IP 172.30.0.101, é um switch 3com 4500, onde o meu micro está conectado,
 este switch consegue pingar todos os outros IPs, com exceção do IP
 172.30.0.59 (que é o meu IP).

 A configuração do switch está assim:

 #
 interface GigabitEthernet1/0/2
  port link-type hybrid
  port hybrid vlan 990 tagged
  port hybrid vlan 1 untagged
  broadcast-suppression pps 3000
  undo jumboframe enable
  poe enable
  stp edged-port enable
 #

 Resumindo, meu switch enxerga todo mundo. Mas não me enxerga, e nem eu
 enxergo ele.
 Porém, dando um tcpdump na minha interface vlan, eu consigo ver todo o
 trafego da vlan, e a minha maquina encontra os MAC das outras maquinas desta
 mesma vlan.
 Parece ser um problema de conversa entre a minha maquina, e o restante da
 rede.

 Alias, eu estou usando um Mac OS X Server Leopard 10.5.7.
 Se alguém tiver uma luz, eu agradeço.

 Abraço

 --
 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


[FUG-BR] RES: Script perl consome muito CPU

2010-08-17 Por tôpico Fernando Buzon Macedo
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-boun...@fug.com.br [mailto:freebsd-boun...@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 ferna...@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


[FUG-BR] RES: RES: Script perl consome muito CPU

2010-08-17 Por tôpico Fernando Buzon Macedo
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-boun...@fug.com.br [mailto:freebsd-boun...@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-boun...@fug.com.br [mailto:freebsd-boun...@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 ferna...@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

-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


[FUG-BR] RES: RES: RES: Script perl consome muito CPU

2010-08-17 Por tôpico Fernando Buzon Macedo
Só mais uma informação.
Olhando no top, ele começa usando pouco (5%), devagar que ele vai subindo,
até chegar no 100%, ele pega um dos CPU's e chega até o 100%.

-Mensagem original-
De: freebsd-boun...@fug.com.br [mailto:freebsd-boun...@fug.com.br] Em nome
de Fernando Buzon Macedo
Enviada em: terça-feira, 17 de agosto de 2010 11:03
Para: 'Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)'
Assunto: [FUG-BR] RES: RES: Script perl consome muito CPU

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-boun...@fug.com.br [mailto:freebsd-boun...@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-boun...@fug.com.br [mailto:freebsd-boun...@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 ferna...@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

-
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


Re: [FUG-BR] RES: Script perl consome muito CPU

2010-08-17 Por tôpico Rafael Henrique Faria
2010/8/17 Fernando Buzon Macedo ferna...@bebedouro.sp.gov.br

 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
 }


Você colocou o sleep depois do retorno do loop. O comando que faz o look é o
next LOG.

Eu tentaria algo do tipo:

LOG: sleep 1; while (1) {
   my $message = FIFO;
   next LOG unless defined $message;

 Seria isso né?
 Valeu, se conseguir algo posto aqui.

 -Mensagem original-
 De: freebsd-boun...@fug.com.br [mailto:freebsd-boun...@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 ferna...@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




-- 
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


Re: [FUG-BR] RES: Script perl consome muito CPU

2010-08-17 Por tôpico Zhu Sha Zang
 Em 17-08-2010 11:21, Rafael Henrique Faria escreveu:
 2010/8/17 Fernando Buzon Macedo ferna...@bebedouro.sp.gov.br

 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
 }


 Você colocou o sleep depois do retorno do loop. O comando que faz o look é o
 next LOG.

 Eu tentaria algo do tipo:

 LOG: sleep 1; while (1) {
my $message = FIFO;
next LOG unless defined $message;

  Seria isso né?
 Valeu, se conseguir algo posto aqui.

 -Mensagem original-
 De: freebsd-boun...@fug.com.br [mailto:freebsd-boun...@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 ferna...@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



Sugiro pesquisar por técnicas de pooling em perl. Esse while (1) é
absurdo.

Att



signature.asc
Description: OpenPGP digital signature
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


[FUG-BR] Fwd: [e2e] Software for FreeBSD TCP RD (resend of mail dated 2010-08-03)

2010-08-17 Por tôpico Alex Moura
-- Forwarded message --
From: Lawrence Stewart
Date: 2010/8/16
Subject: [e2e] Software for FreeBSD TCP RD (resend of mail dated
2010-08-03)
To: end2end-inter...@postel.org

Hi all,

(apologies for any duplicates you have received)

We're pleased to announce the release of a substantial set of new
and updated BSD licenced software for TCP experimentation and research
using FreeBSD:

 - CAIA-Hamilton Delay Congestion Control Algorithm v0.1 (new)
 - Hamilton Delay Congestion Control Algorithm v0.2 (update)
 - Vegas Congestion Control Algorithm v0.2 (update)
 - H-TCP Congestion Control Algorithm v0.12 (update)
 - CUBIC Congestion Control Algorithm v0.10 (update)
 - Statistical Information For TCP Research (SIFTR) v1.2.3 (update)
 - Enhanced Round Trip Time (ERTT) Khelp Module v0.2 (update)
 - Khelp Framework for FreeBSD v0.1.1 (update)
 - Modular TCP Congestion Control for FreeBSD v0.10.0 (update)

A more detailed summary of the various tools/patches is included at the
end of this email.

Everything mentioned above along with other papers, patches and software
relevant/useful for protocol analysis, debugging and experimental
research is available from:

http://caia.swin.edu.au/urp/newtcp/tools.html

The software was developed as part of the NewTCP research
project at Swinburne University's Centre for Advanced Internet
Architectures, made possible in part by a grant from the Cisco
University Research Program Fund at Community Foundation Silicon
Valley. Testing and development was further assisted by a grant
from the FreeBSD Foundation.

We welcome any feedback and hope you enjoy playing with the code
and tools.

Cheers,
Lawrence Stewart, David Hayes and Grenville Armitage

http://caia.swin.edu.au





NB: CAIA-Hamilton Delay and Hamilton Delay are our working names for
algorithms which do not have established names in the literature.


CAIA-Hamilton Delay Congestion Control Algorithm v0.1 [1,2]
--
A FreeBSD loadable kernel module that implements an experimental delay
based congestion control algorithm proposed by the Hamilton Institute
[3] but with modifications made by CAIA [4]. It builds on Hamilton's
initial proposal by adding tolerance to non-congestion related losses
and still aims to allow delay- and loss-based algorithms
to fairly coexist.


Hamilton Delay Congestion Control Algorithm v0.2 [5,6]
--
A FreeBSD loadable kernel module that implements an experimental delay
based congestion control algorithm proposed by the Hamilton Institute
[3]. It provides a first step toward the ability of delay based
algorithms to fairly coexist with loss based algorithms.


Vegas Congestion Control Algorithm v0.2 [7,8]
--
A FreeBSD loadable kernel module that implements the Vegas delay-based
congestion control algorithm [9].


H-TCP Congestion Control Algorithm v0.12 [10,11]
--
A FreeBSD loadable kernel module that implements the H-TCP loss based
TCP congestion control algorithm [12].


CUBIC Congestion Control Algorithm v0.10 [13,14]
--
A FreeBSD loadable kernel module that implements the CUBIC loss based
TCP congestion control algorithm [15]. CUBIC is the current default
algorithm used by Linux.


Statistical Information For TCP Research (SIFTR) v1.2.3 [16,17]
--
A FreeBSD 6/7/8/9 kernel module that logs a range of statistics on
active TCP connections to a log file. It provides the ability to make
highly granular measurements of TCP connection state, aimed at system
administrators, developers and researchers. NB: SIFTR has been imported
into FreeBSD's head svn branch (a.k.a. 9-CURRENT) as revision 209662
and will be backported to 8-STABLE in time for 8.2-RELEASE.


Enhanced Round Trip Time (ERTT) Khelp Module v0.2 [18,19]
--
A FreeBSD loadable kernel module that provides enhanced RTT
measurements for use by delay and rate based TCP congestion control
algorithms. Robust estimates of RTT are provided even when the receiver
uses delayed acknowledgements, TCP segmentation offload (TSO) or
Selective Acknowledgements (SACK). This module is required by the delay
based congestion control algorithms.


Khelp Framework for FreeBSD v0.1.1 [20,21]
--
A FreeBSD kernel patch that provides support for generic kernel modules
known as helpers to hook into arbitrary points within the kernel and
provide service(s) to the running system. This forms the foundation for
the ERTT Khelp module.


Modular TCP Congestion Control for FreeBSD v0.10.0 [22,23]

Re: [FUG-BR] OFFTOPIC - NAS ou iSCSI no Freebsd para file server

2010-08-17 Por tôpico William David Armstrong - FUGBr
Mas o solaris 10/9 não tem suporte a muitas coisas que existem no open solaris 
svn134. ( raidz3. Zfs version 15 é o máximo que ele aceita se vc instalou o 
open solaris svn supeior ao svn 122 e criou um zfs novo o solaris não deve 
reconhecer devido a versão do zfs ) as configurações são extricidamente solaris 
tem que ter conhecimento sobre como configurar o sfw e o rbac  para habilitar 
os serviços 

Estou esperando sair a nova versão do solaris 11 express para verificar se vai 
mudar algo ou vai morrer mesmo
-- 
- = - = - = - = - = - = - = - = - = -
.  Of course it runsWilliam David Armstrong
|==   Bio Systems Security Networking
'  FreeBSD   MSN / GT  biosystems  gmail . com
http://biosystems.ath.cx:8080/  http://biosystems.broker.freenet6.net/
--

Em 16/08/2010, às 19:56, Leo Garcia getz@gmail.com escreveu:

 Faz com o Solaris!
 É free!
 
 Por isto o OpenMorreu ... abriram de vez o Solaris
 
 Em 16 de agosto de 2010 19:33, Leonardo Augusto lalin...@gmail.com escreveu:
 Entao Rafael,
 
 OPEN SOLARIS OFFICIALY IS DEAD
 
 http://www.theregister.co.uk/2010/08/13/opensolaris_is_dead/
 
 Por essas e outras que eu ODEIO a oracle.
 Meu projeto de iScsi morreu entao
 
 Quem será o próximo da lista ?
 
 O fim da SUN é o inicio do apocalipse ehehe
 
 []'s
 
 
 2010/8/11 Rafael Henrique Faria rafaelhfa...@cenadigital.com.br:
 Isso é verdade... e deve ser levado em conta.
 
 O que eu verifiquei, se o OpenSolaris, realmente atendeu ao cenário, sem
 problemas...
 E ele atendeu. Então, eu não preciso esperar uma atualização para atender
 algum recurso que eu precise. Afinal, tal atualização pode nunca surgir.
 
 O meu storage, fica isolado da rede principal, possui uma rede exclusiva, e
 fisicamente separada da rede de internet, então eu não preciso me preocupar
 com invasão, ou seja, com patches de correção.
 
 Afinal, não sabemos o que a Oracle planeja para o OpenSolaris. Pode ser que
 ele continue a ser mantido, mesmo que o Solaris não esteja mais disponivel
 com o código aberto. Mas ao mesmo tempo pode ser que os desenvolvedores do
 OpenSolaris desistam do projeto... o futuro é incerto.
 
 Veja se a solução atual te atende, e se vc precisará de suporte para ele no
 futuro. Leve tudo em conta.
 
 Principalmente, que por enquanto, o OpenSolaris, mesmo com futuro incerto,
 possui o iSCSI superior a qualquer outra solução livre.
 
 A não ser que você esteja disposto a gastar uns 40.000 dolares em uma
 solução de storage comercial. :D
 
 2010/8/11 irado furioso com tudo ir...@bsd.com.br
 
 Em Wed, 11 Aug 2010 15:37:02 -0300
 Rafael Henrique Faria rafaelhfa...@cenadigital.com.br, conhecido
 consumidor/usuário de drogas (Windows e BigMac com Coke) escreveu:
 
 Boa tarde Leonardo.
 
 Se você quiser utilizar o iSCSI em produção, acredito que o mais
 recomendável seja o OpenSolaris.
 
 só é preciso tomar cuidado porque não se sabe bem o que vai acontecer
 com o OpenSolaris - futuro meio nebuloso, ao que parece.
 
 
 http://www.neowin.net/news/solaris-10-no-longer-free-future-of-opensolaris-questioned
 
 --
 saudações,
 irado furioso com tudo
 Linux User 179402/FreeBSD BSD50853/FUG-BR 154
 Não uso drogas - 100% Miko$hit-free
 quando si muere la carne la alma busca su sitio - Inti Illimani
 -
 Histórico: http://www.fug.com.br/historico/html/freebsd/
 Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
 
 
 
 
 --
 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
 
 -
 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


[FUG-BR] RES: RES: Script perl consome muito CPU

2010-08-17 Por tôpico Fernando Buzon Macedo
Como disse, peguei esse script já pronto no site do dansguardian.
De programação eu conheço muito pouco.

Zhu Sha Zang, sem querer ser folgado, mas você não teria uma opção simples
pra ficar no lugar de while (1) aí?

De qualquer forma obrigado, vou pesquisar sobre pooling Perl.
Valeu.


-Mensagem original-
De: freebsd-boun...@fug.com.br [mailto:freebsd-boun...@fug.com.br] Em nome
de Zhu Sha Zang
Enviada em: terça-feira, 17 de agosto de 2010 11:28
Para: freebsd@fug.com.br
Assunto: Re: [FUG-BR] RES: Script perl consome muito CPU

 Em 17-08-2010 11:21, Rafael Henrique Faria escreveu:
 2010/8/17 Fernando Buzon Macedo ferna...@bebedouro.sp.gov.br

 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
 }


 Você colocou o sleep depois do retorno do loop. O comando que faz o 
 look é o next LOG.

 Eu tentaria algo do tipo:

 LOG: sleep 1; while (1) {
my $message = FIFO;
next LOG unless defined $message;

  Seria isso né?
 Valeu, se conseguir algo posto aqui.

 -Mensagem original-
 De: freebsd-boun...@fug.com.br [mailto:freebsd-boun...@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 ferna...@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



Sugiro pesquisar por técnicas de pooling em perl. Esse while (1) é
absurdo.

Att


-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Fwd: [e2e] Software for FreeBSD TCP RD (resend of mail dated 2010-08-03)

2010-08-17 Por tôpico Welkson Renny de Medeiros
Alex Moura escreveu:
 -- Forwarded message --
 From: Lawrence Stewart
 Date: 2010/8/16
 Subject: [e2e] Software for FreeBSD TCP RD (resend of mail dated
 2010-08-03)
 To: end2end-inter...@postel.org

 Hi all,

 (apologies for any duplicates you have received)

 We're pleased to announce the release of a substantial set of new
 and updated BSD licenced software for TCP experimentation and research
 using FreeBSD:

  - CAIA-Hamilton Delay Congestion Control Algorithm v0.1 (new)
  - Hamilton Delay Congestion Control Algorithm v0.2 (update)
  - Vegas Congestion Control Algorithm v0.2 (update)
  - H-TCP Congestion Control Algorithm v0.12 (update)
  - CUBIC Congestion Control Algorithm v0.10 (update)
  - Statistical Information For TCP Research (SIFTR) v1.2.3 (update)
  - Enhanced Round Trip Time (ERTT) Khelp Module v0.2 (update)
  - Khelp Framework for FreeBSD v0.1.1 (update)
  - Modular TCP Congestion Control for FreeBSD v0.10.0 (update)

   

Muito bom!

Sem falar que no final tem um patch para o IPerf funcionar no freebsd...

-- 
Welkson Renny de Medeiros
Desenvolvimento / Gerência de Redes
Focus Automação Comercial
FreeBSD Community Member
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Fwd: [e2e] Software for FreeBSD TCP RD (resend of mail dated 2010-08-03)

2010-08-17 Por tôpico Welkson Renny de Medeiros
Welkson Renny de Medeiros escreveu:
 Alex Moura escreveu:
   
 -- Forwarded message --
 From: Lawrence Stewart
 Date: 2010/8/16
 Subject: [e2e] Software for FreeBSD TCP RD (resend of mail dated
 2010-08-03)
 To: end2end-inter...@postel.org

 Hi all,

 (apologies for any duplicates you have received)

 We're pleased to announce the release of a substantial set of new
 and updated BSD licenced software for TCP experimentation and research
 using FreeBSD:

  - CAIA-Hamilton Delay Congestion Control Algorithm v0.1 (new)
  - Hamilton Delay Congestion Control Algorithm v0.2 (update)
  - Vegas Congestion Control Algorithm v0.2 (update)
  - H-TCP Congestion Control Algorithm v0.12 (update)
  - CUBIC Congestion Control Algorithm v0.10 (update)
  - Statistical Information For TCP Research (SIFTR) v1.2.3 (update)
  - Enhanced Round Trip Time (ERTT) Khelp Module v0.2 (update)
  - Khelp Framework for FreeBSD v0.1.1 (update)
  - Modular TCP Congestion Control for FreeBSD v0.10.0 (update)

   
 

 Muito bom!

 Sem falar que no final tem um patch para o IPerf funcionar no freebsd...

   

X fiz confusão... iperf já faz parte do ports... confundi com um 
sistema de monitoração de banda que só funciona no Linux (esqueci o nome).

-- 
Welkson Renny de Medeiros
Desenvolvimento / Gerência de Redes
Focus Automação Comercial
FreeBSD Community Member
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] RES: RES: Script perl consome muito CPU

2010-08-17 Por tôpico Leonardo Augusto
Mas qual o proposito desse script ?

Pegar o que vai sendo gravado no var/log/dansguardian/access.log e
inserir no mysql ??

Se for isso, o problema é que vc fica num loop e lendo o arquivo

Pq nao faz o seguinte, usa o crontab, pra executar esse script a cada
minuto, aí o script
le o log, registra o numero de bytes lidos para dar um fseek na
proxima leitura... e grava no mysql..
Vai entrar, ler, gravar e sair...

Qualquer coisa que vc faca que fique num loop lendo um arquivo do
filesystem vai ficar com alto nivel de consumo
de cpu, pois nao tem um evento do SO onfilechange eheh pra chamar
teu perl. Se voce quer um processo que faca isso
acho que tens que usar threads ou de C ou java para que nao consuma
tanta cpu, um processo com while + sleep consome.

Acho que é isso

2010/8/17 Fernando Buzon Macedo ferna...@bebedouro.sp.gov.br:
 Como disse, peguei esse script já pronto no site do dansguardian.
 De programação eu conheço muito pouco.

 Zhu Sha Zang, sem querer ser folgado, mas você não teria uma opção simples
 pra ficar no lugar de while (1) aí?

 De qualquer forma obrigado, vou pesquisar sobre pooling Perl.
 Valeu.


 -Mensagem original-
 De: freebsd-boun...@fug.com.br [mailto:freebsd-boun...@fug.com.br] Em nome
 de Zhu Sha Zang
 Enviada em: terça-feira, 17 de agosto de 2010 11:28
 Para: freebsd@fug.com.br
 Assunto: Re: [FUG-BR] RES: Script perl consome muito CPU

  Em 17-08-2010 11:21, Rafael Henrique Faria escreveu:
 2010/8/17 Fernando Buzon Macedo ferna...@bebedouro.sp.gov.br

 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
 }


 Você colocou o sleep depois do retorno do loop. O comando que faz o
 look é o next LOG.

 Eu tentaria algo do tipo:

 LOG: sleep 1; while (1) {
                my $message = FIFO;
                next LOG unless defined $message;

  Seria isso né?
 Valeu, se conseguir algo posto aqui.

 -Mensagem original-
 De: freebsd-boun...@fug.com.br [mailto:freebsd-boun...@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 ferna...@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



 Sugiro pesquisar por técnicas de pooling em perl. Esse while (1) é
 absurdo.

 Att


 -
 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


[FUG-BR] RES: RES: RES: Script perl consome muito CPU

2010-08-17 Por tôpico Fernando Buzon Macedo
Leonardo, muito obrigado pelas informações.
Eu pensei que essa parada de FIFO do Perl fizesse o papel desse evento
onfilechange, afinal file input file output, mas então não é o caso
então... rs

Já tinha pensado em fazer eu mesmo, minha dúvida tinha sido sobre essa do
fseek na próxima leitura, como você sugeriu registrar o numero de bytes da
leitura anterior, está certo mesmo...

Foi apenas uma ilusão pelo nome FIFO que me confundiu.
Pensei ter descoberto o onfilechange, por isso nem pensei em outra opção.

Vou rever meus conceitos.
Muito obrigado a todos da lista, aqui você encontra mesmo! Hehehe

abs

-Mensagem original-
De: freebsd-boun...@fug.com.br [mailto:freebsd-boun...@fug.com.br] Em nome
de Leonardo Augusto
Enviada em: terça-feira, 17 de agosto de 2010 13:31
Para: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)
Assunto: Re: [FUG-BR] RES: RES: Script perl consome muito CPU

Mas qual o proposito desse script ?

Pegar o que vai sendo gravado no var/log/dansguardian/access.log e
inserir no mysql ??

Se for isso, o problema é que vc fica num loop e lendo o arquivo

Pq nao faz o seguinte, usa o crontab, pra executar esse script a cada
minuto, aí o script
le o log, registra o numero de bytes lidos para dar um fseek na
proxima leitura... e grava no mysql..
Vai entrar, ler, gravar e sair...

Qualquer coisa que vc faca que fique num loop lendo um arquivo do
filesystem vai ficar com alto nivel de consumo
de cpu, pois nao tem um evento do SO onfilechange eheh pra chamar
teu perl. Se voce quer um processo que faca isso
acho que tens que usar threads ou de C ou java para que nao consuma
tanta cpu, um processo com while + sleep consome.

Acho que é isso

2010/8/17 Fernando Buzon Macedo ferna...@bebedouro.sp.gov.br:
 Como disse, peguei esse script já pronto no site do dansguardian.
 De programação eu conheço muito pouco.

 Zhu Sha Zang, sem querer ser folgado, mas você não teria uma opção simples
 pra ficar no lugar de while (1) aí?

 De qualquer forma obrigado, vou pesquisar sobre pooling Perl.
 Valeu.


 -Mensagem original-
 De: freebsd-boun...@fug.com.br [mailto:freebsd-boun...@fug.com.br] Em nome
 de Zhu Sha Zang
 Enviada em: terça-feira, 17 de agosto de 2010 11:28
 Para: freebsd@fug.com.br
 Assunto: Re: [FUG-BR] RES: Script perl consome muito CPU

  Em 17-08-2010 11:21, Rafael Henrique Faria escreveu:
 2010/8/17 Fernando Buzon Macedo ferna...@bebedouro.sp.gov.br

 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
 }


 Você colocou o sleep depois do retorno do loop. O comando que faz o
 look é o next LOG.

 Eu tentaria algo do tipo:

 LOG: sleep 1; while (1) {
                my $message = FIFO;
                next LOG unless defined $message;

  Seria isso né?
 Valeu, se conseguir algo posto aqui.

 -Mensagem original-
 De: freebsd-boun...@fug.com.br [mailto:freebsd-boun...@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 ferna...@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



 Sugiro pesquisar por técnicas de pooling em perl. Esse while (1) é
 absurdo.

 Att


 -
 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

-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] RES: RES: RES: Script perl consome muito CPU

2010-08-17 Por tôpico Fabio Kaminski
Zhu Sha Zang escreveu :
Sugiro pesquisar por técnicas de pooling em perl. Esse while (1) é
absurdo.

exatamente.. tem que usar algum pooling pra IO(de preferencia assincrona) e
uma logica de eventos no estilo publisher/subscriber

no freebsd nativamente existe o kqueue.. e no linux o epool.. tem que ver
qual o nivel de acesso do perl a isso ai
infelizmente(ou felizmente) estou afastado do perl desde 97 por ai.. entao
tem que dar uma pesquisada.

dependendo do seu servidor web..quem sabe não exista um suport nativo , pra
escrever em outras fontes?!

se vc tiver escolha de linguagem, e querendo fazer isso em script, sugeriria
python ou até mesmo erlang(outra embutida no servidor .. a php), que são
menos cripticas e onde vc teria mais suporte.. enfim.. acho que solução
pronta pra isso..vai ser meio dificil.. sempre tem que customizar..dai a
utilidade de usar uma linguagem de script pra isso

2010/8/17 Fernando Buzon Macedo ferna...@bebedouro.sp.gov.br

 Leonardo, muito obrigado pelas informações.
 Eu pensei que essa parada de FIFO do Perl fizesse o papel desse evento
 onfilechange, afinal file input file output, mas então não é o caso
 então... rs

 Já tinha pensado em fazer eu mesmo, minha dúvida tinha sido sobre essa do
 fseek na próxima leitura, como você sugeriu registrar o numero de bytes da
 leitura anterior, está certo mesmo...

 Foi apenas uma ilusão pelo nome FIFO que me confundiu.
 Pensei ter descoberto o onfilechange, por isso nem pensei em outra opção.

 Vou rever meus conceitos.
 Muito obrigado a todos da lista, aqui você encontra mesmo! Hehehe

 abs

 -Mensagem original-
 De: freebsd-boun...@fug.com.br [mailto:freebsd-boun...@fug.com.br] Em nome
 de Leonardo Augusto
 Enviada em: terça-feira, 17 de agosto de 2010 13:31
 Para: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)
 Assunto: Re: [FUG-BR] RES: RES: Script perl consome muito CPU

 Mas qual o proposito desse script ?

 Pegar o que vai sendo gravado no var/log/dansguardian/access.log e
 inserir no mysql ??

 Se for isso, o problema é que vc fica num loop e lendo o arquivo

 Pq nao faz o seguinte, usa o crontab, pra executar esse script a cada
 minuto, aí o script
 le o log, registra o numero de bytes lidos para dar um fseek na
 proxima leitura... e grava no mysql..
 Vai entrar, ler, gravar e sair...

 Qualquer coisa que vc faca que fique num loop lendo um arquivo do
 filesystem vai ficar com alto nivel de consumo
 de cpu, pois nao tem um evento do SO onfilechange eheh pra chamar
 teu perl. Se voce quer um processo que faca isso
 acho que tens que usar threads ou de C ou java para que nao consuma
 tanta cpu, um processo com while + sleep consome.

 Acho que é isso

 2010/8/17 Fernando Buzon Macedo ferna...@bebedouro.sp.gov.br:
  Como disse, peguei esse script já pronto no site do dansguardian.
  De programação eu conheço muito pouco.
 
  Zhu Sha Zang, sem querer ser folgado, mas você não teria uma opção
 simples
  pra ficar no lugar de while (1) aí?
 
  De qualquer forma obrigado, vou pesquisar sobre pooling Perl.
  Valeu.
 
 
  -Mensagem original-
  De: freebsd-boun...@fug.com.br [mailto:freebsd-boun...@fug.com.br] Em
 nome
  de Zhu Sha Zang
  Enviada em: terça-feira, 17 de agosto de 2010 11:28
  Para: freebsd@fug.com.br
  Assunto: Re: [FUG-BR] RES: Script perl consome muito CPU
 
   Em 17-08-2010 11:21, Rafael Henrique Faria escreveu:
  2010/8/17 Fernando Buzon Macedo ferna...@bebedouro.sp.gov.br
 
  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
  }
 
 
  Você colocou o sleep depois do retorno do loop. O comando que faz o
  look é o next LOG.
 
  Eu tentaria algo do tipo:
 
  LOG: sleep 1; while (1) {
 my $message = FIFO;
 next LOG unless defined $message;
 
   Seria isso né?
  Valeu, se conseguir algo posto aqui.
 
  -Mensagem original-
  De: freebsd-boun...@fug.com.br [mailto:freebsd-boun...@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 ferna...@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.