网络基本概念和测试( 二 )

  • rxpck/s 和 txpck/s 每秒接收的数据包数量和每秒发送数据包的数量 。
  • rxkB/s 和 txkB/s 每秒接收的字节数和发送的吞吐量 。
  • rxcmp/s 和 txcmp/s 每秒钟接收和发送的压缩数据包 。
  • rxmcst/s 每秒收到多播的数量 。
  • 2.4 带宽查看[root@localhost ~]#ethtool ens33 | grep SpeedSpeed: 1000Mb/s以上为千兆网卡
    2.5 连通性测试和延时查看这个比较简单,我们一般通过 ping 进行测试,如下:
    [root@localhost ~]# ping -c10 www.baidu.comPING www.a.shifen.com (14.215.177.38) 56(84) bytes of data.64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=55 time=36.2 ms64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=55 time=36.1 ms64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=3 ttl=55 time=35.8 ms...time=35.8 ms 标识往返时延 。设置 ping 包大小,可以测试网络中 mtu 大概范围:
    [root@localhost ~]# ping -c 4 -s 1420 www.baidu.comPING www.a.shifen.com (14.215.177.38) 1420(1448) bytes of data.1428 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=55 time=36.4 ms1428 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=55 time=35.2 ms1428 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=3 ttl=55 time=36.5 ms三 网络层性能测试3.1 网路层可以通过 pktgen 来测试网络性能# 加载发包工具$ modprobe pktgen定义发包脚本:
    # 定义一个工具函数,方便后面配置各种测试选项function pgset() {local resultecho $1 > $PGDEVresult=`cat $PGDEV | fgrep "Result: OK:"`if [ "$result" = "" ]; thencat $PGDEV | fgrep Result:fi}# 为0号线程绑定ens33网卡PGDEV=/proc/net/pktgen/kpktgend_0pgset "rem_device_all"# 清空网卡绑定pgset "add_device eth0"# 添加eth0网卡# 配置ens33网卡的测试选项PGDEV=/proc/net/pktgen/ens33pgset "count 1000000"# 总发包数量pgset "delay 5000"# 不同包之间的发送延迟(单位纳秒)pgset "clone_skb 0"# SKB包复制pgset "pkt_size 64"# 网络包大小pgset "dst 192.168.1.30" # 目的IPpgset "dst_mac 11:11:11:11:11:11"# 目的MAC# 启动测试PGDEV=/proc/net/pktgen/pgctrlpgset "start"查看测试结果:
    [root@localhost pktgen]# cat /proc/net/pktgen/em1Params: count 1000000min_pkt_size: 64max_pkt_size: 64frags: 0delay: 5000clone_skb: 0ifname: em1flows: 0 flowlen: 0queue_map_min: 0queue_map_max: 0dst_min: 192.168.1.29dst_max:src_min:src_max:src_mac: f8:bc:12:4c:65:00 dst_mac: 11:11:11:11:11:11udp_src_min: 9udp_src_max: 9udp_dst_min: 9udp_dst_max: 9src_mac_count: 0dst_mac_count: 0Flags:Current:pkts-sofar: 1000000errors: 0started: 335193101003usstopped: 335198101130us idle: 4529619usseq_num: 1000001cur_dst_mac_offset: 0cur_src_mac_offset: 0cur_saddr: 192.168.1.29cur_daddr: 192.168.1.30cur_udp_dst: 9cur_udp_src: 9cur_queue_map: 0flows: 0Result: OK: 5000126(c470506+d4529619) usec, 1000000 (64byte,0frags)199994pps 102Mb/sec (102396928bps) errors: 0
    1. 第一部分的 Params 是测试选项;
    2. 第二部分的 Current 是测试进度,其中, packts so far(pkts-sofar)表示已经发送了 100 万个包,也就表明测试已完成 。
    3. 第三部分的 Result 是测试结果,包含测试所用时间、网络包数量和分片、PPS、吞吐量以及错误数 。结果每秒发送 19 万个包,吞吐量为 102Mb/s.
    3.2 TCP/UDP 性能测试【网络基本概念和测试】iperf 和 netperf 是用来测试 tcp、udp 的吞吐量的常用工具 。
    # 安装yum install iperf3# 测试# -s 启动服务器端 -i 汇报间隔 -p 端口启动1234$iperf3 -s -i 1 -p 1234# -c表示启动客户端,127.0.0.1为目标服务器的IP# -b表示目标带宽(单位是bits/s)# -t表示测试时间# -P表示并发数,-p表示目标服务器监听端口$iperf3 -c 127.0.0.1-b 10G -t 15 -P 2 -p 1234报告查看,本机测试 20Gbps 还是可以达到的 。
    [ ID] IntervalTransferBitrateRetr[5]0.00-15.00sec17.5 GBytes10.0 Gbits/sec6sender[5]0.00-15.03sec17.5 GBytes9.98 Gbits/secreceiver[7]0.00-15.00sec17.5 GBytes10.0 Gbits/sec2sender[7]0.00-15.03sec17.5 GBytes9.98 Gbits/secreceiver[SUM]0.00-15.00sec34.9 GBytes20.0 Gbits/sec8sender[SUM]0.00-15.03sec34.9 GBytes20.0 Gbits/secreceiver3.3 HTTP 性能测试http 性能测试可以选择的不少,常用的有 ab(Apache 自带的 HTTP 压测工具),webbench 。
    # ab工具安装yum install -y httpd-tools运行下 http 服务器:
    [root@localhost ~]# podman run -p 80:80 -itd nginxb924819bbd3c3eadcd14e2c6b2088f838fa88399fd8404dfbd9863d04570f900[root@localhost ~]# podman psCONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMESb924819bbd3cDocker.io/feisky/nginx:latestnginx -g daemon o...9 seconds agoUp 8 seconds ago0.0.0.0:80->80/tcpbeautiful_tereshkov


    推荐阅读