debian 查看实时网速

sar -n DEV 1 100

1代表一秒统计并显示一次
100代表统计一百次
使用ntop等工具,就更方便简单了,不过这个更灵活

P.S.

sar在sysstat包

--------------------------

sudo apt install nethogs

nethogs -d 1

---------------------------------

1、Linux查看网络即时网速

    sar -n DEV 1 100

    1代表一秒统计并显示一次
    100代表统计一百次
    使用ntop等工具,就更方便简单了,不过这个更灵活
2、nload
3、nethogs 详细查看每个进程的即时网速
    默认是eth0,使用nethogs eth1 查看eth1
1
2
3
4
5
6
7
8
9
10
11
12
NetHogs version 0.8.0
  PID USER     PROGRAM                                                      DEV        SENT      RECEIVED      
23705 zabbix   ..al/zabbix/sbin/zabbix_proxy: trapper #1 [processing data]  eth0       0.100       0.147 KB/sec
23721 zabbix   ..l/zabbix/sbin/zabbix_proxy: trapper #13 [processing data]  eth0       0.096       0.133 KB/sec
23717 zabbix   ..l/zabbix/sbin/zabbix_proxy: trapper #11 [processing data]  eth0       0.100       0.133 KB/sec
23715 zabbix   ..al/zabbix/sbin/zabbix_proxy: trapper #9 [processing data]  eth0       0.100       0.133 KB/sec
23706 zabbix   ..al/zabbix/sbin/zabbix_proxy: trapper #2 [processing data]  eth0       0.096       0.133 KB/sec
23712 zabbix   ..al/zabbix/sbin/zabbix_proxy: trapper #6 [processing data]  eth0       0.100       0.132 KB/sec
23746 zabbix   ..l/zabbix/sbin/zabbix_proxy: trapper #19 [processing data]  eth0       0.100       0.132 KB/sec
23720 zabbix   ..l/zabbix/sbin/zabbix_proxy: trapper #12 [processing data]  eth0       0.295       0.132 KB/sec
8815  root     sshd: root@pts/0,pts/1,pts/2                                 eth0       1.514       0.082 KB/sec
57093 root     /usr/java/j2sdk/bin/java
 



        
3、iftop                          

Linux流量监控工具 - iftop (最全面的iftop教程)

在类Unix系统中可以使用top查看系统资源、进程、内存占用等信息。查看网络状态可以使用netstat、nmap等工具。若要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop。

一、iftop是什么?

iftop是类似于top的实时流量监控工具。

二、iftop有什么用?

iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等,详细的将会在后面的使用参数中说明。

三、安装iftop安装方法1、编译安装

如果采用编译安装可以到iftop官网下载最新的源码包。
安装前需要已经安装好基本的编译所需的环境,比如make、gcc、autoconf等。安装iftop还需要安装libpcap和libcurses。
CentOS上安装所需依赖包:
yum install flex byacc  libpcap ncurses ncurses-devel libpcap-devel
Debian上安装所需依赖包:
apt-get install flex byacc  libpcap0.8 libncurses5
下载iftop
tar zxvf iftop-0.17.tar.gz
cd iftop-0.17
./configure
make && make install

安装方法2:(懒人办法,最简单)

直接省略上面的步骤
CentOS系统:
yum install flex byacc  libpcap ncurses ncurses-devel
rpm -ivh iftop-0.17-1.el5.rf.i386.rpm
Debian系统 运行:apt-get install iftop

四、运行iftop

直接运行: iftop
效果如下图:

五、相关参数及说明1、iftop界面相关说明

界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。
中间的<= =>这两个左右箭头,表示的是流量的方向。
TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量

2、iftop相关参数常用的参数

-i设定监测的网卡,如:# iftop -i eth1
-B 以bytes为单位显示流量(默认是bits),如:# iftop -B
-n使host信息默认直接都显示IP,如:# iftop -n
-N使端口信息默认直接都显示端口号,如: # iftop -N
-F显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
-h(display this message),帮助,显示参数信息
-p使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
-b使流量图形条默认就显示;
-f这个暂时还不太会用,过滤计算包用的;
-P使host信息及端口信息默认就都显示;
-m设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M

进入iftop画面后的一些操作命令(注意大小写)

按h切换是否显示帮助;
按n切换显示本机的IP或主机名;
按s切换是否显示本机的host信息;
按d切换是否显示远端目标主机的host信息;
按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;
按N切换显示端口号或端口服务名称;
按S切换是否显示本机的端口信息;
按D切换是否显示远端目标主机的端口信息;
按p切换是否显示端口信息;
按P切换暂停/继续显示;
按b切换是否显示平均流量图形条;
按B切换计算2秒或10秒或40秒内的平均流量;
按T切换是否显示每个连接的总流量;
按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;
按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
按j或按k可以向上或向下滚动屏幕显示的连接记录;
按1或2或3可以根据右侧显示的三列流量数据进行排序;
按<根据左边的本机名或IP排序;
按>根据远端目标主机的主机名或IP排序;
按o切换是否固定只显示当前的连接;
按f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!
按!可以使用shell命令,这个没用过!没搞明白啥命令在这好用呢!
按q退出监控。

 

--------------------------------------------

假如Keepalived有10个VIP,怎么查看每个VIP的流量呢?

这里就可以使用sar命令查看网卡流量了。前提是你Keepalived监听网卡时。设置网卡时子接口。

也就是说你网卡绑定子接口上。这样eth0:0,eth0:1,每个网卡流量都可以看了

在工作中,我们经常需要查看服务器的实时网卡流量。通常,我们会通过这几种方式查看Linux服务器的实时网卡流量。

1. sar -n DEV 1 2

sar命令包含在sysstat工具包中,提供系统的众多统计数据。其在不同的系统上命令有些差异,某些系统提供的sar支持基于网络接口的数据统计,也可以查看设备上每秒收发包的个数和流量。

1

sar –n DEV 1 2

命令后面1 2 意思是:每一秒钟取1次值,取2次。

DEV显示网络接口信息

另外,-n参数很有用,他有6个不同的开关:DEV | EDEV | NFS | NFSD | SOCK | ALL ,其代表的含义如下:

  1. DEV显示网络接口信息。
  2. EDEV显示关于网络错误的统计数据。
  3. NFS统计活动的NFS客户端的信息。
  4. NFSD统计NFS服务器的信息
  5. SOCK显示套接字信息
  6. ALL显示所有5个开关

1

2

3

4

5

6

7

8

9

10

11

12

13

14

[sre@CDVM-213017031 ~]$ sar -n DEV 1 2

Linux 2.6.32-431.el6.x86_64 (CDVM-213017031)  05/04/2017  _x86_64_ (4 CPU)

08:05:30 PM  IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s

08:05:31 PM  lo  0.00  0.00  0.00  0.00  0.00  0.00  0.00

08:05:31 PM  eth0 1788.00 1923.00 930.47 335.60  0.00  0.00  0.00

08:05:31 PM  IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s

08:05:32 PM  lo  0.00  0.00  0.00  0.00  0.00  0.00  0.00

08:05:32 PM  eth0 1387.00 1469.00 652.12 256.98  0.00  0.00  0.00

Average:  IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s

Average:   lo  0.00  0.00  0.00  0.00  0.00  0.00  0.00

Average:   eth0 1587.50 1696.00 791.29 296.29  0.00  0.00  0.00

参数说明:

  1. IFACE:LAN接口
  2. rxpck/s:每秒钟接收的数据包
  3. txpck/s:每秒钟发送的数据包
  4. rxbyt/s:每秒钟接收的字节数
  5. txbyt/s:每秒钟发送的字节数
  6. rxcmp/s:每秒钟接收的压缩数据包
  7. txcmp/s:每秒钟发送的压缩数据包
  8. rxmcst/s:每秒钟接收的多播数据包
  9. rxerr/s:每秒钟接收的坏数据包
  10. txerr/s:每秒钟发送的坏数据包
  11. coll/s:每秒冲突数
  12. rxdrop/s:因为缓冲充满,每秒钟丢弃的已接收数据包数
  13. txdrop/s:因为缓冲充满,每秒钟丢弃的已发送数据包数
  14. txcarr/s:发送数据包时,每秒载波错误数
  15. rxfram/s:每秒接收数据包的帧对齐错误数
  16. rxfifo/s:接收的数据包每秒FIFO过速的错误数
  17. txfifo/s:发送的数据包每秒FIFO过速的错误数

这种方式简单,直观,推荐使用。

2.实时监控脚本

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

