iperf和服务器性能对比,使用iPerf比较不同Docker网络设置的性能

![Docker远征](https://img.tnblog.net/arcimg/hb/656ec4beace04f5e9a7b1d58b6368639.jpg "Docker远征")

>#使用iPerf比较不同Docker网络设置的性能

[TOC]

IPerf的介绍

------------

tn>iperf是一种命令行工具,用于通过测量服务器可以处理的最大网络吞吐量来诊断网络速度问题。它在遇到网络速度问题时特别有用,通过该工具可以确定哪个服务器无法达到最大吞吐量。

更多详细基本请参考:https://www.jianshu.com/p/15f888309c72

下载IPerf

------------

```bash

curl -LO https://iperf.fr/download/archlinux/iperf-2.0.5-9-x86_64.pkg.tar.xz

# Pacman 是一个软件包管理器 -U 表示安装本地包

yes | pacman -U iperf-2.0.5-9-x86_64.pkg.tar.xz

```

测试:主机连接主机

------------

>这复制了运行在同一主机上的两个进程,通过 TCP 相互连接。

- nohup : 不挂断的运行,注意并没有后台运行的功能,,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行;

- Jobs: 通过`jobs`或`jobs -l`显示后台运行的任务,可以通过命令`kill -9 `杀死。

```bash

# -s 表示服务器

# -p 表示服务器端口

nohup iperf -s -p 5002 >/dev/null 2>&1 &

# -c 表示客户端要测试的服务器地址

iperf -c localhost -p 5002

```

![](https://img.tnblog.net/arcimg/hb/c4f8db78e47e4add91137da254f97570.png)

tn>10秒,传输`39.5 G`的数据,带宽为:`33.9 Gbits/sec`

测试:主机的客户端连接 Docker 的服务器

------------

>这复制了主机上的一个进程和一个容器内的一个进程,它们通过 TCP 相互连接。

```bash

docker run -d -p 5001:5001 --name mapped-iperf benhall/iperf iperf -s

iperf -c localhost

```

![](https://img.tnblog.net/arcimg/hb/758baa6c70b44442be148cea54bb0602.png)

tn>10秒,传输`7.09 G`的数据,带宽为:`6.09 Gbits/sec`,性能不如主机连主机。

测试: Docker 的进程通过链接进行通信

------------

>创建两个容器之间的链接,以便它们通过友好名称进行通信。

```bash

docker run -d --name link-server benhall/iperf iperf -s

docker run -it --link link-server:server benhall/iperf iperf -c server

```

![](https://img.tnblog.net/arcimg/hb/3d21399fb9e54b07889b6c38e78ce8d1.png)

tn>10秒,传输`31.7 G`的数据,带宽为:`27.2 Gbits/sec`,性能良好。

测试: Docker 的进程通过网络进行通信

------------

>这使用 Docker 网络来创建桥。容器通过该桥进行通信。

```bash

# 创建iperf网络

docker network create iperf

# 服务器

docker run -d --net=iperf --name network-server benhall/iperf iperf -s

# 客户端

docker run -it --net=iperf benhall/iperf iperf -c network-server

```

![](https://img.tnblog.net/arcimg/hb/5148c642d456469b8249bb3a2b5e0fe4.png)

tn>10秒,传输`30.6 G`的数据,带宽为:`26.3 Gbits/sec`,性能良好。

测试: Docker 的进程通过共享网络命名空间进行通信(container)

------------

>使用共享网络的容器。

```bash

docker run -d --name shared-server benhall/iperf iperf -s

docker run -it --net=container:shared-server benhall/iperf iperf -c localhost

```

![](https://img.tnblog.net/arcimg/hb/ce23316187d449e28db64ddf86483170.png)

tn>10秒,传输`47.8 G`的数据,带宽为:`47.8 Gbits/sec`,性能超高。

测试:使用主机网络的进程

------------

### 容器客户端,通过主机网络连接到主机

```bash

docker run -it --net=host benhall/iperf iperf -c 172.19.0.1 -p 5002

```

![](https://img.tnblog.net/arcimg/hb/d05567c5e5d24a0486fc7cb23b8bc557.png)

tn>10秒,传输`37.9 G`的数据,带宽为:`32.6 Gbits/sec`,性能比较高。

### 容器服务器,通过主机网络连接到主机上的客户端

```bash

docker rm -f mapped-iperf

docker run -d --net=host benhall/iperf iperf -s

iperf -c localhost

```

![](https://img.tnblog.net/arcimg/hb/e1e159efdefd412db42d23daee40981b.png)

tn>10秒,传输`40.5 G`的数据,带宽为:`34.8 Gbits/sec`,性能比较高。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值