哪个程序占用了带宽?
查看一台主机的监控,有时候我们会发现网络带宽被打满了,这时候怎样定位出是哪个程序大量占用了带宽?
答:使用网络数据包分析工具。比如iftop,可以监控到进出网卡的带宽用量。
参考文档:
- How do I find out which process is eating up my bandwidth?
- iftop: display bandwidth usage on an interface
- 网络流量监控工具iftop
- iftop简介
- 从零开始学习iftop流量监控
安装iftop
yum install iftop
使用iftop
显示当前主机的流量和端口。iftop -P
这里比较坑的是,有的统计项并不会显示端口。原因未知,解决方法未知。。。
输出内容说明
iftop的输出从上到下可以分为三部分:流量刻度,详细信息和统计信息。
流量刻度
是iftop输出中最上面的一行。
此行信息是流量刻度,用于显示网卡带宽流量。
详细信息
是iftop输出中最大的一个部分,此部分又分为左、中、右三列。
- 左边显示本机的主机名/IP和端口
- 中间显示正在和本机通信的主机名/IP和端口,=>代表发送数据,反之<=是接受数据。
- 右边表示2s内,10s内,40s内的一个平均流量值,显示不同时间段的流量值。
统计信息
位于iftop输出的最下面。
TX表示发送流量,RX表示接收流量,TOTAL表示发送和接收的全部流量。
- cum:从运行iftop到当前时刻,发送和接收的总流量。
- peak:流量的峰值。
- rate:在过去2s,10s,40s,平均的流量的值。
根据端口号查找进程
参考文档《shell命令之系统管理》