#!/bin/bash

ethn=$1

while true

do

 RX_pre=$(cat /proc/net/dev grep $ethn | sed 's/:/ /g' awk '{print $2}')

 TX_pre=$(cat /proc/net/dev grep $ethn | sed 's/:/ /g' awk '{print $10}')

 sleep 1

 RX_next=$(cat /proc/net/dev grep $ethn | sed 's/:/ /g' awk '{print $2}')

 TX_next=$(cat /proc/net/dev grep $ethn | sed 's/:/ /g' awk '{print $10}')

 clear

 echo -e "\t RX `date +%k:%M:%S` TX"

 RX=$((${RX_next}-${RX_pre}))

 TX=$((${TX_next}-${TX_pre}))

 if [[ $RX -lt 1024 ]];then

 RX="${RX}B/s"

 elif [[ $RX -gt 1048576 ]];then

 RX=$(echo $RX | awk '{print $1/1048576 "MB/s"}')

 else

 RX=$(echo $RX | awk '{print $1/1024 "KB/s"}')

 fi

 if [[ $TX -lt 1024 ]];then

 TX="${TX}B/s"

 elif [[ $TX -gt 1048576 ]];then

 TX=$(echo $TX | awk '{print $1/1048576 "MB/s"}')

 else

 TX=$(echo $TX | awk '{print $1/1024 "KB/s"}')

 fi

 echo -e "$ethn \t $RX $TX "

done

  

此脚本不需要额外再安装软件,并且可自定义欲查看接口,精确到小数,可根据流量大小灵活显示单位,默认采集间隔为1秒。

用法为:

1、将脚本保存为可执行脚本文件,比如叫net.sh。

2、chmod +x ./net.sh 将文件改成可执行脚本。

3、sh net.sh eth0即可开始监看接口eth0流量,按ctrl+c退出。

脚本是通过读取运行时文件系统/proc/net/dev中的网络实时数据,并通过简单计算得到的。关于目录/proc/net/dev,请参考下文。

3. cat /proc/net/dev

Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。/proc文件系统中包含了很多目录,其中/proc/net/dev 保存了网络适配器及统计信息。

1

2

3

4

5

[sre@CDVM-213017031 ~]$ cat /proc/net/dev

Inter-| Receive            | Transmit

 face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed

 lo:137052296 108029 0 0 0  0   0   0 137052296 108029 0 0 0  0  0   0

 eth0:13661574714188 31346790620 0 0 0  0   0   0 5097461049535 27671144304 0 0 0  0  0   0

  

最左边的表示接口的名字,Receive表示收包,Transmit表示发送包;

  1.   bytes表示收发的字节数;
  2.   packets表示收发正确的包量;
  3.   errs表示收发错误的包量;
  4.   drop表示收发丢弃的包量;

其实,我们平时经常用的很多查看网卡实时流量的命令,都是通过读取该目录下的实时流量,并通过简单计算得到的。

4. 使用watch命令,配合ifconfig、more /proc/net/dev、cat /proc/net/dev来实时监控。比如执行 watch -n 1 "ifconfig eth0"

1

2

3

4

5

6

7

8

9

10

Every 1.0s: ifconfig eth0Thu May 4 20:26:45 2017

eth0  Link encap:Ethernet HWaddr FA:16:3E:7E:55:D1

   inet addr:10.213.17.31 Bcast:10.213.23.255 Mask:255.255.248.0

   inet6 addr: fe80::f816:3eff:fe7e:55d1/64 Scope:Link

   UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

   RX packets:31350149703 errors:0 dropped:0 overruns:0 frame:0

   TX packets:27674701465 errors:0 dropped:0 overruns:0 carrier:0

   collisions:0 txqueuelen:1000

   RX bytes:13663400883450 (12.4 TiB) TX bytes:5098104759633 (4.6 TiB)

  

watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果。

限制网速的方

一、在Linux/Centos下用wondershaper限速

1、首先下载wondershaper的rpm安装包:wondershaper-1.1a-7.noarch.rpm

  

2、安装wondershaper:

rpm -ivh wondershaper-1.1a-7.noarch.rpm

3、限速命令:

wondershaper bond0 500 50

第一个参数为网卡接口名,后面两个数字分别代表下行和上行的速度(单位Kb)

4、取消限速:

wondershaper clear eth0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值