Linux性能监控(网络性能)
Linux性能监控(网络性能)网络的监测是所有 Linux 子系统里面最复杂的,有太多的因素在里面,比如:延迟、阻塞、冲突、丢包等,更糟的是与 Linux 主机相连的路由器、交换机、无线信号都会影响到整体网络并且很难判断是因为 Linux 网络子系统的问题还是别的设备的问题,增加了监测和判断的复杂度。现在我们使用的所有网卡都称为自适应网卡,意思是说能根据网络上的不同网络设备导致的不同网络速度和工.
Linux性能监控(网络性能)
网络的监测是所有 Linux 子系统里面最复杂的,有太多的因素在里面,比如:延迟、阻塞、冲突、丢包等,更糟的是与 Linux 主机相连的路由器、交换机、无线信号都会影响到整体网络并且很难判断是因为 Linux 网络子系统的问题还是别的设备的问题,增加了监测和判断的复杂度。现在我们使用的所有网卡都称为自适应网卡,意思是说能根据网络上的不同网络设备导致的不同网络速度和工作模式进行自动调整。
iperf3命令
iperf3是一个免费的开源,跨平台命令行程序,用于执行实时网络吞吐量测量。 它是测试IP网络中可实现的最大带宽的强大工具之一(支持IPv4和IPv6 )。
iperf3是一个网络性能测试工具。Iperf可以测试TCP和UDP带宽质量。iperf3可以测量最大TCP带宽,具有多种参数和UDP特性。Iperf可以报告带宽,延迟抖动和数据包丢失。利用iperf3这一特性,可以用来测试一些网络设备如路由器,防火墙,交换机等的性能。
要求:两台联网的计算机都安装了iperf3 。
安装
CentOS, RedHat or Fedora,运行下列命令来安装
yum install iperf3
Debian, Ubuntu or 它的衍生版, 运行下列命令来安装
apt install iperf3
语法
iperf [-s|-c host] [options]
iperf [-h|–help] [-v|–version]
参数
默认情况客户端使用TCP协议
-s:指明是服务器端
-c: 指明是客户端(-c 后面跟服务器端的ip)
-u:指定是udp报文
-b:指定发送带宽大小
-p:指定端口
-h:查看所有参数含义
示例
注意:
测试之前要配置防火墙,不然会报以下错误
iperf3: error - unable to connect to server: No route to host
在服务器端放行客户端的ip
iptables -I INPUT 1 -s 192.168.10.11 -j ACCEPT
服务器端:
iperf3 -s -p 9011
客户端:
iperf3 -u -c 192.168.10.10 -b 100M -p 9011
netstat命令
Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字。如果你想确认系统上的 Web 服务有没有起来,你可以查看80端口有没有打开。
安装
yum provides */netstat 命令就可以看到提供命令的工具包
CentOS, RedHat or Fedora,运行下列命令来安装
yum install net-tools
Debian, Ubuntu or 它的衍生版, 运行下列命令来安装
apt install net-tools
语法
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][–ip]
参数
-a或–all 显示所有连线中的Socket。
-A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址。
-c或–continuous 持续列出网络状态。
-C或–cache 显示路由器配置的快取信息。
-e或–extend 显示网络其他相关信息。
-F或–fib 显示FIB。
-g或–groups 显示多重广播功能群组组员名单。
-h或–help 在线帮助。
-i或–interfaces 显示网络界面信息表单。
-l或–listening 显示监控中的服务器的Socket。
-M或–masquerade 显示伪装的网络连线。
-n或–numeric 直接使用IP地址,而不通过域名服务器。
-N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称。
-o或–timers 显示计时器。
-p或–programs 显示正在使用Socket的程序识别码和程序名称。
-r或–route 显示Routing Table。
-s或–statistice 显示网络工作信息统计表。
-t或–tcp 显示TCP传输协议的连线状况。
-u或–udp 显示UDP传输协议的连线状况。
-v或–verbose 显示指令执行过程。
-V或–version 显示版本信息。
-w或–raw 显示RAW传输协议的连线状况。
-x或–unix 此参数的效果和指定"-A unix"参数相同。
–ip或–inet 此参数的效果和指定"-A inet"参数相同。
示例
1. 列出所有连接
netstat -a
2. 只列出 TCP 或 UDP 协议的连接
netstat -at #列出所有TCP协议的连接
netstat -au #列出所有UDP协议的连接
3. 获取进程名、进程号以及用户 ID
netstat -nlpt
4. 查看监听状态的连接
netstat -tuln
输出信息解释
Proto Recv-Q Send-Q Local Address Foreign Address State
- Proto:网络连接的协议,一般就是 TCP 协议或者 UDP 协议。
- Recv-Q:表示接收到的数据,已经在本地的缓冲中,但是还没有被进程取走。
- Send-Q:表示从本机发送,对方还没有收到的数据,依然在本地的缓冲中,不具备 ACK 标志的数据包。
- Local Address:本机的 IP 地址和端口号。
- ForeignAddress:远程主机的 IP 地址和端口号。
- State:状态。常见的状态主要有以下几种。
-LISTEN:监听状态,只有 TCP 协议需要监听,而 UDP 协议不需要监听。
-ESTABLISHED:已经建立连接的状态。如果使用"-I"选项,则看不到已经建立连接的状态。
-SYN_SENT:SYN 发起包,就是主动发起连接的数据包。
-SYN_RECV:接收到主动连接的数据包。
-FIN_WAIT1:正在中断的连接。
-FIN_WAIT2:已经中断的连接,但是正在等待对方主机进行确认。
-TIME_WAIT:连接已经中断,但是套接字依然在网络中等待结束。
-CLOSED:套接字没有被使用。
在这些状态中,我们最常用的就是 LISTEN 和 ESTABLISHED 状态,一种代表正在监听,另一种代表已经连接。
5. 打印统计数据
netstat -s
6. 显示内核路由信息
netstat -rn
7. 打印网络接口
netstat -i
iftop命令
iftop是类似于top的实时流量监控工具。
安装
CentOS, RedHat or Fedora,运行下列命令来安装
yum install iftop
Debian, Ubuntu or 它的衍生版, 运行下列命令来安装
apt install iftop
参数
-i 设定监测的网卡,如:# iftop -i eth1
-B 以bytes为单位显示流量(默认是bits),如:# iftop -B
-n 使host信息默认直接都显示IP,如:# iftop -n
-N 使端口信息默认直接都显示端口号,如: # iftop -N
-F 显示特定网段的进出流量,如# iftop -F 121.11.1.0/24或# iftop -F 121.11.1.0/255.255.255.0
-h(display this message),帮助,显示参数信息
-p 使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
-b 使流量图形条默认就显示;
-P 使host信息及端口信息默认就都显示;
快捷键
按h切换是否显示帮助;
按n切换显示本机的IP或主机名;
按N切换显示端口号或端口服务名称;
按D切换是否显示远端目标主机的端口信息;
按P切换暂停/继续显示;
按b切换是否显示平均流量图形条;
按B切换计算2秒或10秒或40秒内的平均流量;
按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;
按1或2或3可以根据右侧显示的三列流量数据进行排序;
按q退出监控
示例
iftop -i ens33 -n -P
iftop界面说明:
界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。
中间的<= =>这两个左右箭头,表示的是流量的方向。
TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量
nload命令
nload是另一种简单易用的命令行工具,用于实时监控网络流量和带宽使用情况。 它使用图表来帮助您监控入站和出站流量。 此外,它还显示诸如传输数据总量和最小/最大网络使用量等信息。
安装
CentOS, RedHat or Fedora,运行下列命令来安装
yum install nload
Debian, Ubuntu or 它的衍生版, 运行下列命令来安装
apt install nload
语法
nload [options] [devices]
参数
-i:进入网卡的流量图的显示比例最大值设置,默认10240 kBit/s.
-m:不显示流量图,只显示统计数据。
-o:出去网卡的流量图的显示比例最大值设置,默认10240 kBit/s.
-t:显示数据的刷新时间间隔,单位是毫秒,默认500。
-u:设置右边Curr、Avg、Min、Max的数据单位,默认是自动变的.注意大小写单位不同!
h|b|k|m|g h: auto, b: Bit/s, k: kBit/s, m: MBit/s etc.
H|B|K|M|G H: auto, B: Byte/s, K: kByte/s, M: MByte/s etc.
-U:设置右边Ttl的数据单位,默认是自动变的.注意大小写单位不同(与-u相同)
示例
nload
按Tab键切换网卡
nload 默认分为上下两块:
上半部分是:Incoming也就是进入网卡的流量,
下半部分是:Outgoing,也就是从这块网卡出去的流量,
每部分都有当前流量(Curr),
平均流量(Avg),
最小流量(Min),
最大流量(Max),
总和流量(Ttl)这几个部分,看起来还是蛮直观的。
nethogs命令
NetHogs是一种类似于顶级的基于文本的工具,用于监控Linux系统上运行的每个进程或应用程序的实时网络流量带宽使用情况。 它仅提供基于每个进程的网络带宽使用情况的实时统计信息
安装
CentOS, RedHat or Fedora,运行下列命令来安装
yum install nethogs
Debian, Ubuntu or 它的衍生版, 运行下列命令来安装
apt install nethogs
语法
nethogs [-h] [-V] [-d] [-v] [-t] [-c] [-p] [-s] [device(s)]
参数
-V : 打印版本.
-d : 刷新频率. 默认 1s.
-t : 跟踪模式.
-b : bughunt模式,隐式tracemode.
-p : 嗅探在混合模式下(不推荐).
device : 指定监控网卡设备.
快捷键
m : 修改单位
r : 按流量排序
s : 按发送流量排序
q : 退出命令提示符
示例
nethogs
监控多块网卡
nethogs ens33 ens34
更多推荐
所有评论(0)