在系统中,有很多自带的查看系统信息的工具,如top可以查看实时进程和cpu内存的使用率等,netstat可以查看网络连接的端口信息。而查看网络实时带宽和网络连接就得另外自己安装软件了。今天推荐的是一款叫的工具。
Linux 实时网络流量监控教程(CentOS7 为主,和你前面 MySQL 环境配套)
先查看网卡名称:
ip a
常见网卡名:eth0、ens33、enp0s3
工具选择一句话区分
- nload:看网卡整体进出带宽(最简单,看总流量)
- iftop:看每个 IP 之间的实时流量,查哪个 IP 在跑流量
- nethogs:看哪个进程占用带宽(最实用,定位程序)
- sar:系统自带,不用额外装,定时采样
- vnstat:记录历史流量,看日 / 月总流量(不是纯实时)
1. nload|查看网卡整体实时带宽(推荐新手)
安装(CentOS7 yum)
yum install nload -y
使用
# 监控ens33网卡,替换成你自己网卡
nload ens33
界面:
Incoming:入站流量Outgoing:出站流量- Curr 当前速率、Avg 平均、Min 最小、Max 峰值、Total 总流量
- 按左右箭头切换网卡,
q退出
常用参数
# 刷新间隔200ms,单位M
nload -t 200 -u M ens33
2. iftop|查看每个 IP 连接的流量(排查外部 IP 跑流量)
安装(CentOS7 需要 epel 源)
yum install epel-release -y
yum install iftop -y
使用
# -i 指定网卡,-n 不解析域名加速,-B 显示Bytes(默认bit)
iftop -i ens33 -n -B
常用快捷键(进入界面后)
P:显示端口号t:切换流量统计周期q:退出
必须 root 执行,用来发现哪个 IP 大量传输数据
3. nethogs|按进程查看网络流量【排查哪个程序占带宽首选】
安装
yum install epel-release -y
yum install nethogs -y
使用
nethogs ens33
直接列出:进程名、PID、本机收发流量。
场景:服务器带宽跑满,直接找到是 MySQL/nginx/ 脚本哪个进程在跑流量。
4. sar|系统自带,无需安装,实时采样
sar 属于sysstat包,最小化系统可能没装
yum install sysstat -y
# 每1秒采集一次,一共采集10次,看网卡流量
sar -n DEV 1 10
- rxkB/s:每秒接收 KB
- txkB/s:每秒发送 KB
5. vnstat|历史流量统计(记录每日流量,非实时)
yum install vnstat -y
# 监控网卡
vnstat -i ens33
# 实时模式
vnstat -l -i ens33
快速无工具方案(不装软件,简易查看)
读取 /proc/net/dev,写循环实时打印
while true;do clear;cat /proc/net/dev;sleep 1;done
常用场景推荐
- 想看服务器总带宽:nload
- 想知道哪个 IP 疯狂访问:iftop
- 想知道哪个进程吃带宽:nethogs(强烈推荐排查)
- 不想装软件:sar
常见问题
- 命令找不到:CentOS7 需要先装 epel 扩展源
- iftop/nethogs 需要 root 权限,必须 sudo
- 网卡名称不对:
ip a核对网卡名称,不要一直写 eth0(很多云服务器是 ens33)
实操小案例(你 MySQL 服务器场景)
服务器带宽跑满,排查步骤:
nload ens33确认入站还是出站打满nethogs ens33看是不是 mysqld 进程在大量传输- 如果是外部 IP 大量拉取数据,再用
iftop -i ens33 -n看对方 IP
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END











暂无评论内容