通过千兆连接,Teracopy的速度为31MB / s,但是Windows 8的速度为每秒109MB?


13

今天,我在通过Mac Cat和Windows 8 Pro台式机之间通过Cat.5e连接到Linksys WRT320N(运动dd-WRT)之间的千兆网络首次尝到了令人头疼的味道。

在确保两个系统的线速都显示为1Gbps之后,我继续将2.4GB MP4从Mini复制到Win 8桌面(SMB共享)。尽管对Teracopy所显示的30-34 MB / s满意(这对我来说是从10 MB / s的适当提升),但我仍然对广告和实际速度的巨大差异感到好奇。

2个小时的Google让我相信,还有其他一些因素导致速度降低,其中SMB就是其中之一。因此,仅出于此目的,我就对两个系统都进行了性能测试,然后猜测显示的结果-两个系统均达到875mbps!

然后,我偶然发现了这一小段信息,之后我关闭了Teracopy,并通过Windows 8的常规复印机复制了相同的文件。109 MB /秒 熔脑:)

到底是什么原因造成的?我可以通过Teracopy启用这种速度吗?我真的很喜欢Teracopy的其他功能,现在肯定会错过的:D


2
首先想到的是:您是如何通过Teracopy复制的?往返驱动器号?(这会序列化事物并且速度较慢)还是到达UNC路径?
Hennes 2013年

我刚刚在两台计算机上共享了这些文件夹(右键单击>共享>共享此文件夹或等效文件夹)。通过在Explorer的左侧窗格中打开“网络”,以及在OS X中,通过从Finder的左侧窗格中选择联网计算机的名称,可以访问联网计算机。简而言之,我从Win 8的Explorer中访问Mac的文件,使用基本的Ctrl + C命令将其复制,然后将其本地粘贴到PC的桌面上。
Gaurang 2013年

您使用什么驱动器?两个SSD?那些Windows 8数字对我来说很奇怪。
Apache

Answers:


16

通过千兆连接,Teracopy的速度为31MB / s,但是Windows 8的速度为每秒109MB?

到底是什么原因造成的?我可以通过Teracopy启用这种速度吗?我真的很喜欢Teracopy的其他功能,现在肯定会错过的:D

两个词:验证缓存

技术说明

这是使用Windows资源管理器复制文件的一般过程:

  1. 从源驱动器读取大块数据到内存
  2. 通过系统发送块
  3. 将块写入目标驱动器
  4. 如果尚未完成,请返回步骤1

这似乎很简单而且简短。使用这种传输算法,文件的每个字节仅被处理两次:一次读取,一次写入。

但是此外,Windows使用内存(驱动器本身也是如此)来缓存一些数据。因此,与其等待上一个块完成写入,然后再读取下一个块,不如先读取一个新块,仍在写入前一个块。显然,这不能永远保持下去,但是Windows可以将所有剩余的可用内存用作存储大多数(如果不是全部)正在读取的文件的临时缓冲区。

通过将一个大文件(或包含很多文件的文件夹)从一个驱动器复制到另一个驱动器,然后立即比较两者,可以看到正在执行的缓存。此时的比较将比以后做的快得多,因为文件仍在内存中,因此实际上并没有从驱动器中读取文件。

由于内存非常快,并且读取速度往往快于写入速度,因此最终传输速率最终仅受目标驱动器的写入速度限制。

Teracopy可以做两件事来减慢资源管理器不做的文件传输:

  • 放弃缓存并直接从驱动器读取

  • 验证目标是否正确写入

与仅在传输过程中检查基本错误的资源管理器不同,Teracopy实际上可以验证数据是否正确写入目标驱动器,以防止由于传输介质(网络/驱动器电缆/等)问题而导致的数据损坏。 )或驱动器本身(坏扇区等)。这样做意味着它必须从目标位置读取文件才能将其与原始文件进行比较。

根据所使用的算法和文件的大小,可以将验证优化为每个文件/文件块低至(但不少于)三个驱动器操作,而不是资源管理器中的两个:从源读取文件,写入文件到目标,然后从目标读取文件。

