Samba 传输的“幕后”发生了什么?特别是传输速度偶尔会下降吗?

Samba 传输的“幕后”发生了什么?特别是传输速度偶尔会下降吗?

我有一台带有 Samba 共享文件夹的 Windows 7 系统和一台可以访问该文件夹的 Ubuntu 系统。使用 Ubuntu 系统,我将一个 68GB 文件夹 (SSD) 复制到 Windows 机器 (HDD),运行正常。

在 Ubuntu 机器上,我看到传输速度约为 200-350Mib/秒,而在 Windows 机器上,我看到网络利用率约为 80-90%。但是,传输有时会突然停止几秒钟。我只能猜测 SSD 正在达到其最大速度,而 Windows 机器正在填充 RAM,然后在速度下降期间写入 HDD 以准备再次填充 RAM。

这是 Windows 网络图:

在此处输入图片描述

我的问题是,这是传输数据的最有效方式吗?Ubuntu 系统限制其读取速度以与 Windows 机器的写入速度同步不是更有效吗?如果是这样,这是 Samba 的限制吗?如果 Ubuntu 有一个共享文件夹,而我从 Windows 执行复制命令,我会看到相同的行为吗?

答案1

这很可能是传输速度暂时减慢,以允许较慢的磁盘赶上写入/读取的速度。

任何传输都只能以最慢的组件的速度运行......在这种情况下,可能是 Windows 主轴磁盘。

如果您打开性能监视器并查看 Windows 中的磁盘活动,您会发现磁盘可能一直受到重击,并且当写入缓冲区填满时,磁盘需要减慢/停止接受新数据几毫秒,以便能够赶上。

更改复制方法不会对任何东西产生很大影响 - 无论是通过 unc 还是映射驱动器、命令行或 GUI 进行传输,速度都只会与最慢的组件一样快。

如果 Ubuntu 机器做了任何形式的限制,它只会增加延迟,因为需要计算何时/是否继续重置速度限制,这会产生额外的开销。最好的办法是让它继续运行。

相关内容