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.
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.