OSX 10.6客户端的Samba性能很慢

我刚刚在一台虚拟化的CentOS 5.4机器上build立了一个新的Samba 3.3服务器,并且发现它在非常特殊的情况下遇到性能问题。 我的老板有一台运行Mac OSX 10.6的Macbook Pro。 当他试图……将30兆字节的文件传输到服务器上时,速度极慢(15+秒)。

这里还有一些其他有趣的数据点:

  • 从服务器传输相同的文件只需要几秒钟。 极端的缓慢只是在写。
  • 将相同的文件传输到我们已经安装好的旧版samba服务器上,运行Fedora Core 5和Samba 3.0几乎是瞬间的。 不用说,我们正在尝试升级,否则我们会继续使用它。
  • 使用SFTP将相同的文件传输到新服务器需要1-2秒。
  • 尝试使用我的个人OSX 10.5机器将相同的示例文件传输到新服务器上时,无论使用何种协议(Samba,SCP,SFTP),都需要大约5-6秒的时间。 所以它比其他协议上的老板机要慢,但是在使用Samba的时候更快。

我已经尝试了一些在Google上列出的加速技巧,比如socket options = TCP_NODELAYread rawwrite raw ,但是没有一个对速度产生任何影响。 防火墙都configuration正确,虚拟主机将所有桥接stream量传递到相应的虚拟服务器,并允许虚拟服务器本身通过“Samba”。 我也浏览了旧的服务器的configuration文件,没有任何东西跳出来,因为它是“aha, 就是为什么它如此之快”。

任何其他的想法?

编辑:新的信息。 我发现我的电脑使用的是WiFi而不是以太网。 当我切换到以太网时,我在服务器上的performance与我在各方面的老板(SFTP快,Samba写超慢等)相同。

您连接的以太网交换机是否有可能与Mac进行半双工连接? 你的描述(如果你尝试发送数据真的很快,那么你的描述(高速单向,低速其他,越来越差)听起来就像我在一端(交换机在你的情况下)处于半双工模式,而另一端Mac)试图使用全双工模式。

您可以使用ifconfig命令在Mac上检查模式(查找类似于“media:autoselect(1000baseT)status:active”的行;您如何检查(/是否可以检查)取决于其pipe理接口(如果有的话),你也可以使用像netstat -p tcp -s这样的东西来诊断,如果这是个问题,你可能会看到很多的重传。

注意:如果服务器和Mac位于不同的交换机上,交换机之间的连接也可能存在问题。

设置unix extensions = no

我们另外增加

 strict locking = no blocking locks = no kernel oplocks = no posix locking = no 

为我们的环境。 确保你知道你在做什么之前改变默认值。 一如既往, man smb.conf并使用列表。

join这里:
https://lists.samba.org/mailman/

在这里search:
http://marc.info/?l=samba
http://marc.info/?l=samba-technical

虚拟网卡的速度只是人为的,有点存储在“卡”寄存器中,只有客人使用才能显示通常的“速度”状态。 它永远不会被用来实际限制“卡”的实际速度,在qemu / kvm中没有代码可以这样做 – 数据包总是以最大速度stream动。 是的,不同的“卡”对CPU使用率和不同的效率有不同的影响,从而导致不同的速度,但是如果CPU足够快,则可以使用10mbps的pcnet模拟NIC以GigE速度发送数据。