Tuesday, September 3, 2013

MySQL Optimización Sugerencia - thread_cache_size

Original post: http://anothermysqldba.blogspot.com/2013/09/mysql-optimization-tip-threadcachesize.html

Recientemente me encontré con una base de datos MySQL que fácilmente se ejecuta con 300 a 600 filas de la processlist. Las conexiones Max se estableció fácilmente más del doble de esta cantidad también. Este era un montaje que yo no estoy de acuerdo con. Me llamaron porque también demostró ser no estar funcionando muy bien. Así que aquí están algunos de mis pensamientos sobre el proceso he descubierto.

En mi opinión la mayoría de bases de datos MySQL en uso no se necesita una conexión Max o 1500 o más. Cuantas más conexiones que permiten la mayor carga de traer a su servidor. Utilice las conexiones de manera eficiente.
En segundo lugar, entender el% de Threads_created frente a las conexiones utilizadas. Usted podría considerar esto los hilos creados tasa de éxito. BTW .. Esta información no es nueva, esta es la información que se ha entendido en la comunidad desde hace algún tiempo. No pretendo presentar esto en ninguna otra manera de tratar de ayudar a otros. Así que haga lo siguiente para entender su actual%
estado como "Threads_created 'mostrará;
set @ Threads_created = <resultan de consulta anterior>;
mostrar el estado como "Conexiones";
@ configurar conexiones = <resultan de consulta anterior>;
seleccionar 100 - ((@ Threads_created / @ Conexiones) * 100) como "Threads_created% de las conexiones" \ G



Así que si su ejecutar el proceso anterior ¿cuál es su porcentaje? ¿Quieres que esto es lo más cercano a 100 como sea posible. Así, por ejemplo, el servidor que encontré hace poco tenía un% inferior al 10%. Entonces, ¿cómo se puede arreglar esto y aumentar su%?


La variable thread_cache_size tiene un valor predeterminado de 0. Si usted comienza a notar que su proceso de crecer y pero las consultas no son bloqueados por bloqueos y un largo etc, entonces usted debe comprobar su "Threads_created% de las conexiones", como se mencionó anteriormente. Es probable que el% será baja. Puede aumentar el% y mejorar drásticamente el rendimiento de su base de datos mediante la búsqueda del punto óptimo que se adapte a su entorno de servidor. El thread_cache_size se puede cambiar en un entorno real. Así que esto le permite establecer la variable luego monitorear el valor de estado de la "Threads_created" (ver más arriba para obtener el valor). Si esto sigue aumentando en valor, entonces seguirá planteando la thread_cache_size . Normalmente prefiero para elevar el valor por 25 a la vez por unos pocos y luego baje a 500 a la vez. A menudo la casilla "Threads_created% de las conexiones" y la "Threads_created '. Una vez que te acercas al punto dulce se dará cuenta de los% que ganar y el processlist para comenzar a disminuir en filas. Típicamente un ajuste más del thread_cache_size le conseguirá en el punto dulce.

Todos los servidores y el entorno es diferente.
Algunos servidores pueden ser un 98% con un thread_cache_size de 50, mientras que otros tienen un 98% con el thread_cache_size establecido en 15.000. El máximo es de 16384.

Así que si nada más ... averiguar lo que su porcentaje es primero y luego mirar a hacer ajustes.