Linux负载之网卡流量管理

1、netstat

netstat 常用来查看后台服务进程的相关状态。
netstat 可以用来打印网络连接、路由表、连接的数据统计。

rpm -qi net-tools
rpm -qf `which netstat`
打印所有连接;使用 -a,列出所有连接。
netstat -a

打印 TCP 或 UDP 连接;使用 -t 选项列出 TCP 协议的连接。
netstat -t
netstat -u

禁用反向域名解析;使用 -n 选项禁用域名解析功能,这样可以加快查找速度。
netstat -n

显示对应的程序识别码和程序名称;使用 -p 选项列出正在监听的套接字。
打印连接进程信息;使用 -p 选项查看进程信息。
netstat -p

打印监听中的连接;使用 -l 选项列出正在监听的套接字。
netstat -l

打印网络工作信息统计表;使用 -s 选项查看进程信息(只展示部分结果)netstat -s

打印网络接口;使用 -i 选项查看进程信息。
netstat -i

持续输出信息;使用 -c 选项查看进程信息。
netstat -c

根据进程pid查端口;利用 grep 命令,通过进程 pid 查出监听端口。
netstat -nap | grep 8848

统计网络socket状态;借助 awk 命令,统计socket状态对应的个数。
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 


常用组合

netstat -anltp
netstat -tan
netstat -uan
netstat -tnl
netstat -unl
路由查询
netstat -rn
route -n
ip route
统计
netstat -I
netstat -Iens160
ifconfig -s
ifconfig -s ens160

执行后发现连接数很少,基本上可以确认应该没啥业务流量了,但是为了保险起见,我们应该对业务监听的端口进行抓包看看(这里以nginx为例)

yum install tcpdump

tcpdump -iany dst port '80 or 443' and dst host '输入自己的ip' -nnv
tcpdump -iany dst port '80 or 443' and dst host '127.0.0.1' -nnv

这里没有输出,证明我们猜想是正确的,确实没有业务流量了

2、使用dstat命令实时查看网卡流量

dstat 命令是一个用来替换 vmstat、iostat、netstat、nfsstat 和 ifstat 这些命令的工具,通用的系统资源统计工具,是一个全能系统信息统计工具。与 sysstat 相比,dstat 拥有一个彩色的界面,在观察性能状况时,数据比较显眼容易观察;而且 dstat 支持即时刷新,输入 dstat 3 即每 3 秒收集一次,和 sysstat 相同的是,dstat 也可以收集指定的性能资源,dstat -c 显示 CPU 的情况。

yum install -y dstat
dstat -tnf 10

PS:dstat命令默认显示的是速度单位,而不是存储单位。例如,dstat -tnf命令的输出中,k和b单位分别表示千字节和字节的速度,而不是存储容量。从下面这张图仔细的小伙伴肯定有疑问,为什么这里的send平均在1500k怎么和上面第二张图的10M不相等呢?
在这里插入图片描述

原因:这就是Mb/s和MB/s的区别啦。dstat表示的单位是字节每秒,但是Mb/s表示的是位每秒,通过上面的换算,其实是一样的,只是单位不同而已。

从这里看到确实流量有这么高,进一步查看

3、使用iftop命令

iftop是一个实时流量监控工具,可以用来监控网络接口的流量。要监控某个进程的流量,你可以使用以下命令:

iftop -i eth0 -f "src port <port> or dst port <port>"

但是这里我们并不知道端口,所以执行

iftop -i ens32

在这里插入图片描述
从这里就可以确认到是哪一个目的ip了,如果再结合到neatest 命令就可以确认到是哪一个进程。

4、使用nethogs命令

4.1、简单实践

默认监控所有物理网卡,可以后面接口网卡名称方式指定监控某网卡流量,可以接多个网卡名称,网卡之间空格隔开。
nethogs eth0
默认刷新频率间隔1秒,刷新次数不限制直到主动结束进程或者退出。
nethogs -a -d 10

在这里插入图片描述
从这里可以查看到某个进程对应的所有流量了。

4.2、nethogs 语法及参数

1、使用语法
用法:nethogs [参数] [device]

2、参数说明
参数 参数说明
-V 打印命令版本
-h 打印帮助
-b bughunt模式
-d 指定显示刷新频率,单位秒,默认1秒
-v 指定流量单位模式(0 = KB/s, 1 = total KB, 2 = total B, 3 = total MB)
-c 设置刷新更新次数
-t tracemode模式,可以记录下每一次刷新的流量值
-p 混杂模式下监听流量(不建议使用)
-s 按照发送流量排序输出
-a 监控所有网卡端口,包括环回接口
3、运行模式下按键说明
按键 按键说明
q 退出
s 按照发送流量排序
r 按照接受流量排序
m 切换端口流量单位显示模式在B,KB,MB之间流量切换

5、nload

使用nload命令也可以实时监控入流量和出流量
使用lsof -i:port 根据端口查询进程

yum install -y epel-release
yum install -y nload

nload ens32

在这里插入图片描述

============

vnstat 查看接口统计报告

yum install -y vnstat

实时流量情况

vnstat -i ens32 -l #实时流量情况

在这里插入图片描述
当上面的命令 按下“CTRL+C”结束后,会显示监控期间的流量统计结果:
在这里插入图片描述

iftop

iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等

命令用法:

-i设定监测的网卡,如:# iftop -i eth1

-B 以bytes为单位显示流量(默认是bits),如:# iftop -B

-n使host信息默认直接都显示IP,如:# iftop -n

-N使端口信息默认直接都显示端口号,如: # iftop -N

省略其他……

交互命令:

按n切换显示本机的IP或主机名;

按s切换是否显示本机的host信息;

按d切换是否显示远端目标主机的host信息;

按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;

按N切换显示端口号或端口服务名称;

按S切换是否显示本机的端口信息;

按D切换是否显示远端目标主机的端口信息;

按p切换是否显示端口信息;

yum install -y iftop

nethogs

三、nethogs使用,按进程实时统计网络带宽利用率(推荐)
命令用法:
1、设置5秒钟刷新一次,通过-d来指定刷新频率:nethogs -d 5
2、监视eth0网络带宽 :nethogs eth0
3、同时监视eth0和eth1接口 : nethogs eth0 eth1

交互命令:
以下是NetHogs的一些交互命令(键盘快捷键)
m : 修改单位
r : 按流量排序
s : 按发送流量排序
q : 退出命令提示符

yum install -y nethogs

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值