Windows性能监视器可直接通过TCPv4\Connections Established等内置计数器实时监控TCP连接总数与活跃并发量,无需额外工具;需结合netstat定位异常IP与进程,并建议Zabbix等平台用perf_counter["\TCPv4\Connections Established"]接入并设动态基线告警。
直接在 windows 性能监视器(perfmon)中添加对应计数器,就能实时追踪 tcp 连接数和并发量,无需安装额外工具。关键是要选对指标、理解状态含义,避免把瞬时值当瓶颈。
用性能监视器看 TCP 连接总数与活跃连接
Windows 内置了标准的 TCP 性能计数器,最常用的是:
- TCPv4\Connections Established:当前已建立、正在通信的 TCP 连接数(即真正“活跃”的并发连接)
- TCPv4\Connections Active:自系统启动以来创建过的所有连接总数(含已关闭的,适合看连接频次)
- TCPv4\Segments Received/sec 和 TCPv4\Segments Sent/sec:反映实际数据吞吐压力,比单纯连接数更贴近业务负载
添加方法:打开性能监视器 → 点击“+”号 → 展开“TCPv4”对象 → 勾选上述计数器 → 确定。建议设置采样间隔为 2–5 秒,避免高频抖动干扰趋势判断。
区分“连接数”和“并发量”,别被 ESTABLISHED 数字误导
一个 ESTABLISHED 连接不等于一个活跃请求。比如 HTTP/1.1 Keep-Alive 会复用连接,单个连接可能承载多个请求;而短连接场景下,大量 TIME_WAIT 会堆积但不消耗服务资源。因此:
- 关注 Connections Established 的持续走势,而非某次快照值
- 若该值长期稳定在 1000–2000 且响应正常,通常无需干预
- 若突然飙升并伴随 CPU 或内存占用上升,再结合进程(如 httpd、w3wp)查看具体是谁在建连
配合 netstat 快速定位异常来源
性能监视器看到连接数异常高时,下一步要快速定位 IP 和端口分布:
- 查本机 80/443 端口的 ESTABLISHED 连接数:netstat -an | findstr ":80 " | findstr "ESTABLISHED" | find /c ":"
- 按远程 IP 统计连接数(识别扫描或爬虫):netstat -an | findstr ":80 " | findstr "ESTABLISHED" | awk "{print $3}" | cut -d":" -f1 | sort | uniq -c | sort -nr(PowerShell 中可用 ForEach-Object { $_.Split()[2] } | ForEach-Object { $_.Split('.')[0..2] -join '.' } 替代)
- 查高连接数进程:netstat -ano | findstr ":80 " | findstr "ESTABLISHED" | select -first 10,再用任务管理器或 tasklist /fi "pid eq XXXX" 查进程名
Zabbix 等监控平台怎么接入
如果用 Zabbix,推荐用内置性能计数器方式,稳定且无脚本依赖:
- 监控项 key 直接填:perf_counter["\TCPv4\Connections Established"]
- 可同时加:perf_counter["\TCPv4\Connections Failed"](失败连接数,突增说明端口耗尽或防火墙拦截)
- 告警阈值建议设为动态基线:比如过去 1 小时均值的 3 倍,而不是固定值 5000——不同业务量级差异很大










