监控网卡流量
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 可以查看一个进程的详细信息。