我刚刚在一台虚拟化的CentOS 5.4机器上build立了一个新的Samba 3.3服务器,并且发现它在非常特殊的情况下遇到性能问题。 我的老板有一台运行Mac OSX 10.6的Macbook Pro。 当他试图……将30兆字节的文件传输到服务器上时,速度极慢(15+秒)。
这里还有一些其他有趣的数据点:
我已经尝试了一些在Google上列出的加速技巧,比如socket options = TCP_NODELAY , read raw并write 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速度发送数据。