简短版本:我在本地有线networking上安装了Linux服务器(RHEL5)和Windows 7 Professional笔记本电脑。 将大文件复制到服务器会逐渐变慢,直到完全停止。
长版
在服务器上有一个Samba共享,我可以连接到该共享,并且具有读/写访问权限。
从服务器到笔记本电脑的所有传输都可以正常工作,但是从笔记本电脑到服务器的传输速度似乎会受到限制,有时会完全失败。
小文件传输正常,但大约2MB的文件通常会失败。
为了testing这是一个Samba问题还是其他问题,我尝试使用scp (Putty的pscp )将一些文件从笔记本电脑复制到服务器。 1MB文件几乎立即复制,2MB需要3分钟,3.7MB需要18分钟。 所以它不是特定于Samba。
而且,对于Samba和SCP,我都可以复制几MB的非常小的文件而没有问题。
什么可能导致这种行为? 我会非常感激任何意见。
Windows给出了这个错误消息:
There is a problem accessing H:\ Make sure you are connected to the network and try again
在服务器上, ifconfig显示一些错误:
eth0 Link encap:Ethernet HWaddr 00:22:19:AD:52:E2 inet addr:192.168.1.7 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::222:19ff:fead:52e2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4125439 errors:72181 dropped:0 overruns:0 frame:0 TX packets:3575918 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4481289749 (4.1 GiB) TX bytes:581533090 (554.5 MiB) Interrupt:169 Memory:dfdf0000-dfe00000
/var/log/messages :
Aug 16 14:50:16 dev smbd[475]: [2013/08/16 14:50:16, 0] lib/util_sock.c:read_data(540) Aug 16 14:50:16 dev smbd[475]: read_data: read failure for 4 bytes to client 192.168.1.12. Error = Connection reset by peer Aug 16 14:50:16 dev smbd[475]: [2013/08/16 14:50:16, 0] lib/util_sock.c:write_data(568) Aug 16 14:50:16 dev smbd[475]: write_data: write failure in writing to client 192.168.1.12. Error Broken pipe Aug 16 14:50:16 dev smbd[475]: [2013/08/16 14:50:16, 0] lib/util_sock.c:send_smb(767) Aug 16 14:50:16 dev smbd[475]: Error writing 75 bytes to client. -1. (Broken pipe)
/var/log/samba/smbd.log :
[2013/08/16 14:50:16, 0] lib/util_sock.c:read_data(540) read_data: read failure for 4 bytes to client 192.168.1.12. Error = Connection reset by peer [2013/08/16 14:50:16, 0] lib/util_sock.c:write_data(568) write_data: write failure in writing to client 192.168.1.12. Error Broken pipe [2013/08/16 14:50:16, 0] lib/util_sock.c:send_smb(767) Error writing 75 bytes to client. -1. (Broken pipe) [2013/08/16 14:50:16, 1] smbd/service.c:make_connection_snum(1077) liam-pc (192.168.1.12) connect to service external initially as user liam (uid=502, gid=502) (pid 529)
编辑:如果我在笔记本电脑启动到Ubuntu,我没有问题的大型文件复制到服务器上的SMB共享。 所以这个问题是在Windows 7中,或与Windows 7 / RHEL5组合。
我跑service network restart ,似乎已经解决了这个问题。 这似乎有点奇怪,因为问题一年多了,而且服务器从那时起就被重新启动了好几次了。 我在70年代复制了一个365MB的文件到服务器,平均5.2MB / s,没有错误。
这听起来像是一个networking问题或Windows和Linux Samba版本之间的不兼容。
您是否尝试将笔记本电脑直接连接到服务器? 如果它运行正确的Ubuntu不应该是这个问题,但你可以尝试。
你应该采取一些stream量捕捉,看看你的networking中发生了什么。 你可以在这里分享,也许我们可以find问题。
如果没有其他的工作,你可以尝试这个分析工具 。 我发现它非常有趣,你可以上传一个pcap文件,并通过电子邮件向你发送一个分析。 正如我所看到的,您可以在表单中提交您的问题。
由于便宜的D-link交换机,我遇到了这个问题。 例如DGS-1008D。 这个问题对于smb和nfs是一样的。
我使用wget和内部http服务器来识别networking问题:
wget http://static-http.example.local/1024mb_file -O /dev/null
你可以使用任何主机作为内部http服务器使用python:
python -m SimpleHTTPServer 8000
这将服务于相对于服务器上当前目录的文件
然后在客户端使用以下命令:
wget http://host:8000/bigfile.tgz -O /dev/null
如果你有一个千兆networking,你应该可以达到90-100Mb /秒的速度。 如果你有一个10M的networking,你应该可以获得10Mb / sec左右的速度。
这个速度可以在第二个attepmt读取,因为这些文件被caching。 在将文件caching之前,您将获得主机磁盘读取速度。
但是,如果你使用以太网来解决networking问题,你将会得到比正常速度低10倍的速度
closures/打开开关解决问题,但一段时间。