pg_buffercache
pg_buffercache
pg_buffercache : examine the shared buffer cache
Overview
| ID | Extension | Package | Version | Category | License | Language |
|---|---|---|---|---|---|---|
| 6930 | pg_buffercache
|
pg_buffercache
|
1.5 |
STAT
|
PostgreSQL
|
C
|
| Attribute | Has Binary | Has Library | Need Load | Has DDL | Relocatable | Trusted |
|---|---|---|---|---|---|---|
--s-d--
|
No
|
Yes
|
No
|
Yes
|
no
|
no
|
| Relationships | |
|---|---|
| See Also | pg_repack
pgfincore
pgcozy
pg_prewarm
pgmeminfo
pg_squeeze
old_snapshot
system_stats
|
Packages
| PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|
1.5
|
1.5
|
1.5
|
1.5
|
1.5
|
This is a built-in contrib extension ship with the PostgreSQL kernel
Install
Create this extension with:
CREATE EXTENSION pg_buffercache;Usage
pg_buffercache provides views and functions to examine what is stored in the PostgreSQL shared buffer cache in real time.
Views
pg_buffercache – detailed per-buffer information:
-- Top 10 relations by buffer usage
SELECT n.nspname, c.relname, count(*) AS buffers
FROM pg_buffercache b
JOIN pg_class c ON b.relfilenode = pg_relation_filenode(c.oid)
AND b.reldatabase IN (0, (SELECT oid FROM pg_database WHERE datname = current_database()))
JOIN pg_namespace n ON n.oid = c.relnamespace
GROUP BY n.nspname, c.relname
ORDER BY 3 DESC
LIMIT 10;Columns: bufferid, relfilenode, reltablespace, reldatabase, relforknumber, relblocknumber, isdirty, usagecount, pinning_backends.
Summary Functions
-- Quick buffer cache summary (cheaper than the view)
SELECT * FROM pg_buffercache_summary();
-- buffers_used | buffers_unused | buffers_dirty | buffers_pinned | usagecount_avg
-- Buffer distribution by usage count
SELECT * FROM pg_buffercache_usage_counts();
-- usage_count | buffers | dirty | pinnedEviction Functions (Superuser, Developer Testing Only)
-- Evict a single buffer by ID
SELECT * FROM pg_buffercache_evict(42);
-- Evict all buffers for a relation
SELECT * FROM pg_buffercache_evict_relation('my_table'::regclass);
-- Evict all unpinned buffers
SELECT * FROM pg_buffercache_evict_all();NUMA View
-- NUMA node mapping for shared buffers
SELECT * FROM pg_buffercache_numa;
-- Returns: bufferid, os_page_num, numa_nodeAccess
Restricted to superusers and roles with pg_monitor privileges.
Last updated on