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

Advertisements

About Marcos Freccia

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

Posted on May 2, 2013, in Administração, SQL Server, VirtualPass. Bookmark the permalink. 1 Comment.

  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 !

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: