Bar*_*rge 1 networking linux bandwidth samba debian-squeeze
我拥有一个个人文件服务器,构建在 AMD X2 平台上,带有英特尔千兆 CT 网络适配器,运行 debian 6.0。
我已经构建了一个由 samba 3.5.6 共享的 raid5 (2To x 3)
我的台式机(windows7),在复制大文件时,有时下载/上传速度稳定在55/60Mb/s左右,有时,它真的很不稳定,从1或2Mb/s下降,最大20/30Mb /s,确实不稳定。
我也在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
Run Code Online (Sandbox Code Playgroud)
另外,我使用 iperf 来测试两台计算机之间的带宽:
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
Run Code Online (Sandbox Code Playgroud)
我怎样才能继续有效地找到问题所在?
谢谢阅读!
您所描述的问题很可能是由三个因素造成的:
socket options
在[global]
smb.conf 文件的部分。一个好的基线是:
socket options = IPTOS_THROUGHPUT TCP_NODELAY SO_KEEPALIVE
Run Code Online (Sandbox Code Playgroud)
看看它是如何工作的;通常足以让 Samba“避开”性能瓶颈。对于其他选项,请查看 Samba 页面;特别是 SO_SNDBUF 和 SO_RCVBUF。错误地设置这些值会对性能产生负面影响;这可能需要一些试验和错误。
更糟糕的是,文件的大小会影响 Samba。小文件有更多的开销。如果您为批量传输调整套接字选项,您会发现小文件速度变差。同样,对小文件的调整会使大文件传输变得更糟。理想情况下,您会弄清楚您最常传输的内容,或者对您产生最大影响的内容(4GB DVD ISO 慢通常比 1KB 文件慢更有意义)。
DNS 和 VFS 设置。如果您没有正确配置 DNS 正向和反向映射,您将需要禁用 Samba 的 DNS 查找(dns proxy = no
和hostname lookups = no
)。这在您第一次连接到 Samba 共享时最为明显(如果它花费的时间超过 5 秒,这就是问题所在)。
可以在 Samba 的 [global] 部分中配置各种 VFS 和相关选项。如果它们错了,Samba 将不得不在打开/保存每个文件时处理错误。适用于您的服务器的设置将取决于它的文件系统、安全性以及您想要启用的一些功能。这部分没有快速答案,但总体而言差异最小。