Amigos en este post veremos como mejorar el rendimiento la conexión de red de una máquina virtual Ubuntu Server 18.04 instalada en Proxmox.
En algunas ocasiones, con algunos modelos de adaptadores de red, es posible que experimentemos un bajo rendimiento de nuestra conexión de red, esto puede ser producido porque el checksum offload del hardware no está deshabilitado.
Este artículo asume que posees los conocimientos mínimos de Linux, sabes cómo usar la terminal, y lo más importante, conoces tu servidor. La configuración es simple y se asume que estás ejecutando la terminal con la cuenta de root, si no es así, deberás adicionar ‘sudo’ a los comandos para obtener los privilegios de root.
¿Que es checksum offload?
El motor de descarga TCP (TOE) es una tecnología utilizada en tarjetas de interfaz de red (NIC) para descargar el procesamiento de toda la pila TCP / IP al controlador de red. Se utiliza principalmente con interfaces de red de alta velocidad, como Gigabit Ethernet y 10 Gigabit Ethernet, donde la sobrecarga de procesamiento de la pila de red se vuelve significativa.
https://en.wikipedia.org/wiki/TCP_offload_engine
Esta función puede hacer que los analizadores de paquetes que no están conscientes o que no estén seguros del uso de la descarga de suma de comprobación informen sumas de verificación no válidas en los paquetes salientes que aún no hayan llegado al adaptador de red. Este problema también puede ocurrir al monitorear paquetes que se transmiten entre máquinas virtuales en el mismo host, donde un controlador de dispositivo virtual puede omitir el cálculo de la suma de control (como una optimización), sabiendo que la suma de control será calculada más tarde por el núcleo del host de VM o su hardware físico.
Para corregirlo ejecute los siguientes pasos:
Requisitos
Tener instalado ethtool y networkd-dispatcher
apt -y install ethtool
apt -y install networkd-dispatcher
Deshabilitar temporalmente Offloading
Para prevenir problemas futuros primero realizaremos un cambio temporal que se eliminará después de reiniciar el servidor, esto nos servirá para comprobar que el cambio mejora el rendimiento de nuestra conexión de red.
Primero obtenemos el nombre de nuestra interfaz de red:
# ifconfig
o
# ip address
Verificaremos la configuración actual:
# ethtool --show-offload enp18
Ejecutamos el siguiente comando para deshabilitar el checksum offload:
# ethtool -K enp18 tx off tso off gso off
Volvemos a comprobar la configuración para verificar que los cambios se hayan realizado:
# ethtool --show-offload enp18
Deshabilitar permanentemente Offloading
Si todo salió bien y no experimentan problemas al acceder a servidor podemos aplicar estos cambios de forma permanente:
Primero editaremos el siguiente archivo:
# nano /usr/lib/networkd-dispatcher/routable.d/10-disable-offloading
El contenido del archivo será el siguiente:
#!/bin/sh
ethtool --offload enp18 tx off tso off gso off rx off sg off lro off gro off
Otorgaremos permisos de ejecución al archivo creado anteriormente:
# chmod +x /usr/lib/networkd-dispatcher/routable.d/10-disable-offloading
Finalmente, la próxima vez que se reiniciemos el sistema el offloading estará deshabilitado.