Quiero saber sobre IOPS (E / S por segundo) y cómo influye en la operación de DB CRUD

8

Quiero obtener un servidor dedicado para mi base de datos (MySQL) que ejecute InnoDB Engine. Existe esta opción en la capacidad de InnoDB que puede definir los IOPS en ella. Digamos que tengo un disco duro SATA de 72K-RPM que permite 100 IOPS. ¿Significa que mi base de datos puede ejecutar 100 consultas SQL concurrentes por segundo solamente o significa 100 lecturas o escrituras simples en 1 segundo? ¿Cómo un DB puede manejar 3000 consultas por segundo que se inician en un hardware como ese? Estoy un poco confundido, así que explícamelo. Quiero obtener más de 200 consultas de ejecución en mi servidor dedicado.

Alex
fuente

Respuestas:

10

El IOPS de un disco duro le indica cuántas operaciones de E / S puede realizar ese disco en particular por segundo. Dado que las lecturas aleatorias, las escrituras aleatorias, las lecturas secuenciales y las escrituras secuenciales tienen características de rendimiento diferentes, si observa un solo número, eso implica que este es un promedio ponderado de estos cuatro números que representa cierta carga de trabajo. Esa carga de trabajo puede o no ser similar a la carga de trabajo que una base de datos realmente realizaría, por lo que su sistema podría terminar obteniendo más o menos operaciones por segundo.

Una consulta SQL supondría, suponiendo que realiza E / S físicas (muchas consultas no necesitan realizar ninguna E / S porque simplemente están leyendo datos que ya están en la memoria de la base de datos o en la memoria caché del sistema de archivos o en la memoria caché SAN) para realizar muchas operaciones de E / S. Si sus consultas realmente están haciendo E / S físicas, una sola consulta podría hacer fácilmente 100 operaciones de E / S por segundo. Potencialmente, podría tener 100 consultas ejecutándose simultáneamente, cada una de las cuales solo puede realizar 1 operación de E / S física por segundo, pero eso probablemente significaría que las 100 consultas tomarán una cantidad inaceptable de tiempo para regresar.

Siendo realistas, si necesita manejar 3000 consultas por segundo, deberá asegurarse de que la gran mayoría de sus consultas no necesiten hacer E / S físicas asegurándose de que los datos que necesitan estén almacenados en caché (preferiblemente por la base de datos). Y deberá distribuir las E / S en un número relativamente grande de unidades (con una configuración RAID adecuada) para aumentar el total de IOPS que puede realizar el sistema. Este tipo de planificación de capacidad requerirá una comprensión razonablemente buena de su aplicación, sus datos, cuánta E / S es probable que realmente necesite cada consulta, etc. Y es probable que necesite equilibrar el costo con el rendimiento: agregar memoria o agregar unidades o cambiar la configuración RAID implicará diferentes compensaciones entre el costo, el rendimiento y el espacio disponible que tendrá que ser considerado.

Justin Cave
fuente