Pular para o conteúdo principal

free buffer waits

Descrição do evento

O evento Free Buffer Waits ocorre quando uma sessão tenta alocar um buffer no Buffer Cache, mas não há buffers livres disponíveis para uso. Isso significa que o banco de dados está aguardando que buffers ocupados sejam liberados, limpos ou gravados no disco pelo DBWR (Database Writer). Esse evento geralmente está relacionado a gargalos no gerenciamento de memória ou em operações de I/O.

Impacto no banco de dados

Desempenho Reduzido: A alta frequência desse evento pode causar lentidão em transações ou consultas, já que as sessões precisam esperar por buffers disponíveis.
Pressão no I/O: Indica que o sistema de armazenamento pode estar sobrecarregado, resultando em atrasos na liberação de buffers.

Causas comuns

Tamanho insuficiente do Buffer Cache: O tamanho do DB_CACHE_SIZE é inadequado para a carga de trabalho atual, levando a uma alta reutilização de buffers ocupados.

Alta taxa de DML ou consultas intensas: Operações de leitura ou escrita intensas podem esgotar os buffers disponíveis rapidamente.

DBWR lento: O processo Database Writer não está gravando buffers modificados no disco rápido o suficiente.

I/O lento: O subsistema de armazenamento está com alta latência, dificultando a liberação de buffers.

Como reduzir ou resolver o evento

Aumentar o Buffer Cache: Ajuste o parâmetro DB_CACHE_SIZE para um valor maior, aumentando a quantidade de buffers disponíveis. Monitore o impacto no uso de memória do sistema antes de aplicar o ajuste.

Melhorar o desempenho de I/O: Use discos mais rápidos, como SSDs, para reduzir a latência do subsistema de armazenamento. Distribua os dados em tabelas e índices entre diferentes discos para balancear a carga de I/O.

Otimizar consultas e workload: Identifique consultas que realizam muitas leituras e otimize-as para reduzir a pressão no Buffer Cache. Particione tabelas grandes para dividir a carga de acesso.

Ajustar o desempenho do DBWR: Configure múltiplos processos DBWR para aumentar a taxa de gravação no disco. Use o parâmetro DB_WRITER_PROCESSES. Monitore a atividade do DBWR usando V$SYSSTAT para garantir que ele está funcionando corretamente.

Configurar páginas grandes: Use páginas grandes (large pages) para melhorar a eficiência de memória e o desempenho geral do Buffer Cache.

Diagnóstico no Oracle

V$SYSTEM_EVENT: Identifique a quantidade de tempo gasto no evento free buffer waits.
V$SESSION_WAIT: Monitore as sessões que estão enfrentando este evento.
AWR Reports: Analise o impacto do evento ao longo do tempo.
V$DB_CACHE_ADVICE: Avalie como ajustes no tamanho do Buffer Cache podem afetar o desempenho.

DB Izzie - Database Session

Database Session