RHEL y Oracle RAC – Paquetes Dropped

En un entorno de dos servidores Linux RedHat 6.9 con un cluster de Oracle RAC, hemos detectado muchos paquetes dropped en las tarjetas de red (dropped: 311815750):

[[email protected] ~]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr C4:34:6B:CA:A1:A0
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:32150653954 errors:0 dropped:311815750 overruns:0 frame:0
          TX packets:33238988555 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:22934241338318 (20.8 TiB)  TX bytes:24364152267426 (22.1 TiB)

El equipo de Oracle ejecuta un análisis del sistema (OSWatcher) donde se indica que debemos aumentar el valor de MTU de todos los nodos del cluster, y así lo hacemos. Lo aumentamos de 1500 a 2048. Esto significa que ambos servidores pueden enviar paquetes TCP más grandes.

Cómo modificar el tamaño de MTU

Para modificar el tamaño de MTU en RedHat 6, lo hacemos de la siguiente manera:

[root]# ip link set dev eth0 mtu 2048
[root]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2048 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:50:56:25:02:0a brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:50:56:16:1a:9e brd ff:ff:ff:ff:ff:ff
[root]#

Para dejar el cambio como persistente, añadiremos la directiva MTU=2048 en el fichero de configuración de red (/etc/sysconfig/network-scripts/ifcfg-ethX). Si tienes bondings configurados, también hay que añadir la directiva.

El resultado de este cambio no fue bien y tuvimos que hacer marcha atrás. El cluster de Oracle quedó inconsistente y las conexiones SSH se cortaban.

¿Y qué dice RedHat?

Pues en la documentación de RedHat (https://access.redhat.com/solutions/659453), indica que tenemos que aumentar el tamaño de los buffers de TCP y UDP para evitar fragmentación en la información enviada por la red y agotar el número de fragmentos de paquetes de TCP y UDP que viajan por la red, provocando el error de paquetes «dropped».

Finalmente, o que hacemos, es configurar los siguiente parámetros del kernel (/etc/sysctl.conf):

# Multiplicamos por 4 el valor actual
net.core.wmem_max = 4194304
# Multiplicamos por 2 el valor actual
net.core.wmem_default = 4194304
# Multiplicamos por 2 el valor actual
net.ipv4.ipfrag_high_thresh = 8388608
# Multiplicamos por 2 el valor actual
net.ipv4.ipfrag_time = 60

¿Te ha gustado? ¡Compártelo!

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

Deja un comentario

Tal vez también te gustaría leer...

lun4194304 has a LUN larger than allowed by the host adapter

En un RedHat 7.6 he pedido una LUN para ampliar un filesystem. Esta es una tarea rutinaria de cualquier técnico de sistemas Linux, si embargo, hoy me he encontrado con que la LUN estaba asignada al servidor pero no la veía. En el log del sistema operativo (/var/log/messages) aparecía el siguiente mensaje: Es decir, que

Leer más »

root: fork failed: Cannot allocate memory

En uno de los servidores que administro me ha ocurrido que no podía entrar con SSH ni ejecutar procesos en remoto a través de un software que tiene un agente instalado, etc. dando el error root: fork failed: Cannot allocate memory. Sin embargo, la aplicación del usuario no se estaba viendo afectada. Teclado Mecánico Gaming

Leer más »

systemd: Unit XXX is bound to inactive unit XXX

Me encontraba moviendo un filesystem LVM desde los discos locales a un disco de la SAN pero no podía montarlo. En este caso, el FS todavía no estaba siendo utilizado por nadie, ya que era para un proyecto pendiente de entrega, por lo que no necesito realizar ninguna copia de seguridad previa. Teclado Mecánico Gaming

Leer más »

RedHat – Semaphores exhausted

Esta mañana me he encontrado con una alerta en un servidor RedHat 6, cuyo mensaje de error era: He podido entrar correctamente al servidor pero al ejecutar algunos comandos, se quedaban colgados sin responder jamás. Teclado Mecánico Gaming de VicTsing, 104 Teclas y… 39,88 EUR Comprar en Amazon Logitech G413 Mechanical Gaming Keyboard – Carbon…

Leer más »

No arrancan las VMWare Tools

Estaba haciendo una actualización de las VMWare Tools en 300 servidores RedHat 6 y en tres de ellos no me arrancaron. Tabla de contenidos1 Script de actualización masivo2 Error que me daba al arrancar las VMWare Tools3 ¿Cómo consigo arrancar las VMWare Tools, finalmente?4 ¿Cómo me di cuenta del error? Script de actualización masivo Si

Leer más »

Error de NFS – server XXX not responding, timed out

Recientemente he tenido una incidencia con un servidor de NFS de preproducción en el que durante unos segundos el cliente de NFS perdía la conectividad, afectando a una aplicación muy sensible o, traduciéndolo de otra manera, mal desarrollada: Para solucionarlo, aumenté el timeout en el que el cliente de NFS va a seguir intentando acceder

Leer más »