Orphaned socket dropped

Desde hace varios días, observo en una máquina con gran carga de tráfico, unos mensajes en el HN(Hardware Node) relativos a los socket. Se puede ver fácilmente haciendo un grep en el messages:

# cat /var/log/messages | grep 'socket'

[...]
Apr 20 20:46:32 hn248 kernel: Orphaned socket dropped (156,624 in CT248)
[...]

Este error se produce en el punto crítico, de más carga de transferencia en la máquina en cuestión. La mayor parte del tiempo el comportamiento del hardware y el kernel VZ es excelente. Sin embargo, estos problemas puntuales afectan al servicio tan necesario en esos momentos críticos, los de más demanda, los que pueden hacer que tu producto funcione mejor o peor, y que pueden hacer tu vida más fácil o un infierno(bueno ahí me he pasado).

Haciendo una búsqueda en google, yo al menos, no encontré mucha información. Por ello me dirigí a los que realmente saben de esto, los del foro de OpenVZ. Ahí encontré las pistas clave para intentar mitigar este problema e intentar que no vuelva a ocurrir.

Hay 3 casos en los que se puede percibir este problema:

  • 1)El número de sockets huérfanos en una VE es >= 1/4 * (numtcpsock.barrier)
  • 2)El número de sockets huérfanos en una VE es > (sysctl net.ipv4.tcp_max_orphans)
  • 3)Condiciones de memoria más especiales

Vamos a repasar los dos primeros casos en función de los parámetros establecidos a la VE problemática.

# cat /etc/conf/249042.conf => NUMTCPSOCK=”1600:1600″
#sysctl -a | grep 'max_orphans' => net.ipv4.tcp_max_orphans = 32768

Es decir, en algún momento nuestra máquina ha excedido el límite de sockets huérfanos configurado en el sysctl o bien, en algún momento el número de sockets habilitados se acercó o sobrepasó los 400(en nuestro caso). Entonces, en cualquiera de los dos casos el sistema empieza a descartar paquetes. El gran problema es que esto no se muestra en el ¡/proc/user_beancounters!. Sólo un vistazo al dmesg o al log de mensajes del syslog puede dar con el.

No hemos encontrado indicaciones sobre como o en que forma aumentar el número de sockets huérfanos permitidos pero, en todo caso, se trataría de ajustar el valor siempre con moderación y no a lo bruto, porque tocar el sysctl puede hacer realidad el refrán de “peor el remedio que la enfermedad”. En otro post contaré como me fue y que parámetros ajusté para intentar resolver este problema.

Para más información: Foros OpenVZ

One thought on “Orphaned socket dropped

  1. Pêrsonalmente mas que buscar la manera de aumentar la otlerancia a tcp_orphans, buscaria la manera de no tener tcp_orphans. Vamso que me tiraria por aumentar el numtcpsock.barrier

Leave a Reply

Your email address will not be published. Required fields are marked *