LWLock:BufferIO (IPC:BufferIO) - Amazon Relational Database Service (original) (raw)

The LWLock:BufferIO event occurs when RDS for PostgreSQL is waiting for other processes to finish their input/output (I/O) operations when concurrently trying to access a page. Its purpose is for the same page to be read into the shared buffer.

Relevant engine versions

This wait event information is relevant for all RDS for PostgreSQL versions. For RDS for PostgreSQL 12 and earlier versions this wait event is named as lwlock:buffer_io whereas in RDS for PostgreSQL 13 version it is named as lwlock:bufferio. From RDS for PostgreSQL 14 version BufferIO wait event moved from LWLock to IPC wait event type (IPC:BufferIO).

Context

Each shared buffer has an I/O lock that is associated with the LWLock:BufferIO wait event, each time a block (or a page) has to be retrieved outside the shared buffer pool.

This lock is used to handle multiple sessions that all require access to the same block. This block has to be read from outside the shared buffer pool, defined by theshared_buffers parameter.

As soon as the page is read inside the shared buffer pool, the LWLock:BufferIO lock is released.

Note

The LWLock:BufferIO wait event precedes the IO:DataFileRead wait event. The IO:DataFileRead wait event occurs while data is being read from storage.

For more information on lightweight locks, see Locking Overview.

Causes

Common causes for the LWLock:BufferIO event to appear in top waits include the following:

Actions

We recommend different actions depending on the causes of your wait event: