最准的并发连接数是established状态的tcp连接数或nginx的active connections;ps统计的是worker进程数,1个进程可处理数百连接,与实际并发量严重不符,尤其keepalive开启时误差可达10倍以上。

最准的并发连接数,只看 ESTABLISHED 状态的 TCP 连接数,或者直接读 Active connections——其他统计全是干扰项。
为什么不能只看 ps 或 worker 进程数
运行 ps -ef | grep nginx | grep -v grep | wc -l 得到的是 worker 进程个数,不是连接数。Nginx 默认用 event 模型,1 个 worker 能同时处理成百上千个 ESTABLISHED 连接;Apache prefork 模式下才接近 1 进程 ≈ 1 连接。别把进程数当并发量,尤其在 keepalive 开启时,误差可能达 10 倍以上。
netstat / ss 查 ESTABLISHED 连接(兼容性最强)
这是不依赖 Nginx 配置、所有 Linux 系统都可用的方法,核心是过滤出真实传输数据的连接:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 查所有端口的活跃连接:
ss -nt | grep ESTABLISHED | wc -l(推荐,ss比netstat更快更轻量) - 只查 Web 端口(如 80):
ss -nt sport = :80 | grep ESTABLISHED | wc -l(注意用sport表示 source port,即客户端连过来的源端口不重要;真正要匹配的是服务端监听端口,应改用dport = :80) - 若必须用
netstat(旧系统):netstat -ant | awk '$1 ~ /^tcp/ && $6 == "ESTABLISHED" {count++} END {print count+0}'(比grep ESTABLISHED | wc -l更稳,避免字段错位) - 如果提示
command not found: ss或netstat,CentOS 8+/Ubuntu 20.04+ 需先装:sudo yum install iproute(ss)或sudo yum install net-tools(netstat)
用 stub_status 模块读 Active connections(最贴近 Nginx 内部视角)
这个值 = Reading + Writing + Waiting,包含 keepalive 空闲连接,比纯 ESTABLISHED 更反映 Nginx 当前承载压力:
- 先确认模块已编译:
nginx -V 2>&1 | grep -o with-http_stub_status_module,无输出就得重编译 - 在任意
server块里加:location /nginx-status { stub_status on; allow 127.0.0.1; deny all; } - 重载配置:
nginx -s reload - 取值命令:
curl -s http://127.0.0.1/nginx-status | awk '/Active connections/ {print $3}' -
Waiting高说明 keepalive 复用充分,不是问题;但Reading长期 > 50% 且响应慢,可能是客户端上传卡住或后端超时太短
CLOSE_WAIT 持续上涨才是真危险信号
它代表 Nginx 已收到客户端 FIN,但自己没调用 close() —— 通常意味着 upstream 超时设置不合理、或 PHP/Java 后端卡死没释放连接:
- 监控命令:
ss -nt state close-wait | wc -l - 超过 200 且缓慢爬升,就要查
proxy_read_timeout、fastcgi_read_timeout是否过短,或后端日志是否有异常阻塞 -
TIME_WAIT高一般不用管,除非持续 > 65535 导致端口耗尽(此时应调大net.ipv4.ip_local_port_range或启用net.ipv4.tcp_tw_reuse)
真正要盯的就两个数字:ESTABLISHED(OS 层真实连接)、Active connections(Nginx 自己认的负载)。其余状态只是辅助定位瓶颈在哪一环——网络层、Nginx 配置层,还是后端服务层。










