Estoy tratando de estimar los requisitos de IOPS de mi aplicación que se ejecuta en CentOS 6.2 de 32 bits. Comencé a tomar algunas medidas en una máquina con discos SATA y estoy bastante confundido acerca de la diferencia entre IOPS y tps medidos por sar.
Según wikipedia, el disco SATA debe realizar 75-100 IOPS. La utilidad ioping parece confirmar esto para la prueba de acceso aleatorio:
# ./ioping -R /dev/sda
--- /dev/sda (device 931.0 Gb) ioping statistics ---
279 requests completed in 3.0 s, 92 iops, 371.3 kb/s
min/avg/max/mdev = 2.7 ms / 10.8 ms / 130.8 ms / 7.9 ms
Pero los valores tps producidos por sar son mucho más altos (/ dev / sda):
# iostat 1
avg-cpu: %user %nice %system %iowait %steal %idle
0.17 0.00 2.02 14.86 0.00 82.96
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 559.00 0.00 142600.00 0 142600
dm-0 18433.00 0.00 147464.00 0 147464
dm-1 0.00 0.00 0.00 0 0
dm-2 0.00 0.00 0.00 0 0
Realmente no le importa si esta carga es secuencial (dd con varios tamaños de bloque) o acceso aleatorio (ioping), el valor sigue siendo el mismo. Pensé que tps en realidad es IOPS y esperaría que bajara con trozos más grandes transferidos.
Entonces, ¿qué significa exactamente el valor tps? ¿Y cómo se relaciona con IOPS?
fuente
Respuestas:
Las transacciones son comandos de E / S individuales (bloque de captación / bloque de escritura) que se escriben en el disco RAW (en su ejemplo dm-0). El kernel de linux intenta ordenar esos comandos en una secuencia mejor o intenta comprimirlos en comandos más eficientes (como: obtener dos bloques a la vez en lugar de obtener un bloque y obtener otro bloque justo después de este). Estas son las transacciones que salen al controlador de disco (tps para sda).
Los buenos controladores migth tienen una lógica propia que reduce aún más el número real de transacciones.
Una transacción podría ser el comando SCSI "escribir 2 GB en crontoller 1 target 2 lun 3 a partir del sector 22). Como puede ver, esto no se puede poner en correlación directa con los números de rendimiento.
Lo que buscas es la tasa de escritura sostenida. Tienes un par de factores limitantes aquí:
Supongo que su sistema es: Obtenga un buen controlador de incursión de hardware que sea capaz de realizar incursiones 10 o 5 y obtenga al menos 6 discos rápidos (15k).
Para uso profesional, use SAS en lugar de SATA.
fuente
También tenga en cuenta que el
TPS
valor representa lecturas y escrituras, puede usar el-x
interruptor para una vista extendida donde las lecturas y escrituras están separadas (r / s = leer IOPS, w / s = escribir IOPS):fuente