El efecto “noisy neighbor”: problemas de convivencia en la nube

Todos hemos sufrido en algún momento la incomodidad de tener unos vecinos escandalosos que escuchan música o ven la televisión a un volumen alto, que ponen la lavadora a deshora, que organizan fiestas sin fin o cuyos hijos trotan y gritan incansables a todas horas. Si tales molestias son de especial intensidad o suceden con cierta regularidad, entonces se convierten en un factor que puede reducir drásticamente la comodidad de la vivienda que se ha alquilado. Si sustituimos “vivienda alquilada” por “recursos contratados”, este problema traspasa las cuatro paredes del hogar para convertirse en un fenómeno muy extendido también en el entorno de los servidores, donde se le conoce como “efecto noisy neibhbor” o “efecto del vecino ruidoso”.

¿Qué es el efecto “noisy neighbor”?

Cuando se trata de buscar una vivienda se tienen generalmente dos opciones: por un lado, alquilar o comprar una casa propia o, por el otro, un piso en una comunidad de vecinos. Mientras que en el primer caso el contacto con los vecinos requiere un mínimo de voluntad y no es necesariamente frecuente, en un edificio de varios pisos su presencia se percibe constante e involuntariamente de una forma mucho más cercana. Como contrapartida, los gastos de mantenimiento de una casa unifamiliar son mucho más elevados que los de un apartamento.

La situación es similar cuando se busca un “hogar” adecuado donde alojar un proyecto web o la estructura informática de una empresa. Disponer de un servidor físico propio que satisfaga los requisitos de software y de hardware es la solución sin duda más cara y exigente, pero tiene la ventaja de que tanto los recursos como su gestión recaen exclusivamente en manos de su propietario. Cuando, generalmente con motivo de sus elevados costes, se opta por hacer uso de recursos virtualizados, compartiendo así el fundamento técnico del proyecto con otros, puede que el rendimiento se resienta temporalmente.

La causa de ello radica normalmente en una sobreutilización de los recursos por parte de otro “inquilino” que los comparte, de ahí la denominación de “efecto del vecino ruidoso” o “noisy neighbor effect”. Hoy en día, el fenómeno de las instancias “vecinas” que perjudican el rendimiento global de los recursos se observa sobre todo en la computación en la nube, fundamentada en la denominada arquitectura de tenencia múltiple (multitenancy o multi-tenant architecture), que permite compartir una instancia de una aplicación entre varios clientes aun ejecutándose en el servidor.

El problema del “noisy neighbor” en los servidores virtuales

El efecto “vecino ruidoso” no es en absoluto nuevo, sino que es tan antiguo como la posibilidad de compartir recursos, que existía antes incluso del nacimiento de la nube. Ya en el tradicional shared hosting o alojamiento compartido, este era uno de los problemas a los que tenían que enfrentarse los proveedores de alojamiento. Si uno de los clientes requería, sabiéndolo o no, más recursos de los que le correspondían, alguno de los demás “inquilinos” de la misma máquina se veía perjudicado con alguna limitación y el almacenamiento era aquí el que salía peor parado. Entretanto, los hipervisores (hypervisor), plataformas que sirven como capas mediadoras entre los recursos físicos y las máquinas virtuales, son hoy tan sofisticados que los usuarios no tienen casi ninguna posibilidad de sobrepasar el límite de los recursos asignados.

Por su parte, el alojamiento en la nube, cuya principal ventaja radica en una escalabilidad muy flexible, tiene a su propio “vecino ruidoso”: a pesar de que los discos duros utilizados para el alojamiento disponen cada vez de más capacidad, la mejora de su rendimiento es imperceptible. Esto significa que si hay muchos usuarios conectados a una nube y una o varias máquinas virtuales sobrecargan el almacenamiento físico del servidor con valores de entrada y salida (I/O) muy altos, todos los usuarios de esta nube se verán afectados con desfases notables. El almacenamiento con SSD, aunque representa una buena solución, tampoco puede eliminar del todo el efecto negativo, sin olvidar que tampoco forma parte del repertorio estándar de todos los proveedores de alojamiento en la nube.

