¿Qué es el Overcommit?

Como es natural, a medida que un servicio tecnológico se extiende aparecen formas de optimizar su implementación y su uso, buscando generalmente mayor eficiencia y rentabilidad. El cloud computing no es ninguna excepción, y cada vez se alcanzan más estrategias para optimizar o exprimir mejor todas sus capacidades.

Hay una de estas estrategias que acostumbra a pasar desapercibida por el poco interés que tienen algunos proveedores en exponerla, pero que puede influir sustancialmente en el rendimiento de una solución. Hablamos del overcommit.

¿QUÉ ES EL OVERCOMMIT?

En el mercado podemos encontrar un cloud server de 1 GB de RAM y 1 vCPU desde 9€ al mes hasta más de 40€. ¿Cómo es posible? Entre otras variables, debido el overcommit aplicado por cada proveedor.

En términos de virtualización, el overcommit es el parámetro que indica qué cantidad de recursos virtuales se definen respecto los recursos de hardware que puede entregar un host físico.
Tecnológicamente, es posible realizar overcommit de la mayoría de recursos físicos, aunque en este artículo nos centraremos en los 2 parámetros que tienen una incidencia directa en el rendimiento de una aplicación: la memoria RAM y la CPU.

OVERCOMMIT DE MEMORIA RAM

Por ejemplo, decimos que en una plataforma cloud hay overcommit de memoria RAM si la suma de los GB de RAM de todos los servidores virtuales es mayor a los GB de RAM de que disponen los servidores físicos. Por lo tanto, en este caso, no contrataríamos XGB de RAM real, sino el uso de dicho recurso, que es compartido entre varias máquinas virtuales y, en entornos de cloud público, varios clientes.

Entonces, ¿qué ocurre si todos los servidores virtuales necesitan toda la memoria que supuestamente tienen asignada? ¿El rendimiento de mi página web, mis aplicaciones corporativas o mi negocio en general, puede depender del uso que hagan otros usuarios? La respuesta es afirmativa, pero hay que matizar. A priori, estas cuestiones no deberían ser críticas: si la solución está bien diseñada, el overcommit es proporcional a la demanda de recursos y contempla picos de carga a nivel de plataforma, no tiene por qué generar conflictos. Y, por otro lado, permite reducir mucho los costes gracias a esta especulación sobre la demanda.

OVERCOMMIT DE CPU

En el caso del overcommit de procesador o CPU, dado que las capacidades de procesamiento que ofrecen actualmente los servidores físicos son muy altas, el overcommit sirve para aprovechar todas las prestaciones del host. En este punto la pregunta clave seria cuántas VCPUs puedo configurar por CPU física sin afectar al rendimiento de la plataforma. Si bien la mayoría de hipervisores permiten configurar hasta 25 VCPU por core físico, la realidad es que no es recomendable configurar más de 4 o 5 VCPU por core físico, ya que afectaría notablemente al rendimiento del servidor. Cuanto más overcommit tenga la plataforma más aumenta la posibilidad de cargas de CPU física cercanas al 100% que producirán solicitudes o tiempos de respuesta altos que inutilizaran nuestra aplicación.

Así pues el overcommit no tiene que ser un parámetro conflictivo siempre y cuando nuestro proveedor nos informe de su configuración y esta sea la adecuada para las necesidades de recursos de nuestras máquinas virtuales, y nos permite entender por qué en el mercado encontramos servidores cloud con la misma configuración a precios tan dispares.

La pregunta importante es: ¿me ha informado mi proveedor de hosting de esta configuración y ha pactado conmigo unos niveles de servicio de acuerdo con mi demanda de recursos?

Contenidos relacionados: