2010-04-11 13 views
10

El guión mysqltuner.pl me da la siguiente recomendación:recomendaciones Puesta a punto de mysqltuner.pl: query_cache_limit

query_cache_limit (> 1M, or use smaller result sets) 

y MySQL salida muestra el estado:

mysql> SHOW STATUS LIKE 'Qcache%'; 
+-------------------------+------------+ 
| Variable_name   | Value  | 
+-------------------------+------------+ 
| Qcache_free_blocks  | 12264  | 
| Qcache_free_memory  | 1001213144 | 
| Qcache_hits    | 3763384 | 
| Qcache_inserts   | 54632419 | 
| Qcache_lowmem_prunes | 0   | 
| Qcache_not_cached  | 6656246 | 
| Qcache_queries_in_cache | 55280  | 
| Qcache_total_blocks  | 122848  | 
+-------------------------+------------+ 
8 rows in set (0.00 sec) 

Desde la salida de estado anterior, ¿cómo puedo juzgar ¿Se necesita o no el aumento sugerido en query_cache_limit?

Respuesta

18

Su mejor opción es instalar algún tipo de arnés de prueba que ejecute una carga realista (definida por su escenario) en su base de datos, y luego ejecutar esa prueba contra MySql con diferentes configuraciones. El afinamiento es un arte en sí mismo que es muy difícil dar una respuesta completa sin conocer sus necesidades exactas.

De http://dev.mysql.com/tech-resources/articles/mysql-query-cache.html:

El contador Qcache_free_memory proporciona una visión a libre la memoria de la memoria caché. Las cantidades bajas observadas frente a total asignadas para la memoria caché pueden indicar una memoria caché de tamaño inferior, que puede ser solucionada al alterar la variable global query_cache_size.

Qcache_hits y Qcache_inserts espectáculos el número de veces que una consulta se servicio desde la antememoria y el número de consultas se han insertado en el caché. Las bajas proporciones de visitas a las inserciones indican poca reutilización de consultas o una configuración demasiado baja de query_cache_limit, que sirve para gobernar la RAM dedicada a cada entrada de caché de consulta individual . Los grandes conjuntos de resultados de consulta de requerirán configuraciones más grandes de de esta variable.

Otro indicador de la mala reutilización de consultas es un valor creciente Qcache_lowmem_prunes . Esto indica con qué frecuencia MySQL tuvo que eliminar consultas del caché para hacer uso de las declaraciones entrantes. Otras razones para un número creciente de Qcache_lowmem_prunes son una caché de tamaño insuficiente, que no puede sostener el cantidad necesaria de sentencias SQL y conjuntos de resultados, la memoria y la fragmentación en la memoria caché que puede ser aliviado mediante la emisión de un FLUSH QUERY CACHE declaración. Puede eliminar todas las consultas de la memoria caché con el comando RESET QUERY CACHE.

El Qcache_not_cached contador proporciona penetración en el número de instrucciones ejecutadas en MySQL que no eran cacheables, ya sea debido a ser una declaración no SELECT o ser excluido explícitamente de entrada con un toque SQL_NO_CACHE.

Tus golpes-a-insertos relación es algo así como una y quince o 6%, lo que parece que los ajustes podrían hacer con un poco de ajuste fino (aunque, como ya he dicho, usted es el mejor juez de que a medida que conozca mejor sus requerimientos).