【网络】如何判断网络达到瓶颈
目录
查看碰撞率 collisions
ifconfig 查看信息
# collisions:发生碰撞的数据包,如果发生太多次,表明网络状况不太好
[root@localhost ~]# ifconfig
enp61s0f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 182.200.31.57 netmask 255.255.255.0 broadcast 182.200.31.255
ether 10:19:65:e7:fa:1e txqueuelen 1000 (Ethernet)
RX packets 397612846 bytes 30815698063 (28.6 GiB)
RX errors 0 dropped 7968 overruns 0 frame 0
TX packets 26173914 bytes 3366937489 (3.1 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0ens3f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.169.31.57 netmask 255.255.255.0 broadcast 192.169.31.255
inet6 fe80::b696:91ff:fea0:3d8d prefixlen 64 scopeid 0x20<link>
ether b4:96:91:a0:3d:8d txqueuelen 1000 (Ethernet)
RX packets 612298747 bytes 571079706867 (531.8 GiB)
RX errors 0 dropped 51826 overruns 0 frame 0
TX packets 1075240400 bytes 1182950023315 (1.0 TiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 297730746 bytes 90218812438 (84.0 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 297730746 bytes 90218812438 (84.0 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
查看数据流占带宽比
查看方法
第1步:ethtool查看网卡标称带宽
用ethtool查询网卡信息,下面显示的速度是 Speed: 25000Mb/s,注意,这里是Mb,不是MB。1B=8b,所以是(25000/8)MB/S,乘以1024,就是1024*(25000/8)kB/s。
[root@localhost ~]# ethtool ens3f1
Settings for ens3f1:
Supported ports: [ FIBRE ]
Supported link modes: 1000baseT/Full
10000baseT/Full
25000baseCR/Full
25000baseSR/Full
1000baseX/Full
10000baseSR/Full
10000baseLR/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: None RS
Advertised link modes: 10000baseT/Full
25000baseCR/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: None RS
Link partner advertised link modes: Not reported
Link partner advertised pause frame use: No
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 25000Mb/s
Duplex: Full
Port: Direct Attach Copper
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
第二步:sar命令查看数据流占用带宽
通过sar命令(sar -n DEV 1)查看网络情况,rxkB/s表示每秒接收的数据量,除以上面的speed
186879.59/1024*(25000/8)*100 = 5.8%
可以看出,带宽占用比不高。
01时36分25秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
01时36分26秒 lo 244.00 244.00 38.57 38.57 0.00 0.00 0.00
01时36分26秒 enp61s0f0 882.00 116.00 56.12 16.78 0.00 0.00 0.00
01时36分26秒 enp61s0f1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01时36分26秒 ens3f0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01时36分26秒 enp61s0f2 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01时36分26秒 ens3f1 137430.00 50011.00 186879.59 9912.94 0.00 0.00 0.00
01时36分26秒 enp61s0f3 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01时36分26秒 ens6f0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01时36分26秒 ens6f1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
原文:如何判断网络达到瓶颈 - wuxiaomiao - 博客园
注意 参照物
1、网卡的标称带宽
根据进出网卡的流量和网卡带宽的比较判断出来的。 进出网卡的流量分别是90MB/s和115MB/s,和千兆网卡的最大吞吐量非常接近了。在这里,我使用的参照物是网卡的标称带宽。
但是,不同的使用场景下,带宽的上限是不一样的。比如,很多万兆卡使用MTU 9000比使用MTU 1500,在传输流数据的时候有明显的优势。再比如,同一张网卡流数据传输和小块数据传输的吞吐量上限很大概率是不同的。有些厂商会提供性能白皮书来给客户做参考,比如
我们可以依赖厂商提供的数据来判断当前网络是否达到了峰值。
但是,真实的环境永远是残酷的。两台机器可能来自不同的厂商,不同的体系架构,使用不同的操作系统;网卡也是不同的厂商,不同的型号,中间还隔着路由器,交换机,防火墙和万水千山。这个时候,就很难依靠静态的参照物了,吞吐量的峰值和理想情况下会差距很大。
iperf工具测得的数据作为参照
这个时候,我们就可以用iperf等工具,自己把参照物测试出来。
iperf2和iperf3都是测试网络性能的工具。具体介绍参见:
iperf 一个测试网络吞吐的工具www.cnblogs.com/xuyaowen/p/iperf-for-network.html
如果我们要获得当前网络的吞吐量峰值,有两个和应用相关的特征要掌握:
- 包大小
- 并发连接数
在上一篇中,通过nmon的NET和NET PACKETS,我们可以知道包大小大概是500字节不到。通过和测试人员交流,我了解到TPS峰值时是128个并发。但是,因为我们的应用还有处理器和io的开销,未必和iperf3 128个连接完全等价, 所以我建议应该要多试几种连接数。
首先,在服务器端,我们启动iperf3的server。
iperf3 -s -i 1 --logfile iperf-server.txt
然后,在客户端,我们启动iperf3的client。
iperf3 -c 192.168.0.2 -t 60 -P 64 --length 512 --logfile iperfclient.txt
包大小我们通过--length参数设置为512。
通过调节-P参数,我们可以尝试16,32,64,128等不同连接数。
在iperf-server.txt文件结尾,我们可以看到服务器端的吞吐量。SUM那一行显示服务器端的吞吐量是1.12Gbps。
[127] 0.00-60.02 sec 125 MBytes 17.5 Mbits/sec receiver
[129] 0.00-60.02 sec 125 MBytes 17.5 Mbits/sec receiver
[131] 0.00-60.02 sec 125 MBytes 17.5 Mbits/sec receiver
[133] 0.00-60.02 sec 125 MBytes 17.5 Mbits/sec receiver
[SUM] 0.00-60.02 sec 7.82 GBytes 1.12 Gbits/sec receiver
多试几种不同的连接数,我们就可以得到下面这张表。这张表告诉我们,如果有64个并发连接,这张万兆卡只有1.12Gbps的吞吐量。