|
From: | Julio C. Neves |
Subject: | Re: [shell-script] performance |
Date: | Fri, 25 Apr 2014 10:20:40 -0300 |
Data written to /dev/null doesn't go anywhere. Since it isn't written to any file, there is no file size to have any impact on.
If a program writes to /dev/null, the system call takes place. But the system call returns almost immediately without writing the data anywhere. So there is I/O from the application's point of view, but not from the hardware's point of view.
Nobody but you can know whether the tiny cost of writing to /dev/null is too much. If you're concerned, benchmark.
Achei na net esses dias
Em 24/04/2014 17:59, "Adauto Santos" <address@hidden> escreveu:Caros,
fiz tudo o que foi sugerido, e não mudou o cenário com relação ao tempo.
Uma tentativa que fiz na surdina foi comentar a linha "$@ 2> /dev/null" da função Comando, e o tempo de execução caiu vertiginosamente.
Sabem me dizer se quando "jogo" uma informação para o /dev/null, de alguma forma é acessado o disco ?
Se for isso, matamos o problema!
ARQUIVO_LOG="fire.log"
PROC="Forward-Lan"
Comando()
{
#$@ 2> /dev/null
if [ $? != 0 ]
then
echo $PROC ` date "+%d/%m/%Y %H:%M:%S"` $@ >> $ARQUIVO_LOG
RET_COMANDO="ERRO:Comando(s) Invádo(s). Verifique o Log";
fi
}
#Comando="/bin/echo"
RET_COMANDO="OK";
for I in `seq 1 255`
do
Comando iptables -A FORWARD -s 100.100.100.$I -j ACCEPT
Comando iptables -D FORWARD -s 100.100.100.$I -j ACCEPT
done
Adauto SantosEm Quinta-feira, 24 de Abril de 2014 16:39, Julio C. Neves <address@hidden> escreveu:
Ou usando o builtin coproc que foi implementado no bash 4.0Em 24 de abril de 2014 15:39, Leslie Watter <address@hidden> escreveu:
Oi Adauto,Tem mais uma alternativa, rodar os comandos em paralelo com o parallelseq 1 255 | parallel -j 255 iptables -A FORWARD -s 100.100.100.{} -j ACCEPTisso deve ser mais rápido que rodar comando a comando, uma vez que ele roda em paralelo com 255 jobs[]sLEslie2014-04-24 15:15 GMT-03:00 Ernander (Nander) <address@hidden>:
Sei que não é o Foco, mas ja pensou Em Buscar essas Regras de um banco de DADOS?Em 24 de abril de 2014 15:12, Adauto Santos <address@hidden> escreveu:Olá Leslie,
na realidade não é esse o caso. Tenho um script desses em produção pelo qual tem mais de 8.000 linhas de regra de firewall e como o negócio está cada vez maior, todo o restart de chain que faço, principalmente o forward, demora muito.
Fiz esse trecho de script bem simplificado apenas para enviar pro grupo.
Grato pela sugestão
Abraços!
Adauto
Em Quinta-feira, 24 de Abril de 2014 9:49, Leslie Watter <address@hidden> escreveu:
Oi,On Wed, Apr 23, 2014 at 5:03 PM, Adauto Santos <address@hidden> wrote:
Caros, tenho o script abaixo:ARQUIVO_LOG="fire.log"
PROC="Forward-Lan"
Comando()
{
$@ 2> /dev/null
if [ $? != 0 ]
then
echo $PROC ` date "+%d/%m/%Y %H:%M:%S"` $@ >> $ARQUIVO_LOG
RET_COMANDO="ERRO:Comando(s) Invádo(s). Verifique o Log";
fi
}
Comando="/bin/echo"
RET_COMANDO="OK";
for I in `seq 1 255`
do
$Comando iptables -A FORWARD -s 100.100.100.$I -j ACCEPT
$Comando iptables -D FORWARD -s 100.100.100.$I -j ACCEPT
doneE quando o executo dessa forma, ecoando na tela, tenho esse resultado:# time ./teste.shreal 0m0.546s
user 0m0.096s
sys 0m0.407s
Se mudo o trecho do for para essa forma:#Comando="/bin/echo"
RET_COMANDO="OK";
for I in `seq 1 255`
do
Comando iptables -A FORWARD -s 100.100.100.$I -j ACCEPT
Comando iptables -D FORWARD -s 100.100.100.$I -j ACCEPT
doneObtenho esse resultado:# time ./teste.sh
real 0m2.513s
user 0m0.307s
sys 0m2.056sPergunto, é possível deixá-lo mais performático?Porque vc não muda o comando do iptables pra fazer de uma vez tudo o que vc precisa?troque o for com os comandos do iptablesfor ...Comando iptables -A FORWARD -s 100.100.100.$I -j ACCEPT....donePoriptables -A FORWARD -s 100.100.100.0/24 -j ACCEPTiptables -D FORWARD -s 100.100.100.0/24 -j ACCEPTVeja a notação CIDR no comando :-)[]sLEslie--
Leslie H. Watter
[Prev in Thread] Current Thread [Next in Thread]
- Re: [shell-script] performance, (continued)
- Re: [shell-script] performance, Leslie Watter, 2014/04/24
- Re: [shell-script] performance, Adauto Santos, 2014/04/24
- Re: [shell-script] performance, Ernander (Nander), 2014/04/24
- Re: [shell-script] performance, Adauto Santos, 2014/04/24
- Re: [shell-script] performance, Leslie Watter, 2014/04/24
- Re: [shell-script] performance, Julio C. Neves, 2014/04/24
- Re: [shell-script] performance, Adauto Santos, 2014/04/24
- Re: [shell-script] performance, Alfredo Casanova, 2014/04/24
- Re: [shell-script] performance, Alysson Gonçalves de Azevedo, 2014/04/24
- Re: [shell-script] performance, Julio C. Neves, 2014/04/25
- Re: [shell-script] performance, Julio C. Neves <=
- Re: [shell-script] performance, Julio C. Neves, 2014/04/24
- Prev by Date: Re: [shell-script] performance
- Next by Date: Re: [shell-script] performance
- Previous by thread: Re: [shell-script] performance
- Next by thread: Re: [shell-script] performance
- Index(es):