El problema
El sistema presenta cierta degradación del rendimiento. Verificar con netstat muestra números muy grandes (y crecientes) de “reensamblajes de paquetes fallidos” similar a:
# netstat -s | fgrep reassembles 353357449 packet reassembles failed 353359152 packet reassembles failed 353360314 packet reassembles failed 353361547 packet reassembles failed 353363020 packet reassembles failed 353364064 packet reassembles failed
La solución
En general, los reensamblajes de paquetes IP pueden fallar si:
- No hay suficiente memoria para volver a ensamblar los fragmentos de IP.
- Se agota el tiempo de espera mientras se esperan los fragmentos de ip restantes.
- Los fragmentos de IP se caen o se corrompen.
Esta publicación aborda los problemas n.º 1 y n.º 2.
Con respecto a los tiempos de espera
Verifique el ipfrag_time actual :
# cat /proc/sys/net/ipv4/ipfrag_time 30
Considere aumentar esto a 60:
# echo "60" > /proc/sys/net/ipv4/ipfrag_time
Si esto tiene éxito, se puede hacer permanente agregando el comando de eco anterior a /etc/rc.local
Sobre la Memoria
La documentación dice:
ipfrag_high_thresh - INTEGER Maximum memory used to reassemble IP fragments. When ipfrag_high_thresh bytes of memory is allocated for this purpose, the fragment handler will toss packets until ipfrag_low_thresh is reached. ipfrag_low_thresh - INTEGER See ipfrag_high_thresh
Compruebe los valores actuales de ipfrag_high_thresh e ipfrag_low_thresh:
ipfrag_high_thresh 4194304 ipfrag_low_thresh 3145728
En este caso, comience aumentando ipfrag_high_thresh para duplicar el valor actual. es decir:
# echo "8388608" > /proc/sys/net/ipv4/ipfrag_high_thresh
Nuevamente, si el resultado es satisfactorio, agregue esto a /etc/rc.local.