[Anterior: Registros de
Bitácora]
[Contenido]
[Siguiente: Cuestiones relacionadas con FTP]
PF: Rendimiento
«¿Cuánto ancho de banda puede gestionar
PF?»
«¿Qué características debe tener mi
máquina para gestionar mi conexión a Internet?»
No existen respuestas concretas para estas preguntas. Para algunas
aplicaciones, un 486/66 con un par de buenas tarjetas de red
ISA de buena calidad pueden filtrar y gestionar NAT a unos 5Mbps, pero
para otras aplicaciones podría no ser suficiente una
máquina mucho más rápida con unas tarjetas de red PCI mucho
más eficientes. La cuestión real no es la cantidad de bits por
segundo, sino la cantidad de paquetes por segundo y la complejidad del
grupo de reglas.
El rendimiento de PF se determina mediante algunas variables:
- El número de paquetes por segundo. La cantidad de
procesamiento necesaria para un paquete con 1500 bytes de carga
útil es casi la misma que para un paquete con un byte de carga
útil. El número de paquetes por segundo determina el
número de veces que hay que evaluar la tabla de estado y, en caso
de no econtrar ahí la concordancia, las reglas de filtrado
tendrán que ser evaluadas cada segundo, lo que a su vez determina
la demanda efectiva en el sistema.
- El rendimiento del bus del sistema. El bus ISA tiene
un ancho de banda máximo de 8MB/s, y cuando está siendo
accedido por el procesador tiene que disminuir hasta la velocidad
efectiva de un 80286 a 8MHz, sin que importe lo rápido que pueda
ser en realidad el procesador. El bus PCI tiene un ancho de
banda efectivo mucho mayor, y el impacto del procesador es menor.
- La eficiencia de la tarjeta de red. Algunos adaptadores de red son
más eficientes que otros. Las viejas tarjetas basadas en Realtek 8139
(rl(4))
tienden a ofrecer un rendimiento relativamente pobre (las más recientes
Realtek basadas en re(4) son mucho mejores), mientras que las
tarjetas basadas en Intel 21143
(dc(4))
tienden a ofrecer un rendimiento bastante bueno. Para obtener un
máximo de rendimiento, hay que considerar el uso de las tarjetas
gigabit Ethernet, aun cuando no se vaya a conectar a redes gigabit, ya
que disponen de una memoria mucho más avanzada.
- La complejidad y el diseño del grupo de reglas. Cuanto
más complejo sea el grupo de reglas, más lento
funcionará. Cuantos más paquetes se filtren con
keep state y quick, mejor será el rendimiento.
Cuantas más líneas deban ser evaluadas por cada paquete,
menor será el rendimiento.
- También hay que mencionar la CPU y la RAM. Como PF es un
proceso basado en el núcleo del sistema, no usa espacio de
memoria de intercambio (swap). Por lo tanto, si tenemos
suficiente RAM funcionará, pero en caso contrario generará
estados de pánico a causa del agotamiento de
pool(9).
No son necesarias enormes cantidades de RAM; 32MB deberían ser
suficientes para unos 30.000 estados, que son muchos estados para una
aplicación en una pequeña oficina o en casa. La
mayoría de usuarios se encontrarán con que una
máquina «reciclada» es más que suficiente para
un sistema de filtros PF; un sistema con 300MHz moverá un gran
número de paquetes con rapidez, siempre que esté
respaldado con unas buenas NIC y un buen grupo de reglas.
¿Ayudará el uso de varios procesadores?
PF sólo utilizará un procesador, por lo que varios procesadores
(o varios núcleos) NO mejorará el rendimiento de PF.
NO OBSTANTE, en algunas circunstancias, la ejecución de la versión SMP
de OpenBSD (bsd.mp) en lugar de bsd ofrecerá
un mejor rendimiento debido a las diferencias en la forma de manejo
de las interrupciones.
En muchos casos, bsd.mp dará peor rendimiento.
SI usted se encuentra con problemas de rendimiento, experimente
con esto, la mayoría de los usuarios
nunca alcanzará los límites para preocuparse.
¿Existen comparativas?
Los usuarios suelen preguntar por comparativas o bancos de pruebas
para PF. El único banco de pruebas digno de tener en cuenta es el
rendimiento del propio sistema en el propio entorno.
Un banco de pruebas que no replique nuestro entorno no nos ayudará a
planear correctamente nuestro sistema de cortafuegos. Lo mejor que
podemos hacer para obtener un banco de pruebas de PF es simular
nosotros mismos un entorno con las mismas condiciones de red –o lo
más parecidas que sea posible– que experimentaría el cortafuegos
real, y en el mismo hardware que usaría el cortafuegos.
PF se usa en algunas aplicaciones muy grandes con mucho tráfico,
y los mismos desarrolladores son usuarios avanzados de PF.
Lo más seguro es que el funcionamiento para un usuario
normal sea excelente.
[Anterior: Registros de
bitácora]
[Contenido]
[Siguiente: Cuestiones relacionadas con FTP]
www@openbsd.org
$OpenBSD: perf.html,v 1.11 2011/02/17 23:28:45 ajacoutot Exp $