tnblog
首页
视频
资源
登录

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

8008人阅读 2021/6/22 11:15 总访问:3667296 评论:0 收藏:1 手机
分类: docker

Docker远征

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

IPerf的介绍

iperf是一种命令行工具,用于通过测量服务器可以处理的最大网络吞吐量来诊断网络速度问题。它在遇到网络速度问题时特别有用,通过该工具可以确定哪个服务器无法达到最大吞吐量。
更多详细基本请参考:https://www.jianshu.com/p/15f888309c72

下载IPerf

  1. curl -LO https://iperf.fr/download/archlinux/iperf-2.0.5-9-x86_64.pkg.tar.xz
  2. # Pacman 是一个软件包管理器 -U 表示安装本地包
  3. yes | pacman -U iperf-2.0.5-9-x86_64.pkg.tar.xz

测试:主机连接主机

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

  • nohup : 不挂断的运行,注意并没有后台运行的功能,,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行;
  • Jobs: 通过jobsjobs -l显示后台运行的任务,可以通过命令kill -9 <PID>杀死。
  1. # -s 表示服务器
  2. # -p 表示服务器端口
  3. nohup iperf -s -p 5002 >/dev/null 2>&1 &
  4. # -c 表示客户端要测试的服务器地址
  5. iperf -c localhost -p 5002

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

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

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

  1. docker run -d -p 5001:5001 --name mapped-iperf benhall/iperf iperf -s
  2. iperf -c localhost

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

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

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

  1. docker run -d --name link-server benhall/iperf iperf -s
  2. docker run -it --link link-server:server benhall/iperf iperf -c server

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

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

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

  1. # 创建iperf网络
  2. docker network create iperf
  3. # 服务器
  4. docker run -d --net=iperf --name network-server benhall/iperf iperf -s
  5. # 客户端
  6. docker run -it --net=iperf benhall/iperf iperf -c network-server

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

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

使用共享网络的容器。

  1. docker run -d --name shared-server benhall/iperf iperf -s
  2. docker run -it --net=container:shared-server benhall/iperf iperf -c localhost

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

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

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

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

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

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

  1. docker rm -f mapped-iperf
  2. docker run -d --net=host benhall/iperf iperf -s
  3. iperf -c localhost

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


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

NET Core 使用 EF Code First

下面这些内容很老了看这篇:https://www.tnblog.net/aojiancc2/article/details/5365 项目使用多层,把数据库访问...

使用OLEDB读取不同版本Excel的连接字符串设置

使用OleBD读取excel的时候,excel不同的版本,连接字符串的写法也会不一样。///&lt;summary&gt; ///读取excel ///&lt;/su...

C 使用CancellationTokenSource取消多线程

有时间我们在使用多线程的时候,需要取消线程的执行,可以使用CancellationTokenSource来取消对Task开辟多线程的取消如下:...

使用爬虫刷csdn博客访问量

首先了解一下常见反爬虫的检测方法频率监测:有些网站会设置一种频率监测的机制,对于同一IP,若在一定时间内访问的速度超...

Idea下使用maven搭建SSM(一):SpringMVC

Spring MVC是一款基于MVC架构模式的轻量级Web框架,其目的是将Web开发模块化,对整体架构进行解耦,简化Web开发流程。下面...

Idea下使用maven搭建SSM(二):MyBatis

开发Web应用,数据的存储和处理往往离不开数据库和SQL语句。在使用Java开发的Web应用中,自然也少不了连接数据库的步骤。在...

使用 微软自带语音合成类库

//引入语音合成名称空间 usingSystem.Speech.Synthesis; classA { voidtest1() { //实例化并指定字符串播放合成读音 ...

如何使用图标像使用文字一样,使用文本图标的方法

1.首先在Iconfont-阿里巴巴矢量图标库上面找到你需要的图标然后加入你的购物车然后选择图标;注意:每个类型的图标会大小不...

使用七牛云的cdn服务,提高图片的加载速度

CDN介绍CDN的全称是Content Delivery Network,即内容分发网络。CDN加速主要是加速静态资源,如网站上面上传的图片、媒体,...

.net core 使用session

tip:net core 2.2后可以直接启用session了,不用在自己添加一次session依赖,本身就添加了使用nuget添加引用Microsoft.AspN...

使用OutLook发送邮件

publicstaticvoidOutlook(stringSubject,stringTextBody,stringFromAdd,stringFromPass,stringTo,stringCC,List&lt;string&...

SQL Server 中使用游标

--声明一个游标 DECLAREMyCursorCURSOR FORSELECTTOP5FBookName,FBookCodingFROMTBookInfo//定义一个叫MyCursor的游标,...

Windows使用wireshark抓包小心得

wireshrak是个网络抓包工具,常用。但是在数据较大的网络环境中直接使用软件抓包会导致wireshark卡死。为什么呢 ?网卡瞬间...

Oracle自定义函数的简单使用

一.最最最简单的返回一个数字的函数createorreplacefunctionfun_show returnint--申明返回值 as begin return1; end;...

Oracle事务的简单使用

事务:  事务是一个整体,这些操作要么全部执行成功,要么全部不执行。使用事务的原因:保证数据的安全有效。事务的四个特...

Oracle使用游标

其实游标就是把查询的结果放入游标中,然后在去游标里边读取。相当于使用游标做了一个中转,而游标是可以作为参数进行传递...
这一世以无限游戏为使命!
排名
7
文章
192
粉丝
15
评论
16
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术