Olivier Le Moal - Fotolia
Cómo la CPU y la memoria afectan el desempeño de las aplicaciones
El desempeño de las aplicaciones cambiará dependiendo de si quiere más núcleos, mejor velocidad de reloj o lo que usted elija para la memoria.
A medida que el centro de datos se vuelve más dependiente de la virtualización, necesitamos asegurar que la infraestructura de virtualización está preparada para ello. Con tantas opciones en el hardware subyacente, como el disco giratorio, flash, infraestructura convergente e hiperconvergente, el centro de datos se ha convertido en un paisaje siempre cambiante. Por desgracia, en la mayoría de los casos, no es un rompecabezas en el que una talla única sirve para todos.
Mientras que algunos proveedores pueden estar en desacuerdo con eso, la realidad es que la infraestructura virtual existe para soportar aplicaciones. De hecho, muchas organizaciones tienen cientos de aplicaciones y cada aplicación tiene su propio perfil de rendimiento que necesita ser evaluado. La virtualización abstrae el hardware y permite la portabilidad, escalabilidad y flexibilidad como ninguna tecnología ha hecho nunca. Sin embargo, como con cualquier abstracción del hardware, todavía existen limitaciones y restricciones de desempeño, incluso si las máquinas virtuales no los ven directamente.
Hace años, aumentar el rendimiento de una aplicación era posible conseguiendo el servidor más rápido, pero esto simplemente ya no es rentable. Los recursos de virtualización no coinciden con las aplicaciones una por una, y el entorno se asemeja más a una caja de arena compartida, donde todo el mundo tiene que jugar bien con los demás. Para encontrar el equilibrio entre el número de máquinas virtuales que pueden existir en una única plataforma de hardware sin problemas de rendimiento y aún preservar el ahorro de costos, conozca los perfiles de sus aplicaciones. Si bien cada aplicación tiene su propio perfil único, ellas suelen compartir cuatro indicadores clave comunes: red, I/O, CPU y memoria. Con la virtualización, usted tiene la capacidad de controlar e incluso limitar cada uno de esos indicadores debido a la abstracción ofrecida por el hipervisor. Sin embargo, no puede aumentar la cantidad de recursos sobre lo que el hardware puede proporcionar. Abstracción no significa creación de hardware, sino más bien la asignación del hardware existente.
Gestión de la capacidad de CPU
El pensamiento común cuando se trata de procesadores era, cuanto mayor sea la velocidad de reloj, mejor. Las CPU multinúcleo han cambiado ese proceso de pensamiento, pero no siempre para mejor. Los recursos de la CPU son un valor difícil porque tiene varias opciones diferentes que pueden tener una amplia gama de impacto. Con las CPUs, usted tiene un poco de rango en lo que puede seleccionar, en función de si desea más núcleos con menor GHz o mayores GHz con menos núcleos. Usted puede incluso encontrar un punto medio entre cada uno también. Su decisión podría muy bien reducirse a sus aplicaciones. Incluso hoy en día, no puede asumir que todas las aplicaciones que tiene son multiprocesos y capaces de tomar ventaja de múltiples núcleos. De hecho, todavía hoy, muchas aplicaciones no pueden tomar ventaja de más de uno o dos núcleos. Ahora, usted puede tener esa aplicación central que es multiproceso, pero tiene que examinarla para saber si se trata de un perfil monolítico o basado en transacciones. Esto le ayudará a determinar si es necesario tener más GHz o tantos núcleos como sea posible.
El perfil de la aplicación puede ser una fuente para separar sus cargas de trabajo virtualizadas a lo largo de diferentes granjas para aprovechar al máximo el hardware más adecuado para cada perfil. Mezclar un entorno como VDI, que a menudo requiere un gran número de núcleos, pero normalmente a una velocidad inferior de GHz, puede afectar drásticamente los servidores de producción en ese mismo entorno que necesita el GHz superior. Esta es una de las razones por las que VDI no comparte la misma infraestructura de producción. Así que, más grande no es siempre mejor, pero recuerde mirar en el perfil de aplicación y averiguar si la necesidad de la CPU es multiproceso y basada en transacciones o monolítica. Con esos datos, usted puede empezar a buscar en los perfiles de CPU y hacer sus selecciones basadas en núcleos y GHz. Esto comenzará a darle un valor base para trabajar, pero no habrá terminado todavía hasta que tome en cuenta el exceso de compromiso y los fracasos que vienen.
Tamaño de memoria y preocupaciones de rendimiento
La segunda y, por lo general, más cara pieza a tener en cuenta es la memoria. La memoria fue uno de los valores más confusos para trabajar antes de la virtualización, porque existían pocas herramientas para realmente decirnos lo que estaba pasando dentro de nuestros servidores. A diferencia de otros recursos en un servidor, la memoria es a menudo almacenada en caché para su uso futuro. Si bien esto puede proporcionar un aumento de desempeño en algunos casos, se desvirtúan los datos de uso del desempeño porque la memoria está en manos de los sistemas operativos, pero no está activa. Afortunadamente, la virtualización ahora permite al administrador ver lo que está activo en la memoria, en comparación con lo que está simplemente puesto en caché por el sistema operativo, con el monitoreo en la capa de hipervisor. Con este nivel de comprensión, ahora tenemos una verdadera comprensión de lo que se necesita. Esto puede ayudar a eliminar la costosa sobre asignación que trae poco o ningún beneficio para la aplicación.
La memoria también tiene una advertencia única que los otros recursos no tienen. La memoria puede ser complementada con discos –tanto discos de estado sólido (SSD) y giratorios– para permitir un mayor nivel de sobre compromiso del recurso. Sobre comprometerse con el disco giratorio a menudo tiene un impacto sustancial en el desempeño y debe evitarse a toda costa. El cambio a SSD es un poco diferente, ya que muchos creen que la velocidad del SSD es casi la misma que la de la memoria. Por desgracia, esto no es exacto, ya que SSD pasando por un subsistema de disco tiene un rendimiento de 600 MB/s. Dado que la memoria no tiene la misma limitación, la velocidad de transferencia está más cerca de 15,000 MB/s, dependiendo de las velocidades. Si bien el uso de SSD para la memoria no debe ser descartada, sería más ideal para el intercambio de emergencia durante un corte en lugar del uso planeado.