首先通过sar工具定位流量异常的网卡,然后使用iftop工具(定位消耗带宽的对端IP)或nethogs工具(定位高流量进程)分析网卡流量,最后根据进程和IP性质采取相应措施。
步骤一:定位高流量网卡
通过sar工具确认高流量网卡,明确排查目标。
-
通过VNC连接登录ECS实例。
-
访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。
-
进入目标实例详情页,单击远程连接,选择通过VNC远程连接。输入账号和密码,登录ECS实例。
-
-
统计网络接口数据。
# -n DEV: 报告网络设备统计信息 # 1 5: 每1秒采样一次,共采样5次 sudo sar -n DEV 1 5 -
确定高流量网卡。
重点关注
Average的txkB/s(平均出网带宽)。通过对比,找出数值最高的IFACE(网卡名称)。rxkB/s表示平均入网带宽速率。
示例中,
eth0网卡的txkB/s最高,因此eth0为高流量网卡。
步骤二:分析并处理高流量问题
-
分析网卡流量。
-
iftop:以“连接视角”监控网卡流量,可找出与本机通信流量最大的IP地址和端口。Web服务可通过
iftop定位高流量IP,并结合logwatch等工具分析其Web日志,以判定流量合规性。 -
nethogs:以“进程视角”监控网卡流量,可找出占用网络带宽最大的进程。
iftop工具
-
安装
iftop工具。-
Alibaba Cloud Linux及Centos类型
sudo yum install -y iftop -
Ubuntu及Debian类型
sudo apt update sudo apt install -y iftop
-
-
监控高流量网卡。
<IFACE>请替换为步骤一定位的高流量网卡名称。# -i <IFACE>: 指定监控的网卡为<IFACE> # -P: 显示端口号 (Port) sudo iftop -i <IFACE> -P以高流量网卡名称为
eth0为例,执行sudo iftop -i eth0 -P。 -
分析网卡流量,查找消耗带宽的对端IP。

实时流量信息由高到低排列,其中,
=>符号的流量信息,即本机向对端IP发送数据的速率。示例中在过去2秒内,本机向IP140.205.11.x的平均出网流量为4.32Mb/s。 -
输入
q,退出iftop工具界面 -
查看端口对应的进程。
<消耗带宽的对端IP>通过上一步获取。sudo netstat -antp | grep <消耗带宽的对端IP>示例输出:

示例中,本地IP为
172.16.0.x,对端IP为140.205.11.x,对应进程为nginx:worker,PID为2282。
nethogs工具
使用示例
-
安装nethogs工具。
-
Alibaba Cloud Linux及Centos类型
sudo yum install -y nethogs -
Ubuntu及Debian类型
sudo apt update sudo apt install -y nethogs
-
-
监控高流量网卡。
<IFACE>请替换为步骤一定位的高流量网卡名称。# 默认监控间隔为1秒,可通过-d指定监控间隔。 sudo nethogs <IFACE>以高流量网卡名称为
eth0为例,执行sudo nethogs eth0。 -
分析网卡流量。

其中,
SENT表示发送的流量信息,即本机向对端IP(接收方)发送数据的速率。示例中流量占用最高的进程为nginx:worker process,出网流量约为696KB/s,其进程ID为2282,输入q可退出工具交互界面。
-
-
根据进程或对端IP选择解决方案。
-
若定位到的进程(如wget、curl等下载工具,或未知程序)行为可疑,或其通信的对端IP地址为非法IP:
-
若高流量为正常业务进程产生,表明为业务本身的正常需求:
-
升级带宽:当前实例的网络规格已成为瓶颈,应升级实例带宽。
-
优化程序:检查业务代码是否存在可优化之处,例如减少不必要的数据传输、增加缓存、压缩数据等。
-
限制速率:若业务允许,可使用
iptables等工具对特定IP或端口的流量进行限速,避免单个用户或服务占满全部带宽。 - 若未存在占用带宽异常的进程,但整体带宽使用率依然居高不下,表明实例承载的总业务量超过了其网络处理能力,应升级带宽。
-
-





![[原创]Linux环境下Nginx 通过upstream如何配置负载均衡以及实现_西数超哥博客](https://www.ysidc.top/wp-content/uploads/2018/12/76d2f7d9619b2f03a0b99d2b2b6e2dcd-480x300.jpg)