Otro efecto “noisy neighbor” de la computación en la nube resulta del comportamiento de los hipervisores y los procesadores. Los hipervisores no tienen acceso al almacenamiento local ni tampoco a la memoria caché de los procesadores y estos, por su lado, tampoco disponen de información sobre lo que pasa más allá de la capa de red. Esto hace que sean los procesadores mismos los que deciden qué datos se han de almacenar en la memoria caché. Los modernos procesadores multicore, además, asignan a algunas máquinas virtuales la memoria caché L3 (Level 3), que acelera el intercambio de datos. Esto tiene como consecuencia que, para el resto de máquinas que dependen asimismo de este procesador, la ejecución de operaciones requiera bastante más tiempo.

Cómo evitar el efecto “vecino ruidoso” en la nube

Para reducir los efectos de los “noisy neighbors” y optimizar a largo plazo todos los proyectos alojados, algunos proveedores de alojamiento en la nube muestran su preferencia por los sistemas all-flash storage o almacenamiento todo flash. Este concepto se fundamenta en la sustitución de las unidades de disco rígido (Hard Disc Drive, HDD) por los más potentes y más caros SSD o discos de estado sólido (Solid State Drive), que utilizan memoria no volátil, como la memoria flash, para almacenar los datos. Sin embargo, estos medios de almacenamiento flash más modernos tampoco pueden evitar completamente el efecto de los “vecinos ruidosos”, a pesar de su tasa de I/O más alta. Esto ha hecho que se consolidaran los denominados all-flash arrays o matrices de discos todo flash, que contienen varias unidades de almacenamiento flash, a la hora de implementar una arquitectura de almacenamiento sin HDD. Estas matrices todo flash cuentan con una cuota integrada de almacenamiento para la entrada y salida de datos, que se gestiona en un nivel de aplicación que se gestiona individualmente, de tal forma que el proveedor de la nube o su administrador pueden supervisar y coordinar la transferencia de datos de las diferentes máquinas virtuales.

Esta arquitectura basada en matrices de discos flash facilita a los proveedores el poder ofrecer diferentes tarifas o packs en la nube, de entre los cuales el cliente puede escoger la solución más adecuada en función de la entrada y salida de datos que necesita para o genera con su proyecto. Los que más se benefician de esta posibilidad, que reduce el fenómeno de los noisy neighbors al mínimo, son los usuarios con un elevado presupuesto para las tecnologías de la información. Cuando una máquina acapara los recursos de forma desproporcionada, el proveedor la traspasa a un servidor físico con menos tareas o bloquea el tráfico de entrada y salida de datos.

En ocasiones, es difícil predecir cómo va a evolucionar un proyecto. Es por esto que, antes de nada, conviene informarse bien sobre la hipotética posibilidad de aumentar o reducir los recursos contratados, porque, de lo contrario, podría pagarse por unas prestaciones de almacenamiento y CPU que no se necesitan o convertirse en el mismo vecino ruidoso que saca de quicio a los demás inquilinos.

Wenn die Entwicklung Ihres Projekts nur schwer einschätzbar ist, sollten Sie sich unbedingt im Vorhinein über die Upgrade- und Downgrade-Möglichkeiten der gemieteten Ressourcen informieren. Andernfalls bezahlen Sie schnell Speicher- und CPU-Leistung, die Sie eigentlich gar nicht benötigen – oder werden gar selbst zum „Noisy Neighbor“, der anderen Cloud-Bewohnern mit seinem Daten-„Lärm“ auf die Nerven geht.

Consejo:

Desde octubre de 2015, también en 1&1 nuestras ofertas de alojamiento en la nube se basan en soluciones de almacenamiento en matrices todo flash. Usar la tecnología SolidFire garantiza el mejor rendimiento posible para todos los proyectos que alojamos y nos permite ofrecer paquetes de prestaciones económicas y ajustadas que puedes actualizar o revertir en cualquier momento.

Te interesa un servidor virtual pero quieres evitar el efecto “noisy neighbor”, infórmate aquí sobre el abanico de servidores 1&1.

Tags: Nube / Glosario