好的,Linux 兄弟们,请多多包涵。我是一个 Windows 小伙子,他刚刚设置了他的第一个 linux 服务器......
我遇到的问题是,在从/向驻留在 linux 机器上的 samba 共享读取和写入时,samba 的性能真的很差。机器本身的本地磁盘 i/o 很棒,机器空闲,我是唯一一个访问它的人。当人们遇到 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 服务器 amd64 + samba 和颠覆
从板载 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
听起来你的网卡只有 10Mb/s。但在您使用该卡之前,请先尝试连接您的笔记本电脑以排除无线问题。如果您有同样的问题,请尝试使用 scp 而不是 samba 复制某些内容。只需从链接文本下载 pscp并通过键入以下内容传输文件:
如果运行速度也很慢,那么您的问题不是 Samba,您可能只需要一个不同的网卡驱动程序。