详情页标题前

阿里云ECS云服务器网络性能测试最佳实践-云淘科技

详情页1

本文主要以ECS实例使用Netperfsockperf工具测试网络性能的方法为例,为您介绍如何测试ECS实例的网络PPS网络带宽网络时延

前提条件

  • 已创建符合测试场景规格要求的ECS实例。具体操作,请参见自定义购买实例。

  • 在同一测试场景下,所有ECS实例必须所属同一个VPC、同一台交换机和同一个安全组。

准备环境

重要

  • 强烈建议您在新购买的无数据的ECS实例上使用工具测试网络性能,避免造成数据丢失。

  • 实例规格指标均在测试数据环境下验证获得。在真实场景中,受实例负载、组网模型等其他因素的影响,实例的性能表现可能存在差异,请您以实际情况为准。

做网络性能测试(网络PPS、网络带宽和网络时延)的ECS实例作为本次的测试机和辅助测试机。测试机可作为Netperf或sockperf工具测试中的Client端或Server端。辅助测试机也可作为Netperf或sockperf工具测试中的Client端或Server端,与测试机之间建立控制连接,传递测试配置相关的信息。

不同测试场景下,ECS实例的示例规格及推荐数量如下表所示。

  • 测试ECS实例的网络PPS

    网络PPS小于600万

    测试示例

    测试机

    辅助测试机

    实例规格

    ecs.g7.large

    ecs.g7.large

    镜像

    Alibaba Cloud Linux 2.1903 LTS 64位

    Alibaba Cloud Linux 2.1903 LTS 64位

    数量

    1

    1

    网络PPS大于600万小于2000万

    测试示例

    测试机

    辅助测试机

    实例规格

    ecs.g7.16xlarge

    ecs.g7.16xlarge

    镜像

    Alibaba Cloud Linux 2.1903 LTS 64位

    Alibaba Cloud Linux 2.1903 LTS 64位

    数量

    1

    3

    网络PPS大于2000万

    测试示例

    测试机

    辅助测试机

    实例规格

    ecs.g7.32xlarge

    ecs.g7.32xlarge

    镜像

    Alibaba Cloud Linux 2.1903 LTS 64位

    Alibaba Cloud Linux 2.1903 LTS 64位

    数量

    1

    3

  • 测试ECS实例的网络带宽和网络时延

    说明

    测试ECS实例的网络带宽和网络时延对网络PPS大小没有要求,可任意选择实例规格进行测试,本文以如下规格为例进行测试。

    测试示例

    测试机

    辅助测试机

    实例规格

    ecs.g7.large

    ecs.g7.large

    镜像

    Alibaba Cloud Linux 2.1903 LTS 64位

    Alibaba Cloud Linux 2.1903 LTS 64位

    数量

    1

    1

测试网络PPS

网络PPS小于600万

  1. 分别远程连接测试机和辅助测试机。

    关于连接方法的介绍,请参见实例连接概述。

  2. 分别在测试机和辅助测试机上执行以下命令,下载Netperf。

    wget https://benchmark-packages.oss-cn-qingdao.aliyuncs.com/netperf-2.7.0.tar.gz
  3. 分别在测试机和辅助测试机上执行以下命令,安装Netperf和sar监控工具。

    1. 执行以下命令,解压Netperf包。

      yum install -y gcc autoconf automake libtool sysstat
      tar -zxvf netperf-2.7.0.tar.gz
    2. 执行以下命令,查询gcc版本号。

      gcc -v 2>&1
    3. 如果测试机和辅助测试机的gcc版本高于10,需先执行以下命令,打开并手动删除nettest_omni.c文件中的声明变量内容。

      cd netperf
      vim src/nettest_omni.c

      手动删除nettest_omni.c文件中如下声明变量内容。

      /* different options for the sockets        */
      
      int
        loc_nodelay,    /* don't/do use NODELAY  locally    */
        rem_nodelay,    /* don't/do use NODELAY remotely  */
        loc_sndavoid,    /* avoid send copies locally    */
        loc_rcvavoid,    /* avoid recv copies locally    */
        rem_sndavoid,    /* avoid send copies remotely    */
        rem_rcvavoid;   /* avoid recv_copies remotely    */

      修改完成后按Esc键,并输入:wq后按下回车键,保存并退出。

    4. 执行以下命令,安装Netperf和sar监控工具。

      cd netperf
      ./configure
      make && make install
  4. 在测试机上执行以下命令,启动64个netserver服务。

    #!/bin/bash
    for j in `seq 64`; do
        netserver -p $[16000+j] > server_$[16000+j].netperf > /dev/null 2>&1  &
    done
  5. 在测试机上执行以下命令,查询测试机的私网IP地址。

    ifconfig || ip addr

    阿里云ECS云服务器网络性能测试最佳实践-云淘科技

  6. 在辅助测试机上执行以下命令,向测试机输入流量。

    #!/bin/bash
    server_ip=
    for j in `seq 64`; do
        port=$[16000+j]
        netperf -H ${server_ip} -l ${run_time:-300} -t UDP_STREAM  -p $port  -- -m 1 -D > /dev/null 2>&1 &
    done

    需替换为上一步查询的实际测试机的私网IP地址,示例如下图所示。阿里云ECS云服务器网络性能测试最佳实践-云淘科技

  7. 在测试机上执行以下命令,测试网络流量。

    sar -n DEV 1

    在测试结果中查看rxpck/s列的数据值,rxpck/s表示该测试机每秒钟接收的数据包总数。如下图所示,示例中测试机每秒钟接收到的数据包数约为90万。阿里云ECS云服务器网络性能测试最佳实践-云淘科技

