衡量网络性能的指标
- 吞吐量:是指主机之间单位时间内实际传输的数据量,单位通常为比特/秒,b/s。
- 带宽:是指网络的最大数据传输速率,常用单位也是比特/秒,b/s。网络使用率:吞吐量/带宽。
- 延迟:是指发出网络请求之后到收到相应的间隔时间。
- PPS:即包/秒,是指以网络包为单位的传输速率。
查看网络参数
运行ifconfig命令:
$ ifconfig wlp3s0
wlp3s0 Link encap:Ethernet HWaddr 28:b2:bd:ee:dd:ff
inet addr:192.168.0.108 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::4150:842b:ee84:6914/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:576378 errors:0 dropped:0 overruns:0 frame:0
TX packets:229916 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:739542082 (739.5 MB) TX bytes:40995889 (40.9 MB)
其中,RUNNING字段是指示网络接口的状态标志,表示物理网络是连通的。
MTU表示了网络传输数据包的最大字节数。
另外IP地址、子网以及MAC地址等信息也可以从输出中查看到。
RX TX字段显示了网络收发的包数、字节数等,其中errors表示发生了错误的数据包数,可能是校验错误、帧同步错误导致的;dropped表示丢弃的数据包数,当内存不足时,可能导致;overruns表示超限数据包数,当网络速度过快时,导致数据包来不及处理而导致的丢包;carrier表示的是载波错误,通常是物理层的错误导致的,例如网线问题、强电干扰等;collisions表示冲突的信息报的数目;txqueuelen表示发送队列的大小,单位是MB。
详细的说明可以通过man ifconfig进行查看。
查看网络吞吐和PPS
通过sar命令可以查看网络接口的信息,输入下面命令,可以每个1秒网络接口的统计信息:
xj@buaa:~/open_url$ sar -n DEV 1
Linux 4.15.0-112-generic (buaa) 220年08月26日 _x86_64_ (4 CPU)
09时47分10秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
09时47分11秒 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
09时47分11秒 lo 161.00 161.00 49.96 49.96 0.00 0.00 0.00 0.00
09时47分11秒 wlp3s0 1.00 0.00 0.04 0.00 0.00 0.00 0.00 0.00
其中,rxpck/s表示的是接受的PPS,单位包/秒;txpck/s表示的是发送的PPS,单位包/秒;rxkB/s表示的是接收的吞吐量,单位KB/秒;txkB/s表示的是发送的吞吐量,单位KB/秒;rxcmp/s表示的是接收的压缩数据包数,单位包/秒;txcmp/s表示的是发送的压缩数据包数,单位包/秒;%ifutil表示网络接口的使用率,计算方式根据模式的不同而不同,在半双工模式下为(rxkB/s+txkB/s)/Bandwidth,双工模式下为max(rxkB/s+txkB/s)/Bandwidth。
查看连通性和延时
使用ping命令可以查看
$ ping -c3 www.baidu.com
PING www.a.shifen.com (180.101.49.42) 56(84) bytes of data.
64 bytes from 180.101.49.42: icmp_seq=1 ttl=53 time=26.1 ms
64 bytes from 180.101.49.42: icmp_seq=2 ttl=53 time=29.5 ms
64 bytes from 180.101.49.42: icmp_seq=3 ttl=53 time=31.9 ms
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 26.189/29.246/31.999/2.381 ms
ping 命令是基于ICMP(Internet Control Message Protocol)协议的。ping命令会发送一份ICMP回显请求报文给目标主机,并等待目标主机返回ICMP回显应答。因为ICMP协议会要求目标主机在收到消息之后,必须返回ICMP应答消息给源主机,如果源主机在一定时间内收到了目标主机的应答,则表明两台主机之间网络是可达的。输出的第一部分是ICMP的请求信息,包含了往返延时等信息;第二部分是汇总信息。