查看使用Teracopy(使用经过HDD优化的算法)复制文件时发生的情况:

  1. 从源驱动器读取一个块
  2. 散列从源驱动器读取的块
  3. 通过系统发送块
  4. 将其写入目标驱动器
  5. 清除缓存
  6. 从目标驱动器读回块
  7. 散列目标驱动器中的块
  8. 比较哈希
  9. 确定下一步
    • 如果哈希值不匹配,请给出错误并提示用户采取措施
    • 如果哈希匹配但尚未完成,请返回步骤1

问题在于,如果在传输过程中缓存文件,则比较将变得无用,因为您没有在目标驱动器上读取实际数据,而是从源读取缓存在内存中的副本。因此,要正确验证,必须清除缓存。可以在每次读取和写入之后执行此操作(这是一项额外的操作,最终将对无数大小的文件进行无数次完成),或者在传输完整个文件仅执行一次。

根据下面的屏幕截图,TeraCopy 在文件传输之后而不是在传输过程中执行验证。这意味着它改为使用经过CPU / RAM优化的传输算法:

  1. 从源驱动器读取一个块
  2. 通过系统发送块
  3. 将其写入目标驱动器
  4. 如果尚未完成,请返回步骤1
  5. 复制完成,因此清除缓存并进行验证
  6. 从源驱动器读取一个块
  7. 散列目标驱动器中的块
  8. 从目标驱动器读取一块
  9. 散列目标驱动器中的块
  10. 比较哈希
  11. 确定下一步
    • 如果哈希值不匹配,请给出错误并提示用户采取措施
    • 如果哈希匹配但未完成,请返回步骤6

虽然此算法对CPU和RAM的压力稍有减轻,但对驱动器的压力也大得多,因为现在每个文件必须处理四次:从源读取整个文件,将其写入目标,然后再次从源中读取它,然后从目的地中读取它。

(如果TeraCopy已针对网络传输进行了优化,则可以避免第二次发送整个文件进行验证,而仅发送较小的散列,但目前看来并非如此,并且对网络驱动程序的处理方式相同作为本地驱动器,因此它实际上会重新读取源代码。)

默认情况下,TeraCopy不验证或使用缓存。不验证将加快传输速度(或更准确地说,不降低传输速度),而不使用缓存降低传输速度。

应用

要确定特定的速度结果,您必须检查设置以查看是否已更改。然后,您可以尝试估算使用不同设置可获得的速度类型(请注意,它们可能会相互作用,因此,加减不是一个简单的问题)。

也就是说,让我们使用您的数字进行粗略的计算:

  • 本地文件传输:875Mbps(即驱动器速度)
  • 网络速度:1Gbps = 119.21 MBps
  • 通过Windows资源管理器复制:109MBps
  • 通过TeraCopy复制:34MBps

马上,我们发现Explorer的文件传输几乎使您的网络吞吐量最大化。1Gbps链路等于每秒1,000,000,000 ,以字节的二进制单位为119MBps。Explorer的时钟为109MBps,其余的10MBps(可笑的是您之前的max)可以通过开销,背景负载和碎片轻松解决。 :^Þ

(由于传输速率几乎等于网络速度,因此我们可以推测Explorer的文件传输是单向的,并且每个文件仅发送一个副本。)Explorer的文件访问速度为110MBps,每个文件访问两个文件。

现在用于TeraCopy。看来TeraCopy的速度几​​乎是资源管理器速度的三分之一。

根据其首选项对话框是否准确指示了所使用的算法,TeraCopy实际上可以发送两次整个源文件,以便它可以检查副本。立即,这将吞吐量减少了一半。如果打开了缓存,那么这也会降低速度,因为它必须等待每次写入完成才能发送新的块。与验证结合使用时,它甚至可以将其击倒更多。

如果启用并缓存验证,则34MBps的传输速率似乎是合理的。如果关闭验证并打开缓存,则应该与资源管理器大致相同(根据TeraCopy使用的文件传输代码与资源管理器所使用的文件传输代码有何不同,您可能仍会得到略少甚至更多的信息)。

如果您打算传输近10GB的数据,那么您也可以尝试更改设置并针对四个排列中的每一个重做传输,并记下您获得的速度(为了安全起见,请对其进行排序,以便缓存在两次运行之间关闭:)V+C+, V+C-, V-C+, V-C-


具有默认设置的TeraCopy首选项对话框的屏幕截图