网络PPS大于600万小于2000万

  1. 分别远程连接测试机和辅助测试机。

    关于连接方法的介绍,请参见实例连接概述。

  2. 分别在3台辅助测试机和1台测试机上执行以下命令,安装sockperf。

    yum install -y autoconf automake libtool gcc-c++
    cd /opt
    wget https://github.com/Mellanox/sockperf/archive/refs/tags/3.8.tar.gz
    tar -zxf 3.8.tar.gz
    cd sockperf-3.8/
    ./autogen.sh
    ./configure
    make -j `cat /proc/cpuinfo| grep process | wc -l`
    make install
  3. 在测试机上执行以下命令,查询测试机的私网IP地址。

    ifconfig || ip addr

    阿里云ECS云服务器网络性能测试最佳实践-云淘科技

  4. 分别在3台辅助测试机上执行以下命令,向测试机输入流量。

    server_ip=""
    threads=64
    msg_size=14
    run_time=60
    
    basePort=6666
    for((i=0;i&1 &
    done

    其中是实际测试机的私网IP地址,run_time是输入流量的时间,请您根据实际情况修改。

  5. 分别在3台辅助测试机和1台测试机上执行以下命令,测试网络流量。

    sar -n DEV 1

    在测试机上查看rxpck/s列的数据值,rxpck/s表示该测试机每秒钟接收到的数据包。如下图所示,示例中测试机每秒钟接收到的数据包数约为1200万。阿里云ECS云服务器网络性能测试最佳实践-云淘科技

网络PPS大于2000万

  1. 分别远程连接测试机和辅助测试机。

    关于连接方法的介绍,请参见实例连接概述。

  2. 分别在3台辅助测试机和1台测试机上执行以下命令,安装sockperf。

    yum install -y autoconf automake libtool gcc-c++
    cd /opt
    wget https://github.com/Mellanox/sockperf/archive/refs/tags/3.8.tar.gz
    tar -zxf 3.8.tar.gz
    cd sockperf-3.8/
    ./autogen.sh
    ./configure
    make -j `cat /proc/cpuinfo| grep process | wc -l`
    make install
  3. 在测试机上执行以下命令,绑定中断。

    a=$(cat /proc/interrupts | grep virtio2-input | awk -F ':' '{print $1}')
    cpu=0
    for irq in $a; do
        echo $cpu >/proc/irq/$irq/smp_affinity_list
        let cpu+=2
    done
  4. 在测试机上执行以下命令,查询测试机的私网IP地址。

    ifconfig || ip addr

    阿里云ECS云服务器网络性能测试最佳实践-云淘科技

  5. 分别在3台辅助测试机上执行以下命令,向测试机输入流量。

    server_ip=""
    threads=64
    msg_size=14
    run_time=60
    
    basePort=6666
    for((i=0;i&1 &
    done

    其中是实际测试机的私网IP地址,run_time是输入流量的时间,请您根据实际情况修改。

  6. 分别在3台辅助测试机和1台测试机上执行以下命令,测试网络流量。

    sar -n DEV 1

    在测试机上查看rxpck/s列的数据值,rxpck/s表示该测试机每秒钟接收到的数据包。如下图所示,示例中测试机每秒钟接收到的数据包数约为2000万。阿里云ECS云服务器网络性能测试最佳实践-云淘科技

测试网络带宽

  1. 分别远程连接测试机和辅助测试机。

    关于连接方法的介绍,请参见实例连接概述。

  2. 分别在测试机和辅助测试机上执行以下命令,下载Netperf。

    wget https://benchmark-packages.oss-cn-qingdao.aliyuncs.com/netperf-2.7.0.tar.gz
  3. 分别在测试机和辅助测试机上执行以下命令,安装Netperf和sar监控工具。

    yum install -y gcc autoconf automake libtool sysstat
    tar -zxvf netperf-2.7.0.tar.gz
    cd netperf
    ./configure
    make && make install
  4. 在测试机上执行以下命令,启动64个netserver服务。

    #!/bin/bash
    for j in `seq 64`; do
        netserver -p $[16000+j] > server_$[16000+j].netperf > /dev/null 2>&1  &
    done
  5. 在测试机上执行以下命令,查询测试机的私网IP地址。

    ifconfig || ip addr

    阿里云ECS云服务器网络性能测试最佳实践-云淘科技

  6. 在辅助测试机上执行以下命令,向测试机输入流量。

    #!/bin/bash
    server_ip=
    for j in `seq 64`; do
        port=$[16000+j]
        netperf -H ${server_ip} -l ${run_time:-300} -t TCP_STREAM -p $port -- -D > /dev/null 2>&1 & 
    done

    需替换为上一步查询的实际测试机的私网IP地址,示例如下图所示。

    阿里云ECS云服务器网络性能测试最佳实践-云淘科技

  7. 在测试机上执行以下命令,测试网络带宽。

    sar -n DEV 1

    在测试结果中查看rxkB/s列的数据值,rxkB/s表示该测试机每秒钟接收的字节数。所以转换为带宽(kbps)=字节数(rxkB/s)*8,示例如下图所示。阿里云ECS云服务器网络性能测试最佳实践-云淘科技

测试网络时延

  1. 分别远程连接测试机和辅助测试机。

    关于连接方法的介绍,请参见实例连接概述。

  2. 分别在测试机和辅助测试机上执行以下命令,安装sockperf。

    yum install -y autoconf automake libtool gcc-c++
    cd /opt
    wget https://github.com/Mellanox/sockperf/archive/refs/tags/3.8.tar.gz
    tar -zxf 3.8.tar.gz
    cd sockperf-3.8/
    ./autogen.sh
    ./configure
    make -j `cat /proc/cpuinfo| grep process | wc -l`
    make install
  3. 在测试机上执行以下命令,启动服务。

    sockperf sr --tcp --daemonize
  4. 在测试机上执行以下命令,查询测试机的私网IP地址。

    ifconfig || ip addr

    阿里云ECS云服务器网络性能测试最佳实践-云淘科技

  5. 在辅助测试机上执行以下命令,向测试机输入流量。

    sockperf pp -i  --tcp -t 30 -m 14 --full-log=result.json

    需替换为上一步查询的实际测试机的私网IP地址。

    查看结果数据,示例如下图所示。

    • avg-latency开头的结果数据表示平均时延,单位为us。

    • percentile 99.000开头的结果数据表示99分位时延,单位为us。

    阿里云ECS云服务器网络性能测试最佳实践-云淘科技

腾讯云1折,限时活动,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/153693.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 阿里云对象存储OSSOSS上传或下载文件时速度很慢,怎么办?-云淘科技

    本文介绍OSS上传和下载文件速度慢的原因和解决方法。 问题原因 OSS上传和下载速度主要受限于客户端本地的带宽以及运营商的网络链路。 解决方法 使用非SDK上传和下载文件速度慢的排查方法 检查上传和下载文件的方式。 如果您是通过OSS控制台、ossfs、ossbrowser、ossftp等工具上传或下载文件较慢,建议您使用ossutil工具。ossutil工…

    阿里云对象存储 2023年12月10日
  • 腾讯云CVM服务器网络性能测试

    操作场景 本文介绍如何通过使用测试工具进行云服务器的网络性能测试,您可根据测试获取的数据判断云服务器的网络性能。 网络性能测试指标 指标 说明 带宽(Mbits/秒) 表示单位时间内(1s)所能传输的最大数据量(bit) TCP-RR(次/秒) 表示在同一次 TCP 长链接中进行多次 Request/Response 通信时的响应效率。TCP-RR 在数据库…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云ECS云服务器网络性能测试最佳实践-云淘科技

    本文主要以ECS实例使用Netperf和sockperf工具测试网络性能的方法为例,为您介绍如何测试ECS实例的网络PPS、网络带宽和网络时延。 前提条件 已创建符合测试场景规格要求的ECS实例。具体操作,请参见自定义购买实例。 在同一测试场景下,所有ECS实例必须所属同一个VPC、同一台交换机和同一个安全组。 准备环境 重要 强烈建议您在新购买的无数据的E…

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。