Que es un VPS con SSD y que velocidad ofrece
Un VPS con SSD usa memoria flash en vez de discos mecanicos. Conozca la diferencia en IOPS y latencia, y que debe preguntar antes de contratarlo.
¿Qué es un VPS con SSD?
Un VPS con SSD es un servidor privado virtual cuyo disco utiliza memoria flash en lugar de un disco duro mecánico. SSD significa unidad de estado sólido: almacenamiento basado en chips de memoria flash NAND, sin piezas móviles en su interior. VPS significa servidor privado virtual: una partición aislada de un host físico que ejecuta su propio sistema operativo y se vende como si fuera un servidor completo. Al combinar ambos conceptos, esta etiqueta promete una cosa. Cuando el servidor lee un bloque de datos, no es necesario que se mueva ningún componente mecánico.
Esa es toda la definición. Todo lo que sigue trata sobre lo que la etiqueta no especifica, porque las palabras «hosting SSD» en una página de precios dicen muy poco sobre la matriz de almacenamiento que hay detrás.
Si todavía está determinando en qué se diferencia un VPS de una máquina virtual común, la diferencia entre un VPS, una VM y una VPC es la página que conviene leer primero.
Por qué los proveedores anuncian la velocidad del almacenamiento en lugar de su capacidad
Una página de planes indica los núcleos de CPU, la memoria, el tamaño del disco y el ancho de banda, y después añade una palabra sobre el disco que no indica ningún tamaño. Los proveedores lo hacen porque la capacidad dejó de ser el dato más importante del almacenamiento hace años. Los dos valores que determinan cómo responde un servidor son IOPS (operaciones de entrada/salida por segundo) y la latencia (el tiempo que tarda en completarse una operación).
La diferencia mecánica explica el motivo. Un disco duro almacena los datos en platos giratorios y los lee con un cabezal situado en un brazo móvil. Para acceder a un bloque situado en otra parte del plato, el brazo debe desplazarse y, después, el disco debe girar hasta que el sector correcto quede bajo el cabezal. A 7200 revoluciones por minuto, media vuelta tarda de media unos 4 ms, y el desplazamiento añade varios milisegundos más. La memoria flash no tiene brazo ni plato, por lo que una lectura es una consulta eléctrica que responde en decenas de microsegundos.
The data behind this chart
[
{
"device": "7200 rpm hard disk",
"random_read_iops": "125",
"read_latency_ms": 8
},
{
"device": "SATA SSD",
"random_read_iops": "90,000",
"read_latency_ms": 0.15
},
{
"device": "NVMe SSD",
"random_read_iops": "600,000",
"read_latency_ms": 0.08
}
]Un disco duro de 7200 rpm está especificado para aproximadamente 125 lecturas aleatorias de 4k por segundo, y cada una tarda unos 8 ms en completarse. Una unidad NVMe está especificada para cerca de 600,000 de esas mismas lecturas, con un tiempo aproximado de 0.08 ms por lectura. La unidad SSD SATA intermedia está especificada para cerca de 90,000. Interprete esos valores como órdenes de magnitud, no como un porcentaje de mejora.
Hay dos advertencias sobre esos datos. Son especificaciones publicadas para unidades completas de cada clase, por lo que son valores de las fichas del fabricante y no mediciones realizadas en una VPS. Además, nunca obtiene una unidad completa: su volumen es una parte de un dispositivo o de una matriz, junto a otros clientes que usan el mismo hardware.
Las dos columnas también responden a preguntas diferentes, así que debe leerlas juntas. La latencia indica cuánto espera para una operación. IOPS indica cuántas operaciones puede procesar la unidad al mismo tiempo. La memoria flash alcanza sus valores elevados de IOPS mediante el paralelismo, porque muchos chips flash responden a muchas solicitudes simultáneamente mientras una cola profunda los mantiene ocupados. Un programa de un solo hilo que emite una lectura, espera a que termine y después emite la siguiente nunca alcanzará el valor máximo de esa tabla. En su caso importa la columna de latencia.
SSD, NVMe, SATA y PCIe: cuatro términos de cuatro capas distintas
Los compradores confunden estos términos porque cada uno describe una parte diferente del sistema.
- SSD es el medio de almacenamiento. Significa que los datos se almacenan en chips de memoria flash NAND en lugar de platos magnéticos.
- SATA es una interfaz diseñada en la época de los discos mecánicos. Su velocidad máxima es de 6 Gbit/s, que equivalen aproximadamente a 550 MB/s de rendimiento real, y su cola de comandos admite 32 comandos pendientes.
- NVMe (non-volatile memory express) es un protocolo diseñado específicamente para memoria flash. Admite muchas colas con miles de comandos cada una, de modo que varios núcleos de CPU pueden comunicarse con la unidad al mismo tiempo sin compartir una sola cola limitada.
- PCIe (peripheral component interconnect express) es el bus sobre el que funciona NVMe. Utiliza el mismo tipo de líneas a las que se conecta una tarjeta gráfica.
Por tanto, tanto un SSD SATA como un SSD NVMe almacenan los datos en memoria flash. La diferencia está en la interfaz que utilizan. Un SSD SATA sigue siendo mucho más rápido que cualquier disco duro, pero esa cola de 32 comandos limita la cantidad de trabajo paralelo que puede gestionar, y el trabajo paralelo es precisamente uno de los puntos fuertes de la memoria flash. La opción que merece la pena depende de la carga de trabajo. La decisión entre un SSD NVMe y un SSD SATA analiza esta cuestión en detalle.
¿Almacenamiento flash local o conectado a la red?
Dos configuraciones muy diferentes se comercializan con el mismo término.
El almacenamiento local significa que las unidades flash están dentro del mismo host físico que su VPS. Una solicitud viaja por PCIe dentro de una sola máquina y vuelve directamente. Por eso la latencia se mantiene en decenas de microsegundos.
El almacenamiento conectado a la red significa que el disco virtual está en un clúster de almacenamiento independiente, normalmente Ceph o una SAN (storage area network), y que cada lectura y escritura atraviesa la red para llegar hasta él. Los proveedores suelen llamarlo «cloud block storage» o «elastic volumes». La memoria flash es real. El trayecto por la red también lo es y se añade a cada operación. Por eso la latencia alcanza varios cientos de microsegundos o pocos milisegundos, en lugar de decenas.
Ninguna de las dos opciones es incorrecta. El almacenamiento de red sobrevive a la pérdida de un host porque los datos nunca estuvieron en ese host: el proveedor puede iniciar su servidor en otro hardware y el disco lo acompaña. El almacenamiento local NVMe es más rápido y está vinculado a una máquina física concreta. Por tanto, un fallo de hardware en ella exige restaurar desde una copia de seguridad. Pregunte qué opción usa el plan. Casi nadie lo hace.
La diferencia que se percibe en un servidor real
El trabajo de un servidor consiste principalmente en pequeñas lecturas y escrituras aleatorias, no en transferencias secuenciales largas. Por eso, la cifra de MB/s de la publicidad es el dato menos útil de la página.
- Confirmaciones de bases de datos. Una base de datos que garantiza la durabilidad llama a
fsynccuando confirma una transacción y espera a que la unidad confirme que los datos se han almacenado realmente. En un disco duro, esa espera dura milisegundos, lo que limita una base de datos pequeña a unos pocos cientos de confirmaciones por segundo. En una unidad flash, la misma espera dura una fracción de milisegundo. Aquí la diferencia es mayor, tanto si usa PostgreSQL como MySQL o SQLite como base de datos de producción. - Instalaciones de paquetes.
apt installdescomprime miles de archivos pequeños y los sincroniza con el disco a medida que avanza. Casi ninguna de esas operaciones es secuencial, por lo que está limitada por las IOPS. - Descargas de imágenes de contenedores.
docker pullobtiene capas comprimidas a través de la red y después las extrae en miles de archivos pequeños. La descarga está limitada por la red. La extracción está limitada por el disco y, en un volumen lento, es la parte que obliga a esperar. - Arranque y reinicio. El inicio lee un kernel y un initramfs, y después cientos de archivos de unidad y bibliotecas compartidas dispersos por el volumen.
Nada de esto es una lectura secuencial grande. Un volumen que transmite a 500 MB/s, pero sólo puede atender 3,000 IOPS, seguirá pareciendo lento durante un docker compose pull, porque la espera se cuenta por archivo, no por megabyte.
Por qué «SSD cloud hosting» en una página de precios no informa casi nada
El término describe el medio y no va más allá. No indica qué interfaz utiliza la unidad ni si está en la misma máquina que el servidor. Tampoco indica cuál es el límite que puede alcanzar su plan.
Este límite es el factor más importante y el que menos se anuncia. Los proveedores limitan las IOPS y el rendimiento por volumen, porque un mismo host atiende a muchos clientes y un vecino sin límites puede agotar los recursos del resto. Un límite de unos pocos miles de IOPS en un hardware capaz de alcanzar cientos de miles es normal y transparente, pero no aparece en la descripción del plan. Dos planes pueden indicar «SSD» aunque uno use NVMe local sin límite por volumen y el otro use un volumen de clúster compartido limitado a 3,000 IOPS.
Los límites tienen dos modalidades. Un límite sostenido es un techo fijo que nunca cambia. Un límite de ráfaga proporciona una capacidad base baja y créditos que permiten superarla durante un tiempo; los créditos se recargan mientras el volumen está inactivo. Un límite de ráfaga puede parecer excelente en una prueba de cinco minutos y después caer a la capacidad base en mitad de una importación de base de datos o de una restauración grande. Si un proveedor anuncia una cifra alta, pregunte durante cuánto tiempo puede mantenerla.
Cómo comprobar qué recursos le asignó realmente su VPS
Desde el guest sólo puede ver la información que le proporciona el hipervisor.
lsblk -d -o NAME,ROTA,MODEL,SIZE
cat /sys/block/vda/queue/rotationalSustituya vda por el nombre de dispositivo lsblk que se muestra para el disco. ROTA y el archivo rotational leen 0 cuando se ha indicado al kernel que el dispositivo no es rotacional, y 1 cuando se ha indicado lo contrario. Un disco virtual establece ese indicador según lo que anuncia el hipervisor, por lo que describe el dispositivo virtual y no el hardware físico subyacente. MODEL suele estar vacío en un disco virtio como vda, o contener una cadena genérica como QEMU HARDDISK en un controlador SATA emulado. Los guests no están diseñados para ver el array del host, y no lo ven.
Por tanto, trate el indicador como una referencia y mida el resto. Ejecute una prueba aleatoria de 4k con fio sobre un archivo del volumen, con la profundidad de cola que realmente usa su aplicación, y manténgala el tiempo suficiente para consumir cualquier crédito de ráfaga. Comparativa correcta de un VPS contiene los comandos de fio y los errores habituales que producen cifras demasiado favorables.
Tres preguntas que debe hacerle a un proveedor antes de contratar
- ¿El almacenamiento es local al hipervisor o está conectado mediante la red? La respuesta determina la latencia mínima y qué ocurre con sus datos si falla un host físico. Un proveedor que responde con claridad ha tenido esto en cuenta.
- ¿Cuál es el límite de IOPS de mi volumen? Pida una cifra. «Ilimitado» y «nivel empresarial» no son cifras. Si realmente no existe un límite, pregunte qué impide que otro cliente del mismo host consuma toda la cabina durante su ventana de copias de seguridad.
- ¿Ese límite es sostenido o permite ráfagas? Si permite ráfagas, pida el rendimiento de referencia y la duración de la ráfaga. El rendimiento de referencia es el valor con el que funcionará su tarea nocturna, por lo que debe usarlo para planificarla.
¿La memoria flash se desgasta y es un problema para usted?
Las celdas flash aceptan un número limitado de ciclos de escritura, por lo que las unidades publican una clasificación de resistencia en TBW (terabytes escritos) o DWPD (escrituras de la unidad por día). La unidad distribuye las escrituras de forma uniforme entre sus celdas; este proceso se denomina nivelación del desgaste. También mantiene bloques de reserva para sustituir las celdas que fallen. En un VPS, el desgaste es responsabilidad del proveedor: supervisa los contadores SMART de sus propias unidades y sustituye el hardware antes de que se agote la clasificación. Su problema es anterior a la memoria flash. Una unidad no es una copia de seguridad, y la redundancia de su volumen tampoco lo es, porque copia una eliminación con la misma fidelidad que copia los datos.
La decisión que realmente está tomando es el precio por gigabyte. La memoria flash cuesta más por gigabyte que los discos magnéticos, por lo que un plan SSD suele ofrecer menos capacidad que un plan con disco duro por el mismo precio. Si necesita mucho espacio para contenido multimedia o archivos, mantenga pequeño el volumen rápido y coloque el volumen principal en un almacenamiento más barato. Este también es el enfoque adecuado para mantener las copias de seguridad fuera del servidor. Para ver cómo encaja el almacenamiento en el resto de la factura, el coste real de un VPS desglosa cada concepto.
FAQ
¿Un VPS con SSD es lo mismo que un VPS con NVMe?
Todos los VPS con NVMe son VPS con SSD, porque las unidades NVMe usan memoria flash. Lo contrario no se cumple. Un plan anunciado como «SSD» puede usar un SSD SATA, que es memoria flash conectada mediante una interfaz diseñada para discos mecánicos, con una cola de 32 comandos y un límite cercano a 550 MB/s. Ambos son mucho más rápidos que un disco duro. Si la diferencia afecta a su carga de trabajo, pregunte al proveedor qué tipo de unidad usa el plan en lugar de deducirlo por el nombre.
¿Un VPS con SSD hace que mi sitio web sea más rápido?
Acelera las operaciones de disco, y sólo esas operaciones. Una página que ejecuta varias consultas a la base de datos por petición responde más rápido, porque esas consultas y sus confirmaciones generan operaciones de E/S aleatorias pequeñas. Una página que se sirve desde la memoria o desde una caché no accede al disco durante el envío, por lo que el cambio es mínimo. Mida qué parte de la petición es lenta antes de pagar por almacenamiento para intentar solucionarlo.
¿Cómo puedo comprobar si mi VPS realmente usa almacenamiento SSD?
Desde el sistema invitado no puede verificar el hardware físico. lsblk -d -o NAME,ROTA muestra lo que anuncia el dispositivo virtual, y el hipervisor decide ese valor, por lo que un 0 es un indicio, no una prueba. La comprobación práctica consiste en realizar una medición: ejecute fio con una carga de trabajo de lectura aleatoria de 4k durante varios minutos y revise la latencia indicada. Las lecturas aleatorias de un solo dígito en milisegundos apuntan a discos mecánicos o a un volumen de red congestionado. Las latencias de decenas de microsegundos apuntan a memoria flash local.
¿El almacenamiento SSD conectado por red es peor que el almacenamiento NVMe local?
Es más lento por operación y falla de otra forma. El tiempo de ida y vuelta de la red se añade a cada lectura y escritura, por lo que la latencia es mayor aunque ambos tipos de almacenamiento usen memoria flash. A cambio, los datos no residen en un único host físico. Por eso, un fallo del host no se lleva consigo el volumen, y el proveedor puede realizar instantáneas y migraciones en vivo con mayor facilidad. Elija memoria flash local para una base de datos sensible a la latencia. Elija almacenamiento de red cuando la supervivencia del volumen sea más importante que unos microsegundos.