iftop排查带宽问题
安装
cd /usr/local/src/
wget http://www.ex-parrot.com/pdw/iftop/download/iftop-1.0pre4.tar.gz
tar -zxvf iftop-1.0pre4.tar.gz
cd iftop-1.0pre4
# yum install -y libpcap libpcap-devel
# yum install -y ncurses ncurses-devel
./configure
make
make install
iftop界面
- 顶部【表示屏幕上横轴的带宽刻度(单位是 Mb/s 1MB/s=8Mb/s),用来对齐每个连接的流量条。】

- 主体
- devserver-… 是本机(如主机名),右侧是对端 IP(或主机名)。
- => 表示本机 → 对端(即 本机上传,TX)。
后面三个数字,分别是最近 2s / 10s / 40s 的平均上传速率(默认 iftop 的三列时间窗)。 - <= 表示本机 ← 对端(即 本机下载,RX)。
后面三个数字,分别是最近 2s / 10s / 40s 的平均下载速率。

- 底部统计
- cum:累计传输的数据量(会话或自 iftop 启动以来统计)。
- peak:峰值(历史最高瞬时速率)。
- rates(右侧三列)对应最近 2s / 10s / 40s 的 TX/RX/TOTAL 平均速率。
- TOTAL 表明当前总流量约***。

- 界面内常用键
- n:切换是否解析域名(显示 IP 更快)
- p:显示端口(看到端口可以判断是 http/https/其它)
- t:切换显示排序(上传/下载/双向)
排查占带宽的进程
-
ss -tunp | grep IP
- 协议类型:tcp (TCP 协议)
- 状态:ESTAB (已建立连接)
- 接收队列:0 (本地接收缓冲区为空)
- 发送队列:0 (本地发送缓冲区为空)
- 本地地址:127.0.0.1:7860
- 远端地址:192.168.1.1:32302
- 进程信息:users:((“python …”,pid=3168486,fd=99))
- 进程名:python
- PID:3168486
- 文件描述符:99
-
lsof -i @IP

-
nethogs 会直接显示哪个 PID/程序占用了多少实时带宽
