Rendimiento
El rendimiento es útil cuando haces cosas como copiar archivos. Cuando estás haciendo casi cualquier otra cosa, son lecturas y escrituras aleatorias en el disco que te limitarán.
IOPS
IOPS generalmente especifica el tamaño de cada paquete de datos. Por ejemplo, AWS gp2 puede hacer 10,000 IOPS con un tamaño de carga útil de 16 KiB . Eso se multiplica a 160MiB / seg. Sin embargo, es poco probable que use el tamaño de la carga útil todo el tiempo, por lo que el rendimiento real probablemente sea menor. NB KiB es 1024 bytes, KB es 1000 bytes.
Debido a que IOPS especifica un tamaño de paquete que también le brinda un rendimiento total. Mientras que el alto rendimiento no significa que tenga IOPS altos.
Escenarios
Considere estos escenarios:
- Arrancando tu PC. Considere la diferencia entre un SSD y un disco giratorio en su computadora, que es algo con lo que muchas personas tienen experiencia de primera mano. Con un disco giratorio, el tiempo de arranque puede ser de un minuto, mientras que con un SSD puede reducirse a 10-15 segundos. Esto se debe a que un mayor IOPS conduce a una menor latencia cuando se solicita información. El rendimiento del disco giratorio es bastante bueno, 150 MB / s, aunque es probable que el SSD sea más alto, no es por eso que sea más rápido: es la menor latencia para devolver información.
- Ejecutando una actualización del sistema operativo. Está yendo por todo el disco, agregando y parcheando archivos. Si tuviera un IOPS bajo, sería lento, independientemente del rendimiento.
- Ejecutar una base de datos, por ejemplo, seleccionar una pequeña cantidad de datos de una gran base de datos. Leerá del índice, leerá de una serie de archivos y luego devolverá un resultado. Nuevamente, va por todo el disco para recopilar la información.
- Jugar un juego en tu PC. Es probable que cargue una gran cantidad de texturas de todo el disco. En este caso, es probable que se requiera IOPS y rendimiento.
Cinta LTO
Considere por un momento un sistema de copia de seguridad en cinta. LTO6 puede hacer 400 MB / seg, pero (supongo que aquí) probablemente ni siquiera puede hacer un IOP aleatorio, podría ser tan bajo como segundos por IOP. Por otro lado, probablemente pueda hacer una gran cantidad de IOPS secuenciales, si un IOPS se define como leer o escribir un paquete de datos en una cinta.
Si intentara arrancar un sistema operativo sin cinta, tomaría mucho tiempo, si funcionara. Es por eso que IOPS suele ser más útil que el rendimiento.
Para comprender un dispositivo de almacenamiento, es probable que desee saber si es IOPS aleatorio o secuencial, y el tamaño de IO. De eso se puede derivar el rendimiento.
AWS
Tenga en cuenta que AWS publica tanto IOPS como cifras de rendimiento para todos sus tipos de almacenamiento, en esta página . El SSD de propósito general (gp2) puede hacer 10,000 16KiB IOPS, lo que da un máximo de 160MB / seg. Los IOPS aprovisionados (io1) son 20,000 16KiB IOPS, lo que da un máximo de 320MB / seg.
Tenga en cuenta que con los volúmenes gp2 obtiene 30IOPS por GB aprovisionado, por lo que para obtener 10,000 IOPS necesita un volumen de 333.33GB. No recuerdo si los volúmenes io1 tienen una limitación similar (ha pasado un tiempo desde que hice los exámenes asociados donde se prueba ese tipo de cosas), pero sospecho que sí, y si es así, es probable que sea 60IOPS por GB.
Conclusión
El alto rendimiento secuencial es útil, y en algunos casos es el factor limitante para el rendimiento, pero es probable que un IOPS alto sea más importante en la mayoría de los casos. Por supuesto, aún necesita un rendimiento razonable independientemente de IOPS.