Measure and raise your buffer cache hit ratio
The cache hit ratio from pg_stat_database tells you how often reads are served from shared_buffers instead of disk. Here the database sits at 99.87% and a hot lookup table at 100%, the metric to watch before adding RAM.
Problem
What you're actually looking at
The symptom as it shows up on a real server.
If most reads miss the cache and hit disk, everything is slow. blks_hit and blks_read from pg_stat_database (and per-table counters) give you the hit ratio, so you know whether more memory or better-fitting indexes would help.
Meridian checks whether its working set fits in memory. A database-wide ratio of 99.87% and a per-table 100% on the hot lookup confirm the cache is doing its job.
Simple terms
If most of your reads miss memory and fall through to disk, everything feels slow. The cache hit ratio, worked out from the blocks-hit and blocks-read counters PostgreSQL keeps, tells you how often a read was served straight from the memory cache instead of the disk. It is the number to check before you decide whether the fix is more RAM or better indexes; a ratio near 100% means the cache is already doing its job.
Full runbook for this incident
- The full identify checklist, the exact signals that tell you it's this incident
- Every diagnostic query; lab output is attached only to the steps we actually captured
- The resolution path and the pitfalls that make it worse
- Mitigation steps to stop it recurring, plus a verify-you're-done query
Card required. Cancel before day 7 and you are not charged.
More in this category
Other Observability runbooks
Neighbouring incidents that share the same diagnostic surface.
Need the full procedure?
Pro runbooks finish the incident path
Free runbooks teach the shape. Pro opens the full step transcript, edge cases, and prevention depth.