netstat 不直接评估负载分布均匀性,但可通过统计各监听端口、进程、远端ip、网卡等维度的连接状态(如established、time_wait、close_wait)数量差异,识别负载不均问题。

netstat 本身不直接评估“负载分布均匀性”,但它能提供连接数、状态、端口和进程等关键维度的数据,这些是判断负载是否均衡的基础依据。真正要做负载分布分析,需结合 netstat 输出做统计与横向比对。
看各监听端口的连接数量是否悬殊
服务通常在固定端口监听(如 80、443、8080),如果集群或负载均衡后端有多个实例,各实例对应端口的 ESTABLISHED 连接数应大致接近。明显偏离(比如一个实例有 1200 个 ESTABLISHED,另一个只有 80 个)就提示分发不均。
- 用 netstat -ant | grep ':80 ' | grep ESTABLISHED | wc -l 统计 80 端口已建立连接数
- 同理查 443、8080 等关键端口,对比数值差异
- 注意加空格避免匹配到 8080 或 8000 等相似端口(如 ':80 ')
查同一服务不同进程的连接归属是否集中
当服务以多进程或多线程方式运行(如 Nginx worker、Java 多线程应用),理想情况下连接应被各进程较均匀地处理。若某进程独占大量连接,可能因调度、绑定或配置问题导致负载倾斜。
- 执行 netstat -antp 2>/dev/null | grep ':80' | grep ESTABLISHED | awk '{print $7}' | cut -d',' -f1 | sort | uniq -c | sort -nr
- 输出类似 156 12345/nginx 和 23 12346/nginx,说明连接集中在少数 worker 进程上
- 可进一步用 ps -p PID -o pid,ppid,comm,vsz,rss,%cpu,%mem 查该进程资源占用是否异常偏高
观察 TIME_WAIT 和 CLOSE_WAIT 分布是否异常集中
TIME_WAIT 过多且集中在某几个源 IP 或端口段,可能意味着客户端发起短连接过于集中;CLOSE_WAIT 大量堆积且集中在特定服务进程,则反映该进程未及时关闭 socket,造成连接资源滞留,间接影响负载能力。
- 按远端地址统计 TIME_WAIT:netstat -ant | awk '$6=="TIME_WAIT" {print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -10
- 按进程统计 CLOSE_WAIT:netstat -antp 2>/dev/null | awk '$6=="CLOSE_WAIT" {print $7}' | cut -d',' -f1 | sort | uniq -c | sort -nr
- 若发现某 IP 占比超 60%,或某进程 CLOSE_WAIT 数超 200,需重点排查
对比不同网卡或 IP 地址上的连接密度
多网卡或 VIP 部署场景下,连接应尽量分散到不同接口。若所有连接都落在 eth0 而 eth1 几乎为空,说明绑定或路由策略未生效。
- 查看本地地址绑定情况:netstat -ant | awk '{print $4}' | cut -d: -f1 | sort | uniq -c | sort -nr
- 排除通配符 0.0.0.0 后,检查实际绑定的 IP(如 192.168.10.10、10.0.5.20)连接数是否失衡
- 配合 ip addr show 确认各 IP 是否启用且可达











