Win Vista 工作站和 Ubuntu 9.04 文件服务器之间的 Samba 性能不佳

Win Vista 工作站和 Ubuntu 9.04 文件服务器之间的 Samba 性能不佳

好的,Linux 兄弟们,请耐心听我说。我是一个 Windows 兄弟,刚刚设置了他的第一个 Linux 服务器...

我遇到的问题是,无论是从 Linux 机器上的 Samba 共享读取还是向其写入,Samba 性能都非常差。机器本身的本地磁盘 I/O 很好,机器处于空闲状态,只有我一个人访问它。我在 Google 上搜索并尝试了人们遇到 Samba 性能问题时提到的一些常见解决方法,但到目前为止没有任何效果。

服务器配置:
Intel ATOM 330 D945GCLF2 w bios 229(最新)
2x WD1001FALS(WD caviar black 1Tb),安装期间使用 linux 软件 raid 设置
2gb DDR2(800 5-4-4-18 降频至 500-3-3-3-9,通过 memtest86 的所有内存测试)
Ubuntu 9.04 server amd64 + samba 和 subversion
从板载 NIC 到 Linksys WRT300N 的有线 100 mbps 网络连接

客户端配置:
Dell inspiron 9400,Windows Vista x64,4Gb RAM,其他方面没有性能问题。
无线 g 连接(54Mbps,在同一网络上与其他资源相比,我获得 ~25Mbps)

Linux 机器上的本地磁盘 I/O 具有很大的吞吐量:

$ sudo hdparm -tT /dev/md2

/dev/md2:
 Timing cached reads:   1310 MB in  2.00 seconds = 655.21 MB/sec
 Timing buffered disk reads:  294 MB in  3.01 seconds =  97.82 MB/sec
$ sudo hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   1324 MB in  2.00 seconds = 661.47 MB/sec
 Timing buffered disk reads:  318 MB in  3.00 seconds = 105.85 MB/sec
$ sudo hdparm -tT /dev/sdb

/dev/sdb:
 Timing cached reads:   1328 MB in  2.00 seconds = 663.55 MB/sec
 Timing buffered disk reads:  300 MB in  3.01 seconds =  99.55 MB/sec

但是,当我通过网络将文件复制到 Samba 共享时,写入速度约为 1-1.5Mb/s。从 Samba 共享读取文件时,需要长时间休息(几秒钟)才能读取文件。

现在,服务器上的 TCPStat 显示了来自 Windows 框的大量流量,只需在 Windows 资源管理器中将 Samba 共享作为 unc 共享打开即可。看起来 Windows 正在枚举文件,但我不希望它阻止任何其他东西..?或者 Samba 默认是全顺序单会话/单连接?

有什么想法吗?在谷歌搜索时,我偶然发现了一些针对旧版 Linux 的文章,其中建议重新编译和替换 realtek 驱动程序,但这些文章都没有提到 ubuntu 9.04。在确定问题的根本原因之前,我真的不太愿意开始重新编译操作系统和/或设备驱动程序...

编辑:这是我的 smb.conf 文件(删除了注释等)->

[global]
   workgroup = WORKGROUP
   wins support = yes
   dns proxy = no
   name resolve order = wins lmhosts host bcast
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   encrypt passwords = true
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   map to guest = bad user

      SO_RCVBUF=8192 SO_SNDBUF=8192
socket options = TCP_NODELAY

   usershare allow guests = yes

[printers]
   comment = All Printers
   browseable = no
   path = /var/spool/samba
   printable = yes
   guest ok = no
   read only = yes
   create mask = 0700

[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no

[someshare]
comment = images
read only=no
locking = no
path = /home/someusername/someshare
guest ok = no

答案1

听起来你的网卡只能达到 10Mb/s。但在你摆弄网卡之前,先尝试有线连接你的笔记本电脑以排除无线问题。如果你有同样的问题,请尝试使用 scp 而不是 samba 复制一些内容。只需从链接文本并通过输入以下内容传输文件:

pscp <your file> <linux user>@<linux server>:<folder> 
for example:
  pscp c:\temp\some-big-file.txt [email protected]:/home/KristoferA 

如果运行速度也慢那么您的问题就不是 Samba,您可能只是需要不同的网卡驱动程序。

相关内容