1
在您看来,如果正在使用SSD来寻求最大性能,如果使用SSD来启用(检查)“使用系统写入缓存”,您是否建议?
Iroh叔叔

1

我怀疑这与Windows 8使用SMB v.3有关,并且我怀疑Teracopy与SMB v.3兼容并且默认恢复为SMB2。这只是一个猜测...


0

对于您的问题,我无法给出100%的答案,但我可以添加更多可能有帮助的答案。
我之所以选择Teracopy的原因是Windows必须在执行任何操作之前“计算”所有内容,并且这种计算本身有时会冻结整个过程。在其他帖子中,有人提到要复制的文件类型在Windows复制中很重要,我不能肯定地说在Teracopy中,因为我没有看到这种情况。但是到目前为止,我自己的尝试使我比任何情况下都少。我只是复制通用文件类型,而不是媒体(即照片/电影)文件。

我的测试是从100%GB网络上具有GB NIC访问权限的Seagate 3TB NAS到GB系统。最好的情况是14 Gbps。Windows从NAS移至系统HD的速度为12.4GBps,启动时间略长。没有什么比109Mb / s更快地达到30-34Mbps的速度了。

当然,部分原因是由于NAS的流量控制,即使在GB网络上也是如此。如果能够获得34GB / s的速度,我将感到非常高兴;如果能够获得109GB / s的速度,我会更加快乐。如果您找到更快的文件复印机,请发布!:)


1
我想补充一点,使用系统写缓存时使用的设置确实对实时完成产生了重大影响。快多了。
user1376156

您如何通过网络获得14Gbps?甚至SATA III也不支持这种速度。
3月Ho

0

有助于解决英特尔主板芯片组NIC之间的问题。

TOE(TCP卸载引擎)是2003年引入Windows的,当时,如果您“卸载”校验和,大多数服务器上使用的Broadcom NIC会产生可怕的结果,从而导致数据损坏。看起来NIC供应商仍然没有正确的选择,而不仅仅是Broadcom。与在软件中完成所有任务相比,网络卸载几乎总是较慢,而且显然也更容易出错。我会进入您的适配器设置并禁用所有类型的所有硬件卸载。


2
如果这是原因,那么所有TCP网络流量将很慢。不仅仅是Teracopies网络,还是快速的资源管理器副本。
Hennes 2013年

0

以前,我在通过TeraCopy进行慢速传输时遇到了相同的问题。带有Realtek千兆8111C内置lan卡的Celeron J1800。我得到的速度不超过每秒35-45兆字节。相当令人沮丧!

最终成为一个糟糕的lan卡驱动程序。

使用OEM驱动程序从头开始安装Windows。同样,我执行了以下操作:

在“设备管理器” /“ Lan卡” /“高级设置”下/“禁用除流量控制之外的所有内容”。

在“ Windows功能”下,禁用“远程差分压缩”。

现在平均速度在60-70 Mbps之间

在此处输入图片说明


-1

我还使用Teracopy 2.3 final和Synology Diskstation进行了几次测试。实际上,复制过程太慢。我复制文件的平均速度约为40 MB / s。

原始的Windows 8文件复制程序比Teracopy快!

现在,我目前正在尝试Ultracopier,我目前的速度约为80 MB / s,比Teracopy快得多。我喜欢Teracopy,但我认为Teracopy存在网络复制问题。

因为我要将许多文件从一个网络驱动器复制到另一个网络驱动器,所以我必须使用可以获得的最快的复制程序,因为复制过程总是太长。


1
我正要尝试使用Ultracopier ...,我在Google上进行了搜索,并且Wiki声明它是伪装成Windows资源管理器文件的替代品的恶意软件...注意!谨防!“ Ultracopier是一种恶意软件,伪装成可替代Windows Explorer / File Explorer的文件复制功能的工具。” en.wikipedia.org/wiki/Ultracopier

2
Ultracopier是一种恶意软件-我不建议您使用它。(en.wikipedia.org/wiki/Ultracopier
艺术Gertner教授

4
如果您实际上花时间阅读了该Wiki页面链接文章,则会发现:“为了资助该项目,我将一个比特币矿工(使用100%使用GPU的)或没有比特币的版本放入了广告,但带有一个小的广告免费版本。” 但这是关于软件没有在下载站点上明确说明的事实。
Mokubai
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.