VPS con 16 núcleos: cálculo pesado en una máquina virtual y la frontera con el servidor dedicado
Dieciséis vCPU ya no son «un servidor algo mayor», sino una parte considerable de un procesador físico. A este volumen aparecen cosas en las que en los planes pequeños no hace falta pensar: cómo se reparten los núcleos entre los procesadores y las cachés del nodo, cuánto ancho de banda de memoria tiene la máquina, cuántos vecinos comparten contigo esos mismos hilos. De ello depende que obtengas dieciséis núcleos que trabajan o una máquina cara que escala hasta ocho.
Para qué tareas se contratan 16 núcleos
- Bases de datos analíticas y búsqueda. Los SGBD columnares ejecutan una consulta en todos los núcleos a la vez, así que el tiempo de un informe es casi inversamente proporcional a su número. Las particularidades de esta carga, en las páginas VPS para ClickHouse y VPS para Elasticsearch.
- Granjas de compilación y runners de CI en paralelo, cuando se compilan varias ramas a la vez.
- Procesamiento multimedia y cálculos: codificación de vídeo por software en varias calidades, renderizado, cálculos científicos y de ingeniería, redes neuronales en el procesador.
- Virtualización dentro del VPS. Un laboratorio con varias máquinas invitadas solo es posible si el proveedor ha activado la virtualización anidada: comprueba la marca
vmxosvmen/proc/cpuinfo. - Consolidación de una decena de servicios del equipo en una sola máquina con monitorización común.
NUMA, caché y memoria: qué cambia con 16 núcleos
Un nodo de servidor suele tener dos procesadores, y los chips modernos están divididos a su vez en bloques con su propia caché de tercer nivel. Si tus dieciséis vCPU están repartidos entre procesadores distintos, los hilos que intercambian datos pasan por el bus entre procesadores, y el acceso a la memoria «ajena» es más lento que a la local. Un buen proveedor fija las máquinas grandes dentro de un mismo nodo NUMA; en los planes baratos puede que no sea así.
El comando lscpu mostrará la línea «NUMA node(s)», y numactl --hardware, cómo se presenta la memoria al invitado. Un solo nodo NUMA dentro del VPS no significa todavía que la máquina viva físicamente en un único procesador, así que ejecuta además una prueba de memoria: sysbench memory --threads=16 run. Si el ancho de banda con 16 hilos apenas supera al de 8, la memoria se ha convertido en el cuello de botella, y las consultas analíticas chocarán con ella, no con los núcleos.
vCPU compartidos en un plan grande
Cuantos más vCPU tiene una máquina, más duele la sobreventa del tiempo de procesador. Una tarea multihilo sincroniza sus hilos, y todos esperan al más lento: si el hipervisor cede por un instante dos de tus dieciséis núcleos a los vecinos, los dieciséis se quedan parados. Por eso, en estos planes mira en la descripción el tipo de núcleos y las normas de uso de CPU y, tras la compra, mpstat -P ALL 5 bajo carga. Un %steal bajo y uniforme en todos los núcleos es buena señal; núcleos sueltos con un 15–20 % de steal delatan un nodo saturado.
Para evaluar el escalado, ejecuta la misma carga con 1, 8 y 16 hilos, por ejemplo 7z b -mmt1, -mmt8 y -mmt16. Con núcleos dedicados, pasar de 8 a 16 hilos da un aumento notable; si casi no lo hay, estás pagando por una cifra.
La generación del procesador importa más que el número de núcleos
Dieciséis núcleos de un chip de servidor antiguo y dieciséis núcleos de una generación reciente son máquinas de clases distintas. Un núcleo de un procesador de hace diez años ejecuta bastante menos trabajo por ciclo, tiene menos caché, una memoria más lenta y le faltan parte de las instrucciones vectoriales para las que están pensados los SGBD analíticos y las bibliotecas de aprendizaje automático. Al final, dieciséis núcleos así pueden quedarse en una prueba multihilo al nivel de ocho o diez modernos. Antes de comprar, mira el modelo de procesador en la descripción del plan o pregúntalo al soporte y, después, contrasta la salida de lscpu y el resultado de la prueba de un solo hilo con las cifras publicadas. Los planes con muchos núcleos se montan con especial frecuencia sobre procesadores de servidor AMD con mucha caché; las particularidades de sus generaciones se analizan en la página VPS con AMD EPYC.
VPS de 16 núcleos o servidor dedicado
A este nivel, el precio de una máquina virtual se acerca a menudo al alquiler de un servidor físico con dieciséis núcleos o más. Un servidor dedicado ofrece todo el procesador y todo el ancho de banda de memoria sin vecinos, RAID propio y previsibilidad; un VPS, entrega rápida, instantáneas, pago por horas y traslado a otro nodo si falla el hardware. Si la carga es constante y estás dispuesto a administrar hardware, compara con las ofertas de la sección de servidores dedicados. Si la carga llega en oleadas (cálculos nocturnos, compilación de versiones), la máquina virtual con pago por horas suele salir más a cuenta.
Ten en cuenta también el software. Parte de los SGBD comerciales y de las plataformas de virtualización se licencian por núcleo, y dieciséis vCPU se convierten en dieciséis licencias; a veces sale mejor contratar menos núcleos con una frecuencia alta. Con dieciséis núcleos suele hacer falta de 32 a 64 GB de memoria; los escenarios con ese volumen se analizan en la página VPS con 64 GB de RAM.