容量不是一个数字,而是一串相互牵制的上限

请求变多时,第一堵墙在哪里?

先给系统施加压力,再动一个旋钮。吞吐上不去时,不一定缺工作进程;它也可能卡在文件描述符、上游池,或被慢客户端拖住。

当前判断 容量仍有余量

一笔请求占住了哪些位置

条形越接近右端,说明该层越接近饱和;瓶颈会先让队列和 p99 抬头。

稳定区

文件描述符

1,084 / 8,192

客户端连接、上游连接和日志文件都在这里计数。

占用率13%
入口队列 0

工作进程

4 × 约 1,050 RPS

负责 TLS、解析、路由与代理协调,不等同于上游业务。

调度压力29%
等上游 0

上游连接池

128 条

缓冲开启后,上游不必陪慢客户端等到发送完成。

占用率
代理缓冲

响应发送

15% 慢连接

客户端慢时,连接仍被占着;缓冲只决定由谁陪它等待。

拖尾压力
有效吞吐完成请求
p99 延迟排队会放大尾延迟
FD 占用含上下游套接字
估算内存进程 + 连接 + 缓冲
队列长度入口与上游等待合计
错误率拒绝或超时
最先撞到的墙

容量仍有余量

当前负载低于各层容量,队列很短。

先做这个实验

继续提高进入负载,观察哪条占用率先逼近 100%。

别忘了代价

扩大任何上限,都可能把洪峰推向下一层。

沿着当前配置逐步加压

绿色吞吐先增长后变平;红色 p99 往往在饱和点附近陡升。

当前服务器配置的负载、吞吐与 p99 曲线 横轴是进入负载,绿色是吞吐趋势,红色是 p99 延迟趋势,蓝色虚线标记当前负载。 0 进入负载 当前