[Anterior: Registro de Dados]
[Conteúdo]
[Próximo: Problemas com FTP]
PF: Desempenho
"Quanta largura de banda o PF pode manipular?"
"Que tipo de computador eu preciso para controlar minha conexão com
a Internet?"
Não existem respostas simples a essas questões. Para algumas aplicações,
um 486/66 com um par de boas placas de rede ISA pode filtrar e fazer
NAT em 5Mbps, mas para outras aplicações uma máquina muito mais rápida,
com placas de rede PCI muito melhores, pode acabar não sendo suficiente.
A real questão não é o número de bits por segundo, mas na verdade o
número de pacotes por segundo e a complexidade de todo o conjunto
de regras.
O desempenho do PF é determinado por uma série de variáveis:
- Número de pacotes por segundo. Quase o mesmo poder de processamento
é necessário para analisar um pacote com 1500 bytes de carga útil
ou um pacote com um byte de carga útil. O número de
pacotes por segundo determina o número de vezes que a tabela de
estados e, caso não seja encontrada uma entrada válida na tabela,
as regras de filtragem devem ser avaliadas a cada segundo,
determinando a demanda efetiva no sistema.
- Desempenho do barramento do sistema. O barramento ISA tem
largura de banda máxima de 8MB/seg, e quando o processador o
acessa, precisa baixar sua velocidade efetiva para um poder
equivalente ao de um 80286 funcionando a 8MHz, não importa o quão
rápido seja esse processador. O barramento PCI possui uma
largura de banda muito maior, causando menor impacto no processador.
- Eficiência de sua placa de rede. Alguns adaptadores de rede
são simplesmente mais eficientes que outros. Placas de rede antigas
baseadas em Realtek 8139
(rl(4))
tendem a ter baixo desempenho (as mais novas,
re(4), já apresentam melhor desempenho), enquanto placas baseadas em Intel
21143
(dc(4))
tendem a responder muito bem. Para desempenho máximo, considere
utilizar placas Ethernet gigabit, mesmo que não esteja conectado
em redes gigabit, já que elas possuem um sistema de buffer muito
mais avançado.
- Complexidade e projeto do seu conjunto de regras.
Quanto mais complexo o conjunto de regras, mais lento ele é.
Quanto mais pacotes forem filtrados por regras keep state
e quick, melhor é o desempenho.
Quanto mais linhas precisarem ser avaliadas para cada pacote,
mais baixo é o desempenho.
- Vale a pena mencionar: CPU e RAM. Como o PF é um processo
baseado no kernel, ele não utiliza o espaço de swap. Portanto, se
tiver RAM suficiente ele funciona, se não, entra em pânico devido à
exaustão de
pool(9). Grandes quantidades de RAM não são necessárias
-- 32MB deve ser suficiente para manter perto de 30.000 estados de
conexão, que são muitos estados para uma aplicação em um pequeno
escritório ou em casa.
Para a maior parte dos usuários, um computador "reciclado" é mais
do que suficiente para um sistema PF -- um sistema de 300MHz
processa rapidamente um grande número de pacotes, pelo menos se
utilizado com boas placas de rede e um conjunto de regras
bem planejado.
O uso de múltiplos processadores ajuda?
O PF utiliza somente um processador, então múltiplos processadores
(ou múltiplos núcleos) NÃO melhoram o desempenho do PF.
NO ENTANTO, em algumas circunstâncias, executar a versão SMP do OpenBSD
(bsd.mp) no lugar do bsd melhora o desempenho
devido às diferenças em como o controle de interrupções é feito.
Em muitos casos, bsd.mp gera um desempenho menor.
SE você está tendo problemas com o desempenho, experimente isso, a
maioria dos usuários não têm nenhuma limitação para se preocupar.
Existe algum teste de desempenho?
As pessoas sempre perguntam por testes de desempenho ("benchmarks")
do PF. O único teste de desempenho que conta é o desempenho do
seu sistema em seu ambiente.
Um teste de desempenho que não reproduz seu ambiente não irá ajudá-lo a
planejar seu sistema de firewall. A melhor forma de se fazer um teste
de desempenho do PF é você mesmo fazê-lo, nas mesmas ou o mais próximo
possível das condições em que o firewall irá trabalhar, sendo executado
no mesmo hardware planejado para o firewall.
O PF é usado em algumas aplicações grandes e de tráfego intenso, e seus
desenvolvedores são usuários avançados do PF. Provavelmente ele será
satisfatório para você também.
[Anterior: Registro de Dados]
[Conteúdo]
[Próximo: Problemas com FTP]
www@openbsd.org
$OpenBSD: perf.html,v 1.10 2013/01/05 15:19:49 ajacoutot Exp $