Solución 1:
Las transacciones son comandos IO únicos (bloque de búsqueda/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 mejor secuencia 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 van al controlador de disco (tps para sda).
Los buenos controladores pueden tener una lógica propia que reduzca 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 objetivo 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 busca es la tasa de escritura sostenida. Tienes un par de factores limitantes aquí:
- conexión de cliente:si la red es Gigabit, nunca tendrá más de 100 MB/s de entrada
- controlador de disco:si se trata de un controlador de 3 Gb, nunca tendrá más de 300 MB/s de rendimiento
- disco:busque el valor del fabricante para obtener un rendimiento de escritura sostenido
- Sistema de archivos:hay un poco de sobrecarga ya que el sistema operativo necesita procesar datos; pruébelo en un disco RAM...
Mi conjetura para su sistema es:Consiga un buen hardware-raid-controller que sea capaz de hacer raid 10 o 5 y obtenga al menos 6 discos rápidos (15k).
Para uso profesional, utilice SAS en lugar de SATA.
Solución 2:
Tenga también en cuenta que TPS
el valor representa lecturas y escrituras, puede usar -x
interruptor para vista extendida donde las lecturas y las escrituras están separadas (r/s =leer IOPS, w/s =escribir IOPS):
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
vda 0.07 24.65 0.30 18.95 30.65 330.22 18.74 0.07 3.61 0.98 1.89