Skip to main content

Checkpoint & WAL Statistics

The Checkpoint & WAL Statistics section analyzes checkpoint activity, Write-Ahead Log (WAL) generation and background writer performance during the report period. These metrics are critical for understanding write I/O pressure, recovery time and replication health.

AWR Checkpoint & WAL


Summary Cards

CardDescription
Total CheckpointsTotal number of checkpoints + frequency per hour
Avg Checkpoint DurationAverage checkpoint duration + maximum observed — highlighted orange if slow checkpoints detected
Total WAL GeneratedTotal WAL volume in bytes + average generation rate in MB/s
WAL Files ArchivedTotal WAL files archived + archive failure count — highlighted orange if failures detected

AWR Checkpoint & WAL


Checkpoint & WAL Activity Timeline

A bar chart showing checkpoint and WAL generation activity over the report period, making it easy to correlate checkpoint spikes with WAL volume peaks.

AWR Checkpoint & WAL


Tab 1 — Checkpoint Analysis

Per-snapshot breakdown of checkpoint activity.

ColumnDescription
Snapshot TimeTimestamp of the snapshot interval
TimedCheckpoints triggered by checkpoint_timeout
RequestedCheckpoints triggered by WAL volume (max_wal_size)
TotalTotal checkpoints in this snapshot interval
Write TimeTime spent writing dirty buffers to disk
Sync TimeTime spent syncing files to disk (fsync)
Total TimeTotal checkpoint duration (Write + Sync)
Buffers WrittenNumber of dirty buffers written during checkpoints
FrequencyCheckpoint frequency per hour
EfficiencyCheckpoint efficiency badge

AWR Checkpoint & WAL

Checkpoint Efficiency Levels

EfficiencyBadgeMeaning
High🟢 GreenCheckpoints complete quickly with low I/O impact
Good🔵 BlueNormal checkpoint performance
Low🟠 OrangeCheckpoints are slow — investigate I/O subsystem
Critical🔴 RedCheckpoints are severely impacting performance

Key Indicators

High Requested vs. Timed Checkpoints — WAL is being generated faster than checkpoint_timeout allows. Increase max_wal_size to space out checkpoints:

max_wal_size = 2GB # increase from default 1GB

High Sync Time — fsync operations are slow, indicating disk I/O bottleneck on the WAL or data volume. Consider a dedicated WAL disk or faster storage.

High Buffers Written at Checkpoint — too many dirty buffers accumulate between checkpoints. Tune checkpoint_completion_target to spread writes:

checkpoint_completion_target = 0.9

Tab 2 — WAL Statistics

Per-snapshot breakdown of WAL generation activity.

ColumnDescription
Snapshot TimeTimestamp of the snapshot interval
WAL GeneratedTotal WAL volume generated during this interval
WAL RecordsNumber of WAL records written
FPIFull Page Images written — increases after each checkpoint
Files CreatedNew WAL segment files created
Files RecycledWAL segment files recycled for reuse
Files ArchivedWAL files sent to the archive
Archive FailuresFailed archive operations — highlighted red if > 0
Generation RateWAL generation rate in MB/s
Archive StatusArchive health badge

AWR Checkpoint & WAL

Archive Status Values

StatusBadgeMeaning
OK🟢 GreenWAL archiving is working normally
WARNING🟠 OrangeSome archive failures detected
FAILED🔴 RedArchive is failing — immediate attention required
DISABLED⚪ GrayWAL archiving is not configured
WAL Archive Failures

Archive failures mean WAL files are not being preserved for Point-in-Time Recovery (PITR). If archiving is required for your recovery strategy, investigate and resolve archive failures immediately — WAL files may be deleted before they are archived.

High FPI (Full Page Images)

A high FPI count relative to WAL records indicates frequent checkpoints. Each checkpoint resets the FPI tracking — more checkpoints = more FPIs = more WAL volume. Reducing checkpoint frequency (via max_wal_size) also reduces FPI overhead.


Tab 3 — BGWriter Statistics

Per-snapshot breakdown of background writer activity.

The background writer (bgwriter) proactively writes dirty buffers to disk between checkpoints, reducing the I/O burst at checkpoint time.

ColumnDescription
Snapshot TimeTimestamp of the snapshot interval
Buffers CleanDirty buffers written by the bgwriter
Maxwritten CleanTimes bgwriter stopped early due to bgwriter_lru_maxpages limit
Buffers BackendDirty buffers written directly by backend processes (not bgwriter)
Backend FsyncTimes backends had to perform fsync themselves
Buffers AllocNew buffers allocated
Clean Ratebgwriter throughput in buffers per second
EfficiencyPercentage of writes handled by bgwriter vs. backends
PerformanceOverall bgwriter performance badge

AWR Checkpoint & WAL

Interpreting BGWriter Statistics

High Buffers Backend (vs. Buffers Clean) Backend processes are writing dirty buffers directly because the bgwriter is not keeping up. This causes latency spikes for user queries. Tune bgwriter aggressiveness:

bgwriter_lru_maxpages = 200 # increase from default 100
bgwriter_delay = 50ms # decrease from default 200ms

High Maxwritten Clean The bgwriter is hitting its per-round limit too often. Increase bgwriter_lru_maxpages to allow it to write more buffers per round.

High Backend Fsync Backends are performing fsync themselves — a sign that the bgwriter and checkpoint process cannot keep up with write demand. This is a serious performance concern requiring storage or configuration review.


Interpretation Guide

ConditionThresholdAction
High checkpoint frequency> 4/hourIncrease max_wal_size
High avg checkpoint duration> 30sTune checkpoint_completion_target = 0.9
High WAL generation rate> 50 MB/sInvestigate high-write workloads in Top SQL
WAL archive failures> 0Investigate archive command and storage
High Buffers Backend> 20% of totalTune bgwriter aggressiveness

Next Steps