El ajuste de la configuración de MySQL es un componente importante de la gestión de bases de datos implementada por administradores y profesionales de bases de datos. Su objetivo es configurar la base de datos para que se adapte a su hardware y carga de trabajo. Pero más allá del ámbito de la gestión de bases de datos, la utilidad del ajuste de la configuración de MySQL se ignora en gran medida.
Presumimos que el ajuste de MySQL puede afectar significativamente el rendimiento de las aplicaciones web. Si podemos mostrar el valor del ajuste de MySQL, creemos que las empresas y organizaciones podrían estar interesadas en incorporar esta práctica a mayor escala.
La mejor manera de mejorar el rendimiento de las aplicaciones mediante ajustes es con un enfoque integral que aborde las siguientes áreas:
Muchos desarrolladores experimentados no ven el ajuste del rendimiento de la base de datos como una oportunidad para mejorar el rendimiento de sus aplicaciones porque saben poco sobre este dominio. Dedican mucho tiempo a optimizar el código base, pero llega un punto en el que ya no produce un resultado valioso por el tiempo y la energía invertidos. Nuestra investigación sobre cómo el ajuste de MySQL afecta positivamente el rendimiento de aplicaciones web populares de código abierto tiene como objetivo mostrar este hecho a los desarrolladores.
Nuestro procedimiento de prueba para Laravel Aimeos nos permite comparar el rendimiento de la aplicación antes y después de la configuración utilizando datos inicializados. Al ejecutar primero la prueba con la configuración predeterminada, obtenemos valiosos resultados de control para comparar la configuración ajustada.
Utilizamos el siguiente proceso para preparar y probar cada aplicación:
Publicamos pruebas de JMeter, estado de MySQL y variables de MySQL durante las pruebas en Github.
Las métricas que analizamos durante esta investigación son:
Recopilamos métricas de utilización de CPU y consultas por segundo para comparar la carga de trabajo.
Aimeos Laravel es un popular marco de aplicación web de comercio electrónico para crear tiendas en línea, mercados y aplicaciones B2B. Con Aimeos, los usuarios pueden crear tiendas de comercio electrónico basadas en API para Laravel que pueden escalar para admitir más de mil millones de artículos. Está disponible en más de 30 idiomas y tiene más de 300.000 instalaciones.
Para probar Aimeos, comenzamos la prueba con diez usuarios, pero tuvimos que disminuir el número de usuarios porque no pudimos terminar la prueba con la configuración predeterminada.
Sembramos la base de datos con 500 Mb de datos.
La duración de nuestra prueba fue de 10 minutos.
Nosotros usamos:
La configuración utilizada para Aimeos Laravel es la siguiente:
query_cache_type=1 query_cache_size=134217728 query_cache_limit=16777216 query_cache_min_res_unit=4096 thread_cache_size=0 key_buffer_size=8388608 max_allowed_packet=1073741824 sort_buffer_size=2097152 read_rnd_buffer_size=262144 bulk_insert_buffer_size=8388608 myisam_sort_buffer_size=8388608 innodb_buffer_pool_chunk_size=134217728 innodb_buffer_pool_size=805306368 max_heap_table_size=16777216 tmp_table_size=16777216 join_buffer_size=8388608 max_connections=151 table_open_cache=2048 table_definition_cache=1408 innodb_flush_log_at_trx_commit=1 innodb_log_file_size=201326592 innodb_log_buffer_size=16777216 innodb_write_io_threads=4 innodb_read_io_threads=4 innodb_file_per_table=1 innodb_flush_method=O_DIRECT innodb_thread_concurrency=0 innodb_purge_threads=4 optimizer_search_depth=0 thread_handling=pool-of-threads thread_pool_size=2
Los resultados de las pruebas de Aimeos Laravel mostraron mejoras dramáticas en el rendimiento entre las configuraciones predeterminadas y optimizadas.
La optimización de MySQL resultó en una mejora significativa en el tiempo de respuesta promedio del servidor, que se redujo de 1,4 segundos a menos de 800 milisegundos.
El tiempo de respuesta (latencia) cayó un 42% y la utilización promedio de CPU un 86%, mientras que las consultas por segundo aumentaron un increíble 291%, de De 12 a 35 consultas por segundo.
El gráfico de los resultados está disponible a continuación:
Tiempo de respuesta (ms), configuración de MySQL optimizada de Aimeos frente a la predeterminada
Utilización de CPU (%), configuración MySQL optimizada de Aimeos frente a la predeterminada
Consultas por segundo, configuración MySQL optimizada de Aimeos frente a la predeterminada
Nos asociamos con los desarrolladores de Laravel, Gevorg Mkrtchyan y Sergey Sinitsa de la empresa Initlab, para investigar esta línea de cuestionamiento y estamos muy agradecidos por su experiencia.
Sergey implementó Aimeos y Gevorg preparó el código para inicializar la base de datos.
Nuestro procedimiento de prueba, utilizando Aimeos Laravel, mostró mejoras dramáticas en Tiempo de respuesta (latencia), Utilización de CPU y Consultas por segundo después de configurar la base de datos. configuración del servidor.
Tiempo de respuesta (latencia) cayó entre un 42%, mientras que Utilización de CPU cayó un 86%. Las consultas por segundo aumentaron en Aimeos Laravel 500MB en un 291%.
En conclusión, el ajuste de MySQL es un aspecto esencial de la gestión de bases de datos que puede tener un impacto significativo en el rendimiento de las aplicaciones Laravel. Las aplicaciones web con un rendimiento deficiente pueden provocar mayores tiempos de carga de la página, un manejo lento de las solicitudes y una mala experiencia del usuario, lo que puede afectar negativamente al SEO y las ventas. Al optimizar el rendimiento de las aplicaciones web con ajuste de MySQL, las empresas y organizaciones pueden aumentar las ventas, las páginas vistas, las tasas de conversión y las clasificaciones SEO.
Con esta investigación, esperamos mostrar el valor del ajuste de MySQL como un medio para mejorar el rendimiento de las aplicaciones Laravel y alentar a los desarrolladores de Laravel a considerar esta práctica al optimizar el rendimiento de sus aplicaciones.
Utilizando herramientas como Releem, las bases de datos se pueden configurar automáticamente para un rendimiento óptimo, lo que reduce la carga de los equipos de desarrollo de software.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3