美文网首页
网络基准测试

网络基准测试

作者: wayyyy | 来源:发表于2020-12-26 23:20 被阅读0次

性能指标

带宽

表示链路的最大传输速率,单位是b/s(比特 / 秒)。

吞吐量

表示单位时间内成功传输的数据量,单位通常为 b/s(比特 / 秒)或者 B/s(字节 / 秒)。吞吐量受带宽限制

延时

表示从网络请求发出后,一直收到远端响应,所需要的时间延迟。在不同场景中,这一指标可能会有不同含义。比如,它可以表示,建立连接需要的时间(比如 TCP 握手延时),或一个数据包往返所需的时间(比如 RTT)。

PPS

Packet Per Second(包 / 秒) 的缩写,表示以网络包为单位的传输速率。PPS通常用来评估网络的转发能力。


网络基准测试

转发性能测试PPS

Linux 内核自带的高性能网络测试工具 pktgen。pktgen 支持丰富的自定义选项,方便你根据实际需要构造所需网络包,从而更准确地测试出目标服务器的性能。
不过,在 Linux 系统中,你并不能直接找到 pktgen 命令,因为 pktgen 作为一个内核线程来运行,需要你加载 pktgen 内核模块后,再通过 /proc 文件系统来交互。

# modprobe pktgen
# ls /proc/net/pktgen/
  kpktgend_0  kpktgend_1  pgctrl

根据上面的结果,我们发现,PPS 为 12 万,吞吐量为 61 Mb/s,没有发生错误。那么,12 万的 PPS 好不好呢?

作为对比,你可以计算一下千兆交换机的 PPS。交换机可以达到线速(满负载时,无差错转发),它的 PPS 就是 1000Mbit 除以以太网帧的大小,即 1000Mbps / ((64+20)*8bit) = 1.5 Mpps(其中,20B 为以太网帧前导和帧间距的大小)。

即使是千兆交换机的 PPS,也可以达到 150 万 PPS,比我们测试得到的 12 万大多了。所以,看到这个数值你并不用担心,现在的多核服务器和万兆网卡已经很普遍了,稍做优化就可以达到数百万的 PPS。
而且,如果你用了DPDK 或 XDP ,还能达到千万数量级。

TDP/UDP 性能

iperfnetperf 都是最常用的网络性能测试工具,用来测试TCP 和 UDP的吞吐量。它们都以客户端和服务器通信的方式,测试一段时间内的平均吞吐量。这里以iperf 命令为例。

  • 常用命令

  • 实践
    在目标机器上启动iperf 服务端

    # iperf3 -s -i 1 -p 10000
    -s 表示启动服务端
    -i 表示汇报间隔
    -p 表示监听端口
    

    在另一台机器上运行客户端

    # iperf3 -c 192.168.0.30 -b 1G -t 15 -P 2 -p 10000
    -c 表示启动客户端
    -b 表示目标带宽
    -t 表示测试时间
    -P 表示并发数
    -p 表示目标服务器的监听端口
    
    无标题.png

从上面可以看出目标机器的吞吐量为866 Mb/s。

HTTP

测试HTTP的性能,也有大量工具可以使用,比如 ab,webbench等。这里以 ab 为例

  • 安装

    • ubuntu
      apt-get install -y apache2-utils
      
    • centos
      yum install -y httpd-tools
      
  • 常用命令

  • 实践

    • 在目标机器上,使用 Docker 启动一个 Nginx 服务,然后用 ab 来测试它的性能。
      docker run -p 80:80 -itd nginx
      
    • 在另一台机器上,运行ab命令,测试nginx性能
      # ab -c 1000 -n 10000 http://192.168.0.30/ # -c 表示并发量100,10000表示总的
      
应用负载性能

相关文章

  • 网络基准测试

    性能指标 带宽 表示链路的最大传输速率,单位是b/s(比特 / 秒)。 吞吐量 表示单位时间内成功传输的数据量,单...

  • mysql 基准测试

    mysql 基准测试 基准测试策略 基准测试指标 基准测试工具 基准测试样例

  • MySQL基准测试工具

    一、基准测试 基准测试(benchmark)是针对系统设计的一种压力测试。 基准测试是简化了的压力测试。 1.1 ...

  • Windows、WSL 与 Linux 的性能对比

    Phoronix 网站发布了关于 Windows、WSL 和 Linux 的性能基准测试结果。测试的内容包括网络性...

  • 数据库基准测试工具-sysbench

    基准测试 定义 数据库的基准测试是对数据库的性能指标进行定量的、可复现的、可对比的测试。 基准测试与压力测试 基准...

  • go 基准测试

    基准测试主要用于评估代码的性能,Go 语言测试框架可以让我们很容易地进行基准测试,同样需要遵循四点规则: 基准测试...

  • 什么是MySQL的基准测试

    1.MySQL基准测试 什么是基准测试: 基准测试是一种测量和评估软件性能指标的活动用于建立某个时刻的性能基准,以...

  • Arxiv网络科学论文摘要8篇(2020-01-09)

    利用部分信息的高效网络导航; 作者影响力网络级视角; LDBC社会网络基准测试; 社会网络软推荐系统; 思维形式网...

  • 高性能MySQL第二章 读书笔记

    第2章 MySQL基准测试 基准测试可以在系统的实际负载之外创造一些虚构场景进行测试。 基准测试的一个主要问题在于...

  • Go语言之基准测试

    在Go语言中,提供了测试函数性能(CPU和Memory)的测试方法,基准测试。 基准测试主要用来测试CPU和内存的...

网友评论

      本文标题:网络基准测试

      本文链接:https://www.haomeiwen.com/subject/nrtnnktx.html