44 lines
1.4 KiB
Markdown
44 lines
1.4 KiB
Markdown
## 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
|