En una migración de una VM CentOS a una granja Hyper-V, la interfaz de red dejó de funcionar. De acuerdo al System Center Virtual Machine Manager (SCVMM), la VM tenía atachada un tarjeta de red legacy. A continuación la información del sistema de la tarjeta de red:
|
|
Además en los logs, se registrarón multiples errores del tipo transmit timed out, status fc678147
, a continuación se puede ver un ejemplo de lo que registró el log:
|
|
Solución
La solución fue desactivar el servicio irqbalance
el cual se encarga de distribuir las interrupciones de hardware (IRQ) entre todos los procesadores con el objetivo de mejorar el rendimiento.
|
|
Nota: Es importante que el sistema inicie sin iniciar el demonio irqbalance
, es decir, no sirve con solo detener el servicio.
¿Qué es IRQbalance?
irqbalance
es un servicio que intenta balancear las peticiones IRQ, de forma inteligente, entre todas las CPUs disponibles al mismo tiempo que intenta asignar el procesamiento de la IRQ al núcleo más cercano donde esta corriendo el proceso que ha solicitado la petición IRQ, pudiendo ser el mismo núcleo, un núcleo en el mismo circuito integrado compartiendo la misma caché, o un núcleo en la misma zona NUMA.
La tecnología NUMA es similar a IRQbalance, tratando de asegurar que procesos corran en la misma zona NUMA, lo cual en sistemas con muchos núcleos puede significar grandes reducciones de latencias lo que supone un aumenta del rendimiento, especialmente bajo grandes cargas de trabajo.
En máquinas virtuales las ventajas que pueden aportar NUMA
o IRQbalance
no son equivalentes a las que se pueden obtener en un servidor físico, por ello a veces es mejor desactivar los servicios irqbalance
o numad
de las VM y dejar que sea el hipervisor quien gestione las asignaciones.
Más información: