寻求建议以找到 Samba 服务器的瓶颈

寻求建议以找到 Samba 服务器的瓶颈

我的局域网结构:

  • 一台PC作为Samba客户端,IP:192.168.1.12
  • 运行 Samba 服务器的 NAS 路由器,IP:192.168.1.1。NAS 路由器使用 USB 密钥作为存储设备,USB 的最大速度为 15MB/s。

客户端下载一个 310MB 的文件需要 42.1 秒,即 7,36MB/s。传输过程中的分析结果(NAS 路由器的 Linux 堆栈已构建 oprofile)显示,CPU 时间中大约有 37% 处于 default_idle 函数中。我想了解为什么 default_idle 的比例如此之高。

我是这样做的:

  1. 我从USB复制了一个文件到路由器的ramfs中,下载速度达到15MB/s。

  2. 我在NAS路由器和PC上分别搭建了iperf来测试网络的最大传输速率,iperf的结果显示两个方向的最大速度大约是11.4MB/s。

嗯,现在看来 7.36MB/s 的限制是 samba 套件造成的。找到造成这个限制的地方也许有助于解释 default_idle 函数的高部分。

但我不知道该如何继续。请提供一些建议。

谢谢

答案1

SMB 具有相当大的协议开销;不幸的是,这不是你可以“修复”的问题。

鉴于您显然在 100mbit 上运行,任何有效载荷都永远不会达到 iperf“理论”实际限制 11.4MB/秒;我说理论上的,因为 iperf 假设完美条件并且不考虑任何窗口故障、错误或重传;它测量纯低级 IP 数据包吞吐量。

如果你可以设立一个FTP 服务在路由器上测试一下,你会发现你可以更接近 11.4MB 的带宽限制(FTP 是所有文件传输协议中开销最小的协议)。或者,看看你只使用网猫将数据泵入文件或从文件中泵出数据。

答案2

传闻,但我的一个朋友正在从事无线高清视频传输工作,发现从 Samba 切换到 NFS 后,吞吐量大幅增加。他说速度快了 2-3 倍。我相信这与适配器所说的一致

相关内容