

# RDS for PostgreSQL 等待事件
<a name="PostgreSQL.Tuning.concepts.summary"></a>

下表列出了 RDS for PostgreSQL 最常指示性能问题的等待事件，并总结了最常见的原因和纠正措施。


| 等待事件 | 定义 | 
| --- | --- | 
| [Client:ClientRead](wait-event.clientread.md) | 当 RDS for PostgreSQL 等待从客户端接收数据时，会发生此事件。 | 
| [Client:ClientWrite](wait-event.clientwrite.md) | 当 RDS for PostgreSQL 等待将数据写入客户端时，会发生此事件。 | 
| [CPU](wait-event.cpu.md) | 当线程在 CPU 中处于活动状态或正在等待 CPU 时，会发生此事件。 | 
| [IO:BufFileRead 和 IO:BufFileWrite](wait-event.iobuffile.md) | 这些事件发生在 RDS for PostgreSQL 创建临时文件时。 | 
| [IO:DataFileRead](wait-event.iodatafileread.md) | 当由于分页在共享内存中不可用，连接等待后端进程从存储中读取所需分页时，会发生此事件。 | 
| [IO:WALWrite](wait-event.iowalwrite.md)  | 当 RDS for PostgreSQL 正在等待将预写日志（WAL）缓冲区写入 WAL 文件时，会发生此事件。  | 
| [Lock:advisory](wait-event.lockadvisory.md) | 当 PostgreSQL 应用程序使用锁定来协调多个会话之间的活动时，会发生此事件。 | 
| [Lock:extend](wait-event.lockextend.md) | 当后端进程正在等待锁定关系以对其进行扩展，而另一个进程出于同样目的锁定该关系时，会发生此事件。 | 
| [Lock:Relation](wait-event.lockrelation.md) | 当查询等待获取当前被另一个事务锁定的表或视图上的锁定时，会发生此事件。 | 
| [Lock:transactionid](wait-event.locktransactionid.md) | 当事务正在等待行级锁定时，会发生此事件。 | 
| [Lock:tuple](wait-event.locktuple.md) | 在后端进程等待获取元组锁定时，会发生此事件。 | 
| [LWLock:BufferMapping (LWLock:buffer\_mapping)](wait-event.lwl-buffer-mapping.md) | 当会话正在等待将数据块与共享缓冲池中的缓冲区关联起来时，会发生此事件。 | 
| [LWLock:BufferIO (IPC:BufferIO)](wait-event.lwlockbufferio.md) | 当 RDS for PostgreSQL 正在等待其他进程在同时尝试访问页面时完成输入/输出（I/O）操作时，会发生此事件。 | 
| [LWLock:buffer\_content (BufferContent)](wait-event.lwlockbuffercontent.md) | 当某个会话等待读取或写入内存中的某个数据页面，而另一个会话正锁定该页面以进行写入时，会发生此事件。 | 
| [LWLock:lock\_manager (LWLock:lockmanager)](wait-event.lw-lock-manager.md) | 当 RDS for PostgreSQL 引擎维护共享锁的内存区域以便在无法使用快速路径锁时分配、检查和取消分配锁时，会发生此事件。 | 
| [LWLock:SubtransSLRU (LWLock:SubtransControlLock)](wait-event.lwlocksubtransslru.md) | 当进程正在等待访问子事务的最近使用最少（SLRU）的简单缓存时，发生此事件。 | 
| [Timeout:PgSleep](wait-event.timeoutpgsleep.md) | 当服务器进程调用 `pg_sleep` 函数并且正在等待睡眠超时过期时，会发生此事件。 | 
| [Timeout:VacuumDelay](wait-event.timeoutvacuumdelay.md) | 此事件表明 vacuum 进程正处于休眠状态，因为已达到估计的成本上限。 | 