Do me a favor! Não confie em Buffer Cache Hit Ratio

Olá pessoal,

Durante muito tempo houve e acredito que ainda há um equivoco sobre esse contador Buffer Cache Hit Ratio que está presente dentro da classe Buffer Manager. De acordo com o proprio Books Online a definição para esse contador é:

Percentage of pages found in the buffer cache without having to read from disk. The ratio is the total number of cache hits divided by the total number of cache lookups since an instance of SQL Server was started. After a long period of time, the ratio moves very little. Because reading from the cache is much less expensive than reading from disk, you want this ratio to be high. Generally, you can increase the buffer cache hit ratio by increasing the amount of memory available to SQL Server.

O que poucos sabem e por isso eu aconselho a ler este artigo do Jonathan Kehayias(Twitter|Blog) sobre Buffer Cache Hit Ratio é que o Buffer Cache Hit Ratio será um dos últimos a responder sobre uma pressão de memória, devido ao mecanismo read-ahead que então mantem o buffer cache populado com as paginas necessárias e com isso esse contador não varia seu valor.

Se você estiver procurando por pressão de memória, eu aconselho você a acompanhar os seguintes contadores:

  • Buffer Manager: Page Life Expectancy
  • Buffer Manager: Checkpoint pages/sec
  • Buffer Manager: Page reads/sec
  • Buffer Manager: Readahead pages/sec
  • Buffer Manager: Lazy Writes/sec

Com esses contadores você pode ter uma melhor visão se o SQL Server está precisando de mais memória ou não. Só para todos terem uma ideia de como esse contador Buffer Cache Hit Ratio mascara o problema, vejam só a imagem abaixo.

image

O contador do Buffer Cache Hit Ratio sempre em 100%, porém o Life Page Expectancy com um valor muito baixo, e o contador Page reads/sec muito alto. Isso com certeza me diz algumas coisas no ambiente, mas se estivesse olhando apenas para o Buffer Cache Hit Ratio, acharia que tudo estivesse normal.

Espero que tenham gostado e por hoje é isso.

Abraços,
Marcos Freccia

Sobre Marcos Freccia

MVP em SQL Server (Data Plataform) , especialista em SQL Server, e atualmente trabalhando com Microsoft Azure!

Publicado em maio 2, 2013, em Administração, SQL Server, VirtualPass. Adicione o link aos favoritos. 1 comentário.

  1. Isso mesmo ! Ja vi caso de PLE com com valor menor que 200 e o Buffer Cache lá em cima, colado nos 100 !
    Bom post !

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: