Linux实时监控网卡入流量和出流量(iftop、dstat、nethogs、nload)

您所在的位置:网站首页 数据流量单位里哪个最大 Linux实时监控网卡入流量和出流量(iftop、dstat、nethogs、nload)

Linux实时监控网卡入流量和出流量(iftop、dstat、nethogs、nload)

2024-07-04 02:26| 来源: 网络整理| 查看: 265

背景

相同配置和相同业务的4台cvm,今天准备下线,检查还有没有业务流量的时候,发现有两台流量不符合预期,就很奇怪,想知道流量是从哪里来的。记录下当时定位思路 在这里插入图片描述 在这里插入图片描述

先来了解下基本的概念

一、Mbps、kbps、bps、bit、b

速度单位,bit 即比特,通常用 b(小写)表示,指一位二进制位;

Mbps 即 Milionbit pro second(百万位每秒);Kbps 即 Kilobit pro second(千位每秒);bps 即 bit pro second(位每秒);

单位换算: 1Milionbit=1000Kilobit=1000000bit 1Mbps=1000 000bps

这是通常用来衡量带宽的单位,指每秒钟传输的二进制位数;

二、MB、KB、B

通常软件上显示的速度不是上述一中的带宽,而是指每秒种传输的字节数(Byte)通常用B(大写)表示;

MB 即百万字节也称兆字节;KB 即千字节;B 即字节;

单位换算: 1MB=1024KB=10241024B=10241024*8b 1B=8b; 与带宽的换算:

1M带宽即指 1Mbps=1000Kbps=1000/8KBps=125KBps;

因此1M的带宽下载的速度一般不会超过125KB每秒。

2M、3M带宽分别是250KBps、375KBps;

2M、3M带宽的下载速度分别不会超过250KB、375KB每秒。

PS:

1Mbps与 1m/s 是有区别的,1Mbps指的是1000/8KB/S也就是125KB/S,而 1m/s 指的是是1024KB/S。

记住 K 和 k 是没区别的 ,区别在于 bps 属于位每秒的单位,而m/s,KB/S 这两个属于字节每秒的单位,一字节等于8位,即1B=8b

好了,进入正题

1、首先我们先使用neatest 查看监听了哪些进程,由于是生产环境,这里就不截图展示了 netstat -anltp

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

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

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

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

PS:dstat命令默认显示的是速度单位,而不是存储单位。例如,dstat -tnf命令的输出中,k和b单位分别表示千字节和字节的速度,而不是存储容量。从下面这张图仔细的小伙伴肯定有疑问,为什么这里的send平均在1500k怎么和上面第二张图的10M不相等呢? 在这里插入图片描述 原因:这就是Mb/s和MB/s的区别啦。dstat表示的单位是字节每秒,但是Mb/s表示的是位每秒,通过上面的换算,其实是一样的,只是单位不同而已。

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

3、使用iftop命令

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

sudo iftop -i eth0 -f "src port or dst port "

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

iftop -i eth1

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

4、使用nethogs命令 nethogs -a -d 10

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

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

nload eth1

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3