1.4 KiB
Cálculo del nf_conntrack_max
Para saber si los parámetros que tenemos para el Connection Tracking son los óptimos, se usa la siguiente fórmula:
CONNTRACK_MAX = RAMSIZE (in bytes) / 16384 / (xArq / 32)
donde xArq será 64 o 32 según la arquitectura del servidor. De esta forma, si la arquitectura es de 64bits (64/32 = 2) ó 32bits (32/32 =1) según el caso.
Por ejemplo, para saber el número de bytes, podemos ejecutar lo siguiente:
cat /proc/meminfo (MemTotal: 2040168 kB)
Así, con 2GB de RAM (2040168 kB), sobre una arquitectura de x64
# uname -m
La fórmula quedaría así:
CONNTRACK_MAX = (2040168 kB * 1024) / 16384 / (64 / 32) = 63755,25 => 63755
Modificar nf_conntrack_max
De esta manera podemos adaptar este parámetro a nuestro servidor. Podemos modificar este valor «en vivo», simplemente ejecutando:
# echo 63755 > /proc/sys/net/netfilter/nf_conntrack_max
Sin embargo, para que los cambios sean persistentes, debemos añadir la siguiente línea en el /etc/sysctl.conf:
net.netfilter.nf_conntrack_max=63755
Comandos utiles
Conexiones que está gestionando la máquina de forma concurrente
# netstat -nat | wc -l
Para saber la cantidad máxima de transacciones que puede gestionar el conntrack:
cat /proc/sys/net/netfilter/nf_conntrack_max
Para saber la cantidad de transacciones que está gestionando el conntrack:
cat /proc/sys/net/netfilter/nf_conntrack_count