martes, 9 de abril de 2019

A veces la base de datos lenta ... no es la base de datos ...

Hace poco me pidieron que viera por qué el MySQL 5 actualizado, .6 era más lento que el 5.5 anterior.

Así que empecé a hojear las variables y los cachés estándar, etc.

El caso de prueba era una rutina simple que tardó aproximadamente el doble de tiempo en ejecutarse en 5.6 que en 5.5.

Para agregar a la mezcla ... la versión 5.6 tenía el doble de Innodb_buffer_pool_size y, por supuesto, más RAM en general.

Así que empecé algunas pruebas con MySQLslap ...

Las pruebas Mysqlslap lo muestran más lento en 5.6

5.6:
mysqlslap --defaults-file =. /. my.cnf --concurrency = 150 --iterations = 130 -query = / test.sql --create-schema = applicationdata --verbose
Punto de referencia
Número promedio de segundos para ejecutar todas las consultas: 0.028 segundos
Número mínimo de segundos para ejecutar todas las consultas: 0.019 segundos
Número máximo de segundos para ejecutar todas las consultas: 0.071 segundos
Número de clientes ejecutando consultas: 150
Número medio de consultas por cliente: 1

5.5:
mysqlslap --defaults-file =. /. my.cnf --concurrency = 150 --iterations = 130 --query = / test.sql --create-schema = applicationdata --verbose
Punto de referencia
Número promedio de segundos para ejecutar todas las consultas: 0.015 segundos
Número mínimo de segundos para ejecutar todas las consultas: 0.011 segundos
Número máximo de segundos para ejecutar todas las consultas: 0.024 segundos
Número de clientes ejecutando consultas: 150
Número medio de consultas por cliente: 1


Todo esto va en contra de los puntos de referencia públicos.
http://dimitrik.free.fr/blog/archives/2013/02/mysql-performance-mysql-56-ga-vs-mysql-55-32cores.html

Así que revisé el nivel del disco -

5.6:
# dd if = / dev / zero of = test bs = 1048576 count = 2048
2048 + 0 registros en
2048 + 0 registros
2147483648 bytes (2.1 GB) copiados, 25.7401 s, 83.4 MB / s

# dd if = prueba de = / dev / null bs = 1048576
2048 + 0 registros en
2048 + 0 registros
2147483648 bytes (2.1 GB) copiados, 29.1527 s, 73.7 MB / s

5.5:
# dd if = / dev / zero of = test bs = 1048576 count = 2048
2048 + 0 registros en
2048 + 0 registros
2147483648 bytes (2.1 GB) copiados, 19.9214 segundos, 108 MB / s

# dd if = prueba de = / dev / null bs = 1048576
2048 + 0 registros en
2048 + 0 registros
2147483648 bytes (2.1 GB) copiados, 20.0243 segundos, 107 MB / s



Aquí los discos con 5.5 son más lentos, independientemente de MySQL. Entonces, en este caso ... Mire para arreglar la velocidad del disco ... MySQL estaba funcionando bien y funcionará.