log file sync
Descrição do evento
O evento Log File Sync ocorre quando uma sessão aguarda a confirmação de que os dados no log buffer foram gravados no disco pelo processo LGWR (Log Writer). Isso geralmente acontece durante operações de COMMIT
ou ROLLBACK
, garantindo que todas as transações sejam gravadas de forma persistente nos redo logs.
Impacto no banco de dados
Atrasos em Transações: Operações que exigem COMMIT
podem ficar lentas, impactando aplicações OLTP (Online Transaction Processing).
Redução do Throughput: Alta latência nesse evento pode limitar o número de transações por segundo (TPS).
Dependência do Evento Log File Parallel Write
: O tempo de espera neste evento depende diretamente da rapidez com que os redo logs são gravados no disco.
Causas comuns
Alta Frequência de Commits:
Aplicações que realizam muitos COMMITs
, especialmente em transações pequenas, aumentam a carga no log buffer e no LGWR.
Desempenho Lento do Disco: O subsistema de I/O onde os redo logs estão armazenados pode ser incapaz de acompanhar o volume de gravações.
Tamanho Pequeno dos Redo Logs: Redo logs pequenos geram ciclos de gravação frequentes, aumentando a carga no LGWR.
Concorrência de Sessões: Muitas sessões aguardando gravações simultâneas podem causar contenção no log buffer e no LGWR.
Como reduzir ou resolver o evento
Reduza a Frequência de Commits: Analise a aplicação para agrupar várias operações em uma única transação. Evite COMMIT desnecessários dentro de loops.
Melhore o Desempenho do Subsystem de I/O: Use discos rápidos, como SSDs ou sistemas NVMe, para armazenar redo logs. Dedique discos exclusivamente para os redo logs, evitando competição com outras operações de I/O.
Ajuste a Configuração dos Redo Logs: Aumente o tamanho dos redo logs para reduzir a frequência de gravações. Configure múltiplos redo log groups para balancear a carga.
Aumente o Tamanho do Log Buffer: Ajuste o parâmetro LOG_BUFFER para garantir espaço suficiente para operações de transações intensivas.
Planeje Operações de Alta Carga: Realize operações intensivas em gravação, como cargas de dados e backups, fora de horários de pico.
V$SYSTEM_EVENT: Identifique o tempo total gasto no evento log file sync.
V$SESSION_WAIT: Monitore sessões que estão aguardando por este evento.
AWR Reports: Analise o impacto ao longo do tempo e identifique padrões.
V$LOG e V$LOGFILE: Consulte informações sobre redo logs e frequência de gravações.
V$SYSMETRIC_HISTORY: Monitore métricas de I/O e tempo de espera para gravações no log.