MAIS

    MySQL Query Cache Size and Performance

    - Anúncio -
    - Anúncio -

     

    Definir MySQL query_cache_size a não mais do que cerca de 200 MB!

    Uma consulta MySQL tamanho do cache de 200 megabytes pode até ser muito grande! A chave é começar muito pequeno (talvez 20mb), em seguida, aumentar em pequenos incrementos enquanto tenta manter uma alta taxa de acertos do cache de consulta e também uma baixa quantidade de cache de consultas ameixas de pouca memória. Tudo isso sem definir o tamanho do cache de consulta do MySQL muito grande. Por quê?

    Porque, uma query_cache_size de 4 gigabytes é um bom exemplo de como o cache de consulta pode prejudicar o desempenho ao tentar escalar com o aumento do número de consultas em cache. Demasiado grandes tamanhos de cache de consulta vai levar a degradação do desempenho significativo devido sobrecarga necessária para gerenciar o cache. Consultas em cache tem que tirar um bloqueio exclusivo na cache de consultas do MySQL. Além disso, qualquer insert, update, delete, ou outras modificações em uma tabela faz com que qualquer entrada relevante na cache de consulta para ser liberado. Isso acontece mesmo quando há consulta de espaço livre em cache disponível . Como resultado, maior o cache de consultas, mais o tempo sistema será usado para essas liberações, até gerenciamento de cache, eventualmente, nega todos os benefícios do MySQL query cache e, em vez começar a corroer o desempenho do banco de dados.

    Mesmo com um cache de consulta bem sintonizado, há ainda cerca de 10% a 15% overhead necessário para mantê-lo. Portanto, o seu cache de consultas atingiu percentual taxa ((Qcache_hits / (Qcache_hits + Qcache_inserts + Qcache_not_cached)) * 100) deve ser o mais próximo possível de 100% possível. Sendo esse o percentual de consultas atendidas pela cache em vez de ser re-executado pelo banco de dados repetidamente. Claro, qualquer coisa abaixo de 10% ou 20% significa que seu cache de consultas provavelmente está fazendo mais mal do que bem para o desempenho. Normalmente eu vou manter cache de consultas desativada se a taxa de acerto é inferior a 50%.

    Então, novamente, por que é recomendado para manter query_cache_size do MySQL pequeno? Bem, aqui está o manual de referência do MySQL diz sobre o dimensionamento do cache de consulta:

    “Seja cauteloso sobre o dimensionamento do cache excessivamente grande de consulta, o que aumenta a sobrecarga necessária para manter o cache, possivelmente, além do benefício de permitir que ele. Tamanhos em dezenas de megabytes são geralmente benéfico. Tamanhos em centenas de megabytes pode não ser. “

     

    Agora, devido a todas as variações de configurações do MySQL, especificações de hardware eo fato de que os bancos de dados são todos diferentes na demanda, tipos de consulta, etc etc, você vai ter que brincar com sua configuração e utilizar esta recomendação 200mb como uma diretriz para encontrar o seu query_cache_size doce local. A MySQL tamanho do cache de consulta de 200 megabytes pode ser rápido em um servidor e começar a desacelerar as coisas em outra. Como tal, você vai precisar para investigar, definir o seu registro de consulta lenta para um segundo ou configuração log de consulta completa por alguns minutos ou horas (dependendo do quão ocupado o seu banco de dados é) e ver quanto tempo é gasto na consulta do cache.

    Consulta de caching pode dar melhorias significativas de desempenho, quando utilizado corretamente e / ou em conjunto com o Memcached ou Redis cache. Como mencionado, a chave é, quando você começa a ajustar o tamanho do cache de consultas do MySQL, começar pequeno . Você também deve ajustar o seu “query_cache_limit” porque o padrão de 1 megabyte pode ser muito grande e permitir que seu cache para encher-se rapidamente causando ameixas cache de consultas aleijão! Sim, o dimensionamento do cache de consultas muito pequeno também pode ser um assassino de desempenho. Este é o caso, especialmente se você tem milhares de ameixas cache de consulta que está sendo executada. Além disso, ter um olhar para o ajuste do “query_cache_min_res_unit” parâmetro de ajuste para combater a fragmentação de cache e reduzir ameixas se isso é um problema. Muitas vezes você não será capaz de armazenar todas as consultas armazenáveis ??no cache de consulta, mas você ainda pode fazer bom uso dela. O teste, teste, teste!

    Com relação ao desempenho de aplicações web PHP, com o WordPress, por exemplo, estou usando plugins de cache sobre os blogs que gerencio que ajuda a reduzir o # de consultas que fazê-lo através de consulta cache. Em seguida vou estar escrevendo sobre o que eu acho que são os melhores plugins WordPress cache que funcionam bem neste sentido. Inscreva-se aqui.

    MySQL Query Cache de configuração e Monitoramento

    Aqui está uma configuração de cache de consulta usado para hospedar um blog com total de cerca de 2 milhões de page views por mês:

     

    query_cache_type = 1
    query_cache_limit = 256K
    query_cache_min_res_unit = 2k
    query_cache_size = 80M

     

    Para se certificar de uso MySQL Query Cache está ativado:

    mysql> SHOW VARIABLES LIKE 'have_query_cache';

     

    Para monitorar consulta estatísticas de cache usar:

    	
    mysql> SHOW STATUS LIKE 'Qcache%';

     

    Se você não tem certeza do que fazer com as estatísticas retornadas, eu recomendo usar mysqltuner.pl . Este script vai ajudar você a evitar as armadilhas mais óbvias de desempenho do MySQL (incluindo cache de consultas dimensionamento) e levá-lo para onde, pelo menos, o seu banco de dados não está mal configurado.

     

    - Anúncio -

    Artigos recentes

    Continue lendo

    DEIXE UMA RESPOSTA

    Please enter your comment!
    Please enter your name here