Sobreventa ( ing. Sobreventa ): la venta de servicios de proveedores que exceden el volumen de recursos que se pueden proporcionar.
Sinónimo : overbooking _ _ _
En relación con la venta de servicios de alojamiento , la sobreventa significa la venta de potencia informática en volúmenes superiores a los que puede proporcionar el hardware del servidor.
Inicialmente, la sobreventa estaba asociada con la venta de servicios de alojamiento compartido y se refería principalmente a recursos como el tráfico y el espacio en disco duro. Con la popularización de los servicios de Servidor Privado Virtual (VPS/VDS) , la palabra "sobreventa" se ha vuelto conocida por una amplia audiencia y es una práctica común para la mayoría de los proveedores de hosting .
La sobreventa se basa en el hecho de que la mayoría de los clientes nunca utilizan por completo los recursos que les asigna el plan tarifario. Por lo tanto, los proveedores de alojamiento revenden la capacidad del servidor varias veces, lo que ayuda a reducir los costos de energía y el tiempo de inactividad de la capacidad no utilizada. Como resultado, esto conduce a una disminución en el precio de los servicios.
Ejemplo:
En un servidor con 32 Gb de RAM, puede tener 32 servidores virtuales dedicados , a los que se les asignará 1 Gb de RAM a cada uno, luego se garantiza que todos los clientes recibirán su RAM con la carga máxima. Por lo general, se colocan muchas más máquinas virtuales en un servidor de esta capacidad.
En teoría, es posible una situación en la que todos los VPS/VDS intenten utilizar simultáneamente las capacidades asignadas a ellos y el servidor físico se cargue hasta el límite. Entonces los clientes del proveedor pueden notar las consecuencias de la sobreventa: ralentización de los servicios, errores, indisponibilidad periódica del sitio. La mayoría de los proveedores de hospedaje monitorean cuidadosamente la carga en sus servidores físicos y no permiten tales situaciones. Los sistemas de monitoreo redistribuyen oportunamente los clientes "problemáticos" entre otros servidores, lo que pasa desapercibido para los propios clientes.
El sistema operativo Linux cuenta la memoria utilizada utilizando varios valores: VIRT, RES, SHM.
VIRT (tamaño virtual de un proceso): la cantidad virtual de memoria consumida por el proceso. Esta es la suma de la memoria utilizada actualmente, la memoria reservada por este proceso para sus necesidades, los archivos en el disco que utiliza el proceso (la mayoría de las veces bibliotecas) y la memoria compartida con otros procesos. VIRT muestra cuánta memoria puede obtener actualmente un proceso.
RES (tamaño residente): la cantidad de memoria utilizada actualmente. Siempre es menor que VIRT, ya que la mayoría de los programas usan las mismas bibliotecas.
SHR: muestra cuánta memoria VIRT se está usando en total.
Por ejemplo, el programa utiliza solo una parte de algunas funciones de la biblioteca. Por lo tanto, toda la biblioteca se escribirá en VIRT y SHM, y solo la parte que se usa realmente se ingresará en RES.
Al calcular la memoria utilizada en OpenVZ dentro del contenedor, se tiene en cuenta VIRT, que es más que la memoria real consumida, pero se puede usar el sistema operativo invitado. Por lo tanto, al vender VPS/VDS a través de la memoria VIRT, puede vender más memoria que la disponible en el servidor principal.
Para la sobreventa de memoria, se utilizan los parámetros vmguarpages, oomguarpages y vmguarpages: esta es la asignación de memoria al contenedor y oomguarpages es el límite de memoria para el proceso.
Sobreventa de CPUEl límite de uso de CPU se establece en el inicio del contenedor a través de los parámetros cpuunits (valor mínimo de tiempo de CPU garantizado para VDS), cpulimit (valor máximo que VDS puede usar, en porcentaje) y cpus (número de núcleos utilizados por VDS).
Cpulimit funcionará cuando el servidor esté inactivo y a uno de los contenedores le falte el valor de unidades de cpu, entonces puede usar hasta el n% del núcleo (núcleos, valor en cpus).
La sobreventa de memoria se lleva a cabo de acuerdo con el mismo principio que en OpenVZ , con una diferencia, se considera RES. Eso es realmente memoria usada. Por ejemplo, tiene n procesos usando la biblioteca libc, cada proceso consume 10 MB, de los cuales 2 MB son directivas de libc, por lo que se calculará (10-2) * n + 2, y no importa cuánto haya reservado en VIRT . Una vez cada 5 segundos, si se excede, los procesos son eliminados por un mecanismo de manejo de memoria del núcleo llamado OOMkiller .
Sobreventa de CPULa CPU también está limitada de acuerdo con un principio similar con OpenVZ , se establece un límite suave de hasta 1 núcleo en VPS / VDS, también hay un límite duro que se activa mediante un comando, si ya se ha dado 1 núcleo al contenedor y la carga se mantiene durante mucho tiempo y no se cae, entonces se activará un límite duro.
FreeBSD Jail & OpenVZ HDD sobreventaEn ambas virtualizaciones, venderemos en exceso el espacio en disco vendiéndolo varias veces. En este caso, el proveedor de alojamiento debe asegurarse constantemente de que quede suficiente espacio libre, en caso de que uno (varios) de los contenedores (VDS) requiera todo lo que se supone que debe ser.
La limitación en el uso del disco en este caso podría implementarse a través de la limitación de las operaciones de E/S, pero, por el momento, este límite es difícil de implementar. El controlador final no sabe desde dónde se envió el comando de lectura y no puede calcularlo para un contenedor específico. Por lo tanto, recurren a la limitación de archivos abiertos simultáneamente: descriptores de archivos . Cuando se alcance el límite de archivos abiertos, el sistema operativo invitado dará un error sobre los innodos finalizados .
En esta virtualización, es posible la sobreventa del procesador y la RAM.
Sobreventa de RAMLa sobreventa de RAM se puede realizar mediante las tecnologías Kernel SamePage Merging (KSM), Ballooning and Swapping .
KSM funciona de acuerdo con el siguiente principio:
El primer paso es configurar KSM para escanear áreas de memoria; de forma predeterminada, la virtualización de KVM no está configurada para funcionar con KSM. Una vez configurado, KSM comienza a escanear la RAM en busca de datos idénticos. Cuando KSM encuentra 2 o más coincidencias, marca los datos como compartidos y reemplaza todas las ubicaciones de memoria idénticas con un bloque y lo protege contra escritura. Si más tarde uno de los procesos que utilizan dicha memoria solicita cambiar la información, KSM crea una nueva área copiando el bloque protegido contra escritura.
Vuelo en globo:
El hipervisor (programa de gestión del sistema operativo) envía una solicitud al sistema operativo invitado (VDS) para devolver parte de la RAM bajo su control:
El hipervisor usa esta memoria a su discreción, donde la necesita en ese momento. Cuando la memoria de la nube se libera, el hipervisor puede devolverla al sistema operativo invitado del que se tomó:
Intercambio:
La sobreventa de memoria utiliza el archivo de paginación del disco duro.
Sobreventa de CPULa sobreventa de CPU es compatible con el hipervisor KVM a través del programador de Linux y el mecanismo cgroups , al priorizar ciertos procesos. En este caso, el sistema operativo invitado no experimentará problemas si no utiliza el procesador al 100 %. Con la sobreventa de CPU, no puede vender más núcleos a un VDS que los que hay en el servidor y no necesita permitir una carga de más del 80 % en el sistema, ya que una mayor sobreventa puede reducir significativamente el rendimiento tanto del sistema operativo invitado como del sistema operativo. el propio servidor.