Рекомендации по настройке из mysqltuner.pl: query_cache_limit

mysqltuner.pl script дает мне следующую рекомендацию:

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

И вывод состояния MySQL показывает:

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)

Из вышеизложенного состояния, как я могу судить о необходимости или не рекомендуется увеличение query_cache_limit?

Ответ 1

Лучше всего настроить какой-то тестовый жгут, который выполняет реалистичную (определенную вашим сценарием) нагрузку на вашу базу данных, а затем запустить этот тест с MySql с разными настройками. Тюнинг - это само по себе само по себе, что очень сложно дать весь охватывающий ответ, не зная ваших конкретных потребностей.

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

Счетчик Qcache_free_memoryдает представление о свободном кеше Память. Низкое количество наблюдений против общего количества выделенные для кеша, могут указывать низкоуровневый кеш, который может быть исправлено путем изменения глобального переменная query_cache_size.

Qcache_hits и Qcache_inserts показывает количество раз, когда запрос был обслуживается из кеша и сколько запросы были вставлены в кэш. Низкие отношения хитов к вставкам указывают на малое повторное использование запроса или слишком низкая установка query_cache_limit, который служит для управлять оперативной памятью, предназначенной для каждого запись отдельного запроса. большой наборы результатов запроса потребуют больших настройки этой переменной.

Еще один индикатор плохого повторного использования запроса возрастает Qcache_lowmem_prunesстоимость. Это указывает, как часто MySQL пришлось удалять запросы из кеша использовать для входящих сообщений. Другие причины увеличения числа из Qcache_lowmem_prunes являются низкоуровневый кеш, который не может удерживать необходимое количество операторов SQL и наборов результатов и фрагментации памяти в кеше, который может быть уменьшен путем выпуска FLUSH QUERY CACHEвыражение. Вы можете удалить все запросы из кеша с помощью RESET QUERY CACHE.

Счетчик Qcache_not_cached обеспечивает понимание количества заявлений выполненных против MySQL, которые не были кэш-памяти, из-за того, что инструкция не SELECT или явно запрещен SQL_NO_CACHE.

Соотношение ваших обращений к вставкам - это что-то вроде 1:15 или 6%, поэтому ваши настройки могут быть связаны с некоторыми финалистами (хотя, как я уже сказал, вы лучший судья этого, поскольку вы знаете свои требования лучше всего).