Como otimizar o script munin fw_conntrack

2

Eu tenho um servidor com cerca de 65k conexões no ip_conntrack. Como posso otimizar o script munin que conta vários tipos de conexões (padrão fw_conntrack script):

cat /proc/net/ip_conntrack | awk '
BEGIN {
    STATE["ESTABLISHED"]=STATE["FIN_WAIT"]=STATE["TIME_WAIT"]=0;
    TOTAL=ASSURED=NOREPLY=STATE["SYN_SENT"]=STATE["UDP"]=0; 
}
/^tcp/ { STATE[$4]++; }
/^udp/ { STATE["UDP"]++; }
/ASSURED/ { ASSURED++; }
{
  TOTAL++;
}
END {
    print "established.value " STATE["ESTABLISHED"];
    print "fin_wait.value " STATE["FIN_WAIT"];
    print "time_wait.value " STATE["TIME_WAIT"];
    print "syn_sent.value " STATE["SYN_SENT"];
    print "udp.value " STATE["UDP"];
    print "assured.value " ASSURED;
    print "total.value " TOTAL;
}'

Atualmente, leva cerca de 30 segundos para ser executado.

    
por Poma 31.03.2012 / 21:41

1 resposta

2

Substitua cat /proc/net/ip_conntrack por conntrack -L . É mais eficiente com grande número de conexões.

Exemplo:

root@utemp:~# time conntrack -L | wc -l
conntrack v0.9.14 (conntrack-tools): 16855 flow entries have been shown.
16855

real    0m0.099s
user    0m0.068s
sys     0m0.036s

root@utemp:~# time cat /proc/net/ip_conntrack | wc -l
16634

real    0m0.270s
user    0m0.008s
sys     0m0.264s
    
por 02.04.2012 / 11:43