我的Samba文件服务器的随机千兆带宽

我拥有一个个人文件服务器,build立在AMD X2平台上,配有一个运行debian 6.0的英特尔千兆CTnetworking适配器。

我已经构build了一个raid5(2到x 3),由samba 3.5.6共享

从我的台式电脑(windows7)上拷贝大文件时,有时下载/上传速度稳定在55 / 60Mb / s左右,有时非常不稳定,从1或2Mb / s下降到20 / 30Mb / s,真的不稳定。

我也testing过在raid和主磁盘上使用samba共享,结果是类似的。

我在服务器上运行了一些hdparm -tT:

/dev/sda: Timing cached reads: 4698 MB in 2.00 seconds = 2349.11 MB/sec Timing buffered disk reads: 374 MB in 3.00 seconds = 124.49 MB/sec /dev/md0: Timing cached reads: 4814 MB in 2.00 seconds = 2407.76 MB/sec Timing buffered disk reads: 640 MB in 3.00 seconds = 213.02 MB/sec 

另外,我用iperf来testing两台计算机之间的带宽

 iperf.exe -c pacem -n 1073741824 -fm ------------------------------------------------------------ Client connecting to pacem, TCP port 5001 TCP window size: 0.06 MByte (default) ------------------------------------------------------------ [ 3] local 10.0.0.145 port 50913 connected with 10.0.0.37 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-68.7 sec 1024 MBytes 125 Mbits/sec 

我怎样才能有效地find问题所在?

谢谢阅读!

您所描述的问题很可能是由三个因素造成的:

  1. 您的smb.conf文件的[global]部分中的socket options 。 开始的一个好的基准是:

     socket options = IPTOS_THROUGHPUT TCP_NODELAY SO_KEEPALIVE 

    看看这是如何工作的; 性能瓶颈通常足以让Samba“走出去”。 对于其他选项,请查看Samba页面 ; 特别是SO_SNDBUF和SO_RCVBUF。 错误地设置这些值将会对性能造成负面影响。 这可能需要一些试验和错误。

  2. 使上述情况变得更糟,文件的大小影响Samba。 小文件有更多的开销。 如果你调整你的套接字选项批量传输,你会看到小文件速度变得更糟。 同样,对小文件进行调整会使大文件传输变得更糟 理想情况下,你会弄清楚你最经常传输什么,或者是什么给你带来最大的不同(在4GB的DVD ISO上慢,通常比在1KB文件上慢)更有意义。

  3. DNS和VFS设置。 如果您没有正确configurationDNS正向和反向映射,则需要禁用Samba的DNS查找( dns proxy = nohostname lookups = no )。 当你第一次连接到一个Samba共享时,这是最明显的(如果它需要超过5秒,这是问题)。

    在Samba的[global]部分中可以configuration各种VFS和相关选项。 如果他们错了,打开/保存每个文件时,Samba将不得不处理错误。 适合您服务器的设置将取决于它的文件系统,安全性以及您希望启用的某些function。 这部分没有快速的答案,但总体来说,这是最小的差别。