如果我问你,千兆网络的传输速度极限是多少?或许你会说,最大就是125MByte/s了。这差不多就是理论极限。

实际上的传输速度是远远达不到125MB/s,因为IP包有报头,SMB协议也有报头,这些东西需要占用一些传输带宽。我的samba最多能达到110MB/s的极限速度。

那么,题头的图中,155M/s的传输速度是怎么回事?


介绍这个传输速度之前,我要介绍一下我的网络构成。

我的系统中将NAS上的两个共享目录映射成为Z盘和Y盘。平时将临时文件放在Z盘中,整理时将文件从Z盘移动到Y盘。

网上邻居共享软件samba是使用微软的SMB协议,至今SMB已经发展到3.1.1版本。

不同版本的Windows所支持的SMB协议如下图。

最初我使用FreeBSD11.0版本时,采用的是samba 3.7版本,这个samba版本只支持SMB1.0协议。所以将文件从Z盘移动到Y盘时,采取的方法如下图:

也就是说,客户端将Z盘的数据先传输到本地,然后再传输回去放回到Y盘中。因为客户机和samba服务器的网络带宽只有1000M,所以传输速度跳不出来125MB/s的理论值。

聪明的你看出来问题所在,需要移动的数据和要移动到的地方都在服务器上,为何要从客户端绕一圈呢?如果能直接在服务器上进行移动,那么速度不就快了么?

是的,在SMB2.0开始,支持一种叫做Server-Side Copy的请求指令,具体可以见这里:

[MS-SMB2]: Handling a Server-Side Data Copy Request​docs.microsoft.com

就是将服务器端的拷贝直接在服务器内部消化,具体见下图:

通过这个做法,拷贝速度大大提高,不再取决于客户端和服务器之间的网络速度,而是服务器内部的读取和写入速度了。

在我的情况下,10盘RAIDZ2的读取+写入就是155MB/s

这个功能在samba 4.1版本开始就已经支持。

所以还在用3.x版本samba的你,还不赶紧升级?


如果你喜欢今后能多看到类似的文章,请看完之后点赞收藏分享,这样子我就可以有动力多写一些啦~~~

两个服务器之间怎么传输大量数据速度快 java socket_千兆网络的传输速度能超过125MB/s么?...相关推荐

  1. 两个服务器之间怎么传输大量数据速度快 java socket_一口气说出Kafka为啥这么快?...

    在过去的几年里,软件架构领域发生了巨大的变化.人们不再认为所有的系统都应该共享一个数据库. 图片来自 Pexels 微服务.事件驱动架构和 CQRS(命令查询的责任分离 Command Query R ...

  2. linux tcp 包大小,linux – 通过大量连接和小数据包流量高的千兆网络提高TCP性能...

    我正在尝试通过"具有大量连接和小数据包流量的千兆网络"来提高TCP吞吐量.我的服务器操作系统是Ubuntu 11.10 Server 64bit. 有大约50.000(和不断增长的 ...

  3. Linux 两台服务器之间传输文件和文件夹

    今天处理一个项目要迁移的问题,突然发现这么多图片怎么移过去,可能第一时间想到的是先从这台服务器下载下来,然后再上传到另外一台服务器上面去,这个方法确实是可行,但是实在是太费时间了,今天我就教大家怎么快 ...

  4. linux两台服务器传输,Linux两台服务器之间高速数据传输命令:scp应用详解

    Linux两台服务器之间高速数据传输命令:scp应用详解 Linux scp命令用于Linux之间复制文件和目录到另外一台,这个命令在多台服务器之间传输还是非常有用的,速度也是非常快的.比window ...

  5. linux服务器拷贝目录文件夹,linux两台服务器之间文件/文件夹拷贝

    linux两台服务器之间文件/文件夹拷贝 跨服务器拷贝需要用到的命令是scp. ----------------------拷贝文件夹--------------------------------- ...

  6. 复制密钥文件到另一台服务器,使用所有ssh密钥从第三台服务器在两台服务器之间远程复制...

    我正在用python编写一个部署脚本,但是在我完成它之后,我发现可能不可能实现我的想法.在 情况是这样的.在 我有三个主人.在主机1:Ubuntu 12.04 主机2:SUSE Linux Enter ...

  7. 如何在两个服务器之间迁移MySQL数据库

    英文原作者:Etel Sverdlov   转载&翻译来源:https://www.digitalocean.com/community/tutorials/how-to-migrate-a- ...

  8. 两台服务器之间数据库同步

    SyncNavigator是一款功能强大的数据库同步软件,适用于SQL SERVER, MySQL,具有自动/定时同步数据.无人值守.故障自动恢复.同构/异构数据库同步.断点续传和增量同步等功能,支持 ...

  9. 两台linux之间带宽,测试两台服务器之间的网络带宽

    一.为什么选择了iperf 之前做了一个项目,说要测试两台服务器之间的带宽,本想通过拷贝来进行测试,后来客户觉得得出的数据没有说服性,于是改拿工具来进行测试.我们这回用的工具名字叫iperf. ipe ...

最新文章

  1. Mercurial和Git有什么区别?
  2. Ubuntu14.04设置PATH环境变量(一)
  3. 双11还是那个双11,双12却早已不是那个双12
  4. 【机器学习基础】数学推导+纯Python实现机器学习算法7:神经网络
  5. 网络协议分析工具Ethereal的使用
  6. 160 - 51 DueList.6
  7. 乱想想关于捕获异常后继续执行的实现。
  8. P5714 【深基3.例7】肥胖问题--python3实现
  9. python文件内容倒序_python实现对列表中的元素进行倒序打印
  10. 指针大小为什么与类型无关?
  11. 运行jar包提示找不到.properties文件的问题
  12. sql语句select group by order by where一般先后顺序
  13. 将solidworks建的机器人模型导入到ros中
  14. Python:对已有内容的TXT文件追加读写
  15. [Alg]排序算法之插入排序
  16. win10下深度linux系统怎么安装,u深度win10pe安装win10系统教程
  17. Shell脚本中dirname命令的使用
  18. 天地图-第五篇-覆盖物
  19. Hash-based Shuffle内幕彻底解密
  20. verilog自学笔记

热门文章

  1. pip安装neural_renderer报错的解决方法
  2. python3函数写文件路径时,怎么写文件路径
  3. 数字图像处理 频率域锐化 MATLAB实验
  4. 第八章:在Spark集群上掌握比较重要的图操作之Property Operators(2)
  5. python文件のpandas操作
  6. ajax登录成功跳转页面_ODOO 登录后跳转到指定页面【仪表盘】而不是【讨论】模块...
  7. java实现输出下一秒_编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一...
  8. .net oracle 连接超时_ADO.NET (一) 前言
  9. python3x_Python3x 基本知识点
  10. 持续集成(Continuous integration)