NetPerf揭示容器间是高速路还是林荫小路

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: NetPerf揭示容器间是高速路还是林荫小路

Netperf概况

Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量 数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统 发送数据,以及另外一个系统能够以多块的速度接收数据。

Netperf工具以client/server方式工作。server端是 netserver,用来侦听来自client端的连接,client端是netperf,用来向server发起网络测试。在client与 server之间,首先建立一个控制连接,传递有关测试配置的信息,以及测试的结果;在控制连接建立并传递了测试配置信息以后,client与 server之间会再建立一个测试连接,用来来回传递着特殊的流量模式,以测试网络的性能。


TCP网络性能

由于TCP协议能够提供端到端的可靠传输,因此被大量的网络应用程序使用。但是,可靠性的建立是要付出代价的。TCP协议保证可靠性的措施,如建立并维护连接、控制数据有序的传递等都会消耗一定的网络带宽。   

Netperf可以模拟三种不同的TCP流量模式:


1) 单个TCP连接,批量(bulk)传输大量数据

2) 单个TCP连接,client请求/server应答的交易(transaction)方式

3) 多个TCP连接,每个连接中一对请求/应答的交易方式

UDP网络性能

UDP没有建立连接的负担,但是UDP不能保证传输的可靠性,所以使用UDP的应用程序需要自行跟踪每个发出的分组,并重发丢失的分组。   Netperf可以模拟两种UDP的流量模式:


1) 从client到server的单向批量传输

2) 请求/应答的交易方式

由于UDP传输的不可靠性,在使用netperf时要确保发送的缓冲区大小不大于接收缓冲区大小,否则数据会丢失,netperf将给出错误的结果。因此,对于接收到分组的统计不一定准确,需要结合发送分组的统计综合得出结论。


Netperf的命令行参数

在unix系统中,可以直接运行可执行程序来启动netserver,也可以让inetd或xinetd来自动启动netserver。

当netserver在server端启动以后,就可以在client端运行netperf来 测试网络的性能。netperf通过命令行参数来控制测试的类型和具体的测试选项。根据作用范围的不同,netperf的命令行参数可以分为两大类:全局 命令行参数、测试相关的局部参数,两者之间使用–分隔:

netperf [global options]-- [test-specific options]

这里我们只解释那些常用的命令行参数,其它的参数读者可以查询netperf的man手册。   

-H host :指定远端运行netserver的server IP地址。   

-l testlen:指定测试的时间长度(秒)   

-t testname:指定进行的测试类型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR,在下文中分别对它们说明。在后面的测试中,netserver运行在192.168.0.28,server与client通过局域网连接(100M Hub)。

NetPerf安装、使用过程

1、下载

进入/home/FUCK文件夹下输入

wget http://down1.chinaunix.net/distfiles/netperf-2.4.5.tar.gz


2、安装

tar -xvf netperf-2.4.5.tar.gz
  cd netperf-2.4.5
  ./configure
  make
  make install


3、测试netperf是不是可以用

server: netserver -d 4 -L 0.0.0.0 -p 9991
    Client: netperf -l 60 -4 -f -m -t TCP_CRR -H 172.16.22.102 -p 9991 -- -r 64,64



目录
相关文章
|
Unix Linux 应用服务中间件
容器运行时的内部结构和最新趋势(2023)上
容器运行时的内部结构和最新趋势(2023)
162 1
|
Kubernetes Cloud Native 虚拟化
容器技术基础-容器技术介绍与特点
容器技术基础-容器技术介绍与特点
容器技术基础-容器技术介绍与特点
|
运维 安全 Docker
Docker 网络模型:多角度分析容器网络的原理与应用
Docker 网络模型:多角度分析容器网络的原理与应用
100 0
|
4月前
|
安全 Ubuntu Docker
深度挖掘Docker 容器
【8月更文挑战第16天】Docker容器间的连接是容器化技术的关键,支持容器与宿主机的数据交换。主要方法包括:1) 利用Docker网络驱动创建自定义网络,使容器相连通信;2) 采用Docker Compose通过配置文件简化多容器应用的部署与互联;3) 虽不推荐,早期使用--link参数实现容器互联;4) 通过环境变量配置连接信息;5) 共享卷支持文件共享和间接通信。推荐使用Docker网络和Docker Compose以实现高效灵活的容器间通信。
28 3
|
7月前
|
容器
容器的通俗讲解
容器的通俗讲解
74 0
|
Kubernetes 负载均衡 Docker
从容器到k8s,演变过程和具体案例分享
从容器到k8s,演变过程和具体案例分享
|
存储 程序员 C#
用C++的角度讲解C#容器
用C++的角度讲解C#容器
104 0
|
Kubernetes 测试技术 虚拟化
学习容器技术的心得
学习容器技术是一个相当有意思的过程。它的发展在近年来得到了广泛的关注和应用,因为容器技术具有很多优点,比如轻量级、可移植、可伸缩等。
|
Kubernetes 安全 Linux
容器运行时的内部结构和最新趋势(2023)下
容器运行时的内部结构和最新趋势(2023)
460 0
|
存储 程序员 C#
从C++的角度讲解C#容器
从C++的角度讲解C#容器