Client: ClientWrite
等待向客户端写入数据。
PostgreSQL 等待事件档案
类别Client
事件
ClientWrite
版本PG 13-18
证据2 个源码位置
官方描述译文
等待向客户端写入数据。
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
触发机制
WAIT_EVENT_CLIENT_WRITE 位于 src/backend/libpq/be-secure.c:344,是经 grep 核验的报告路径。公共身份/资源映射位于 src/backend/utils/activity/wait_event_names.txt:86。探针覆盖的操作是:等待向客户端写入数据。前端协议路径在套接字、TLS/GSS 或复制客户端操作即将阻塞前报告 ClientWrite;PostgreSQL 正在等待远端或网络推进。
正常还是麻烦?
- 正常: 空闲状态的 ClientRead 通常只是连接池存量。
- 需要调查: 活动写入、握手、很老的 idle in transaction、连接耗尽或复制客户端停滞时需要调查。
诊断 SQL
正在等待 Client/ClientWrite 的会话
当前 Client 等待分布
这些会话的锁与关系上下文
处置建议
- 先看 state 与事务年龄,再决定它是否算负载。
- 关联负责的应用、连接池与网络路径。
- 修复消费者背压或连接池策略,不要反复终止连接。
源码证据
- PostgreSQL 18.6 · src/backend/libpq/be-secure.c:344 —
WAIT_EVENT_CLIENT_WRITE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:86 —
CLIENT_WRITE
关联控制项与信号
- GUC: [guc:max_connections] · [guc:idle_in_transaction_session_timeout]
- 指标: [metric:waiting_sessions] · [metric:wait_event_share] · [metric:active_backends]