监控网卡流量

sar命令

  • sar命令是Linux系统中特别强大的一个命令,通过 sar 命令可以全面的获取系统的 CPU、运行队列、磁盘 I/O、交换区、内存、 cpu 中断、网络等性能数据。
  • sar命令和iostat命令都是由systat安装包安装的

sar 命令行的常用格式:

  • sar [options] [-A] [-o file] t [n]在命令行中, n 和 t 两个参数组合起来定义采样间隔和次数, t 为采样间隔, 是必须有的参数, n 为采样次数,是可选的,默认值是 1, -o file 表示将命令结果以二进制格式存放在文件中, file 在此处不是关键字,是文件名。 options 为命令行选项:

  • -A:所有报告的总和。

  • -u: CPU 利用率

  • -v:进程、节点、文件和锁表状态。

  • -p:像是当前系统中指定 CPU 使用信息。

  • -d:硬盘使用报告。

  • -r:显示系统内存的使用情况。

  • -n: 显示网络运行状态。 参数后面可跟 DEV、 EDEV、 SOCK 和 FULL。 DEV 显示网络接口信息, EDEV 显示网络错误的统计数据, SOCK 显示套接字信息, FULL 显示前三参数所有信息。

  • -q:显示运行队列的大小,它与系统当时的平均负载相同

  • -B:内存分页情况

  • -R:显示进程在采样时间内的活动情况。

  • -g:串口 I/O 的情况。

  • -b:缓冲区使用情况。

  • -a:文件读写情况。

  • -c:系统调用情况。

  • -R:进程的活动情况。

  • -y:终端设备活动情况。

  • -W:系统交换活动。

使用sar命令来查看网卡流量情况,下面这个情况是查看网卡流量情况,一秒读取一次,一共读取2次。

[root@localhost ~]# sar -n DEV 1 2
Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 	03/02/2019 	_x86_64_	(4 CPU)

01:41:13 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
01:41:14 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:41:14 AM     ens33      0.00      0.00      0.00      0.00      0.00      0.00      0.00

01:41:14 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
01:41:15 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:41:15 AM     ens33      0.99      1.98      0.06      0.48      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:        ens33      0.50      0.99      0.03      0.24      0.00      0.00      0.00
  • 上面的输出结果中,IFACE 是网卡名字;
  • rxpck/s是网卡每秒接收数据包的数量;
  • txpck/s是网卡每秒发送数据包的数量;
  • rxkB/s是网卡每秒接收数据的大小;
  • txkB/s是网卡每秒发送数据的大小;
  • 其余内容不用太关注。

nload命令

  • nload命令是动态查看网卡流量情况。
  • nload安装包是由扩展源提供的,需要先安装扩展源,yum install -y epel-release 然后再安装yum install nload -y
  • 直接运行nload就可以查看网卡流量,按上下箭头可以切换不同的网卡。
  • 或者使用nload eth0这样查看指定网卡流量。

ethtool 和 mii-tool 命令

  • ethtool eth0 这个命令可以查看网卡的信息,以及有没有网线连接。
  • mii-tool eth0 可以查看网口有没有网线连接
[root@localhost ~]# ethtool ens33
Settings for ens33:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: off (auto)
	Supports Wake-on: d
	Wake-on: d
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes
[root@localhost ~]# mii-tool ens33
ens33: negotiated 1000baseT-FD flow-control, link ok

查看进程

ps命令

  • 直接运行ps命令是查看当前终端下的进程
[root@localhost ~]# ps
   PID TTY          TIME CMD
  9941 pts/0    00:00:00 bash
 10128 pts/0    00:00:00 ps
  • ps -aux 可以查看系统中所有用户的进程
[root@localhost ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.1  0.1 125416  3916 ?        Ss   01:24   0:07 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    01:24   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    01:24   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   01:24   0:00 [kworker/0:0H]
root          6  0.0  0.0      0     0 ?        S    01:24   0:02 [kworker/u256:0]
root          7  0.0  0.0      0     0 ?        S    01:24   0:01 [migration/0]
root          8  0.0  0.0      0     0 ?        S    01:24   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    01:24   0:06 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S<   01:24   0:00 [lru-add-drain]
  • 输出结果:
    • USER 用户
    • PID 进程号
    • %CPU CPU使用率
    • %MEM内存使用率
    • VSZ虚拟内存大小
    • RSS物理内存大小
    • TTY ,显示?的tty都是后台运行的。
    • STAT:进程状态
    • START,进程启动的时间
    • TIME 进程空闲的时间
    • COMMAND 对应的指令
  • 上面输出的结果中的STAT一列显示的内容有:
    • S Sleep
    • R Running
    • s 父进程
    • N 低优先级
    • < 高优先级
    • +前台进程
    • l 多线程进程
    • Z 僵尸进程
  • ps -elf 跟aux类似,也是查看系统中所有的进程
[root@localhost ~]# ps -elf
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root          1      0  0  80   0 - 31354 ep_pol 01:24 ?        00:00:07 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
1 S root          2      0  0  80   0 -     0 kthrea 01:24 ?        00:00:00 [kthreadd]
1 S root          3      2  0  80   0 -     0 smpboo 01:24 ?        00:00:00 [ksoftirqd/0]
1 S root          5      2  0  60 -20 -     0 worker 01:24 ?        00:00:00 [kworker/0:0H]
1 S root          6      2  0  80   0 -     0 worker 01:24 ?        00:00:02 [kworker/u256:0]
1 S root          7      2  0 -40   - -     0 smpboo 01:24 ?        00:00:01 [migration/0]
1 S root          8      2  0  80   0 -     0 rcu_gp 01:24 ?        00:00:00 [rcu_bh]
1 S root          9      2  0  80   0 -     0 rcu_gp 01:24 ?        00:00:06 [rcu_sched]
1 S root         10      2  0  60 -20 -     0 rescue 01:24 ?        00:00:00 [lru-add-drain]
  • ps -eLf 查看线程
[root@localhost ~]# ps -eLf
UID         PID   PPID    LWP  C NLWP STIME TTY          TIME CMD
root          1      0      1  0    1 01:24 ?        00:00:07 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2      0      2  0    1 01:24 ?        00:00:00 [kthreadd]
root          3      2      3  0    1 01:24 ?        00:00:00 [ksoftirqd/0]
root          5      2      5  0    1 01:24 ?        00:00:00 [kworker/0:0H]
root          6      2      6  0    1 01:24 ?        00:00:02 [kworker/u256:0]
root          7      2      7  0    1 01:24 ?        00:00:01 [migration/0]
root          8      2      8  0    1 01:24 ?        00:00:00 [rcu_bh]
root          9      2      9  0    1 01:24 ?        00:00:06 [rcu_sched]
root         10      2     10  0    1 01:24 ?        00:00:00 [lru-add-drain]
  • ls /proc/pid 可以查看一个进程的详细信息。
03-02 18:58