reading和writing指标直接反映nginx工作线程实时状态,reading高说明请求接收卡在入口(如弱网上传、大body、ssl耗时或上游响应不规范),writing高表明响应发送受阻于后端慢、客户端弱网、tcp优化缺失或gzip压缩瓶颈;二者同高且占active connections 70%以上、waiting低,则表明请求处理链路全线承压。

Reading 和 Writing 指标直接反映 Nginx 当前正在处理请求的“工作线程”状态,是判断连接是否在某一层发生堆积的最灵敏信号。它们不看总量,只看“此刻正在干啥”,因此比 Active connections 更能定位瓶颈环节。
Reading 高:请求还没收完,卡在入口
Reading 表示 Nginx 正在从客户端 TCP 连接中读取 HTTP 请求头(或请求体)。该值持续高于 2–5,尤其伴随大 Body 或低速客户端时,说明:
- 客户端上传慢(如移动端弱网上传文件、IoT 设备间歇发数据)
- 请求体过大且未启用
client_max_body_size合理限制,导致读取时间拉长 - 启用了 SSL/TLS,但握手或解密耗时高(可结合
ssl_handshake_timeout对照排查) - 反向代理场景下,上游返回了不规范的响应头(如缺失
Content-Length),导致 Nginx 误判为需继续读取
Writing 高:响应发不出去,堵在出口
Writing 表示 Nginx 正在把响应内容写回客户端。该值明显偏高(比如 > 20 且波动剧烈),常见于:
- 后端服务响应慢(如数据库查询卡顿、API 调用超时),Nginx 等着拿完整响应再发
- 客户端接收能力差(如老旧浏览器、弱网终端),Nginx 发送缓冲区积压,TCP 窗口收缩导致发送阻塞
- 未开启
tcp_nopush/tcp_nodelay优化,小包粘连或延迟发送加剧 Writing 持续时间 - 启用了 Gzip 压缩但 CPU 不足,压缩过程拖慢响应输出节奏
Reading + Writing 同时高:请求处理链路全线承压
若 Reading 和 Writing 之和长期占 Active connections 的 70% 以上,而 Waiting 很低(比如
- worker_connections 是否设得太小,实际连接数逼近上限
- 后端 upstream 的健康状态与响应 P95 延迟是否突增
- 是否存在慢日志中高频出现的特定 location 或 upstream server
- 系统级指标:网络带宽打满?磁盘 I/O 延迟升高?
对比 Waiting 才能确认是否真堆积
单独看 Reading/Writing 偏高还不够。关键要结合 Waiting 判断性质:
- Waiting 高 + Reading/Writing 低 → 正常长连接复用(如前端轮询、心跳)
- Waiting 低 + Reading/Writing 高 → 请求确实在排队/卡住,是真实堆积
- Waiting 突降 + Reading/Writing 暴涨 → 可能刚经历一波连接回收(如 keepalive_timeout 到期),随后新请求集中涌入










