Networking

為什麼我的本地網路傳輸速度會隨著文件變大而降低?

  • September 28, 2015

**短版:**我在本地有線網路上有一台 Linux 伺服器 (RHEL5) 和一台 Windows 7 Professional 筆記型電腦。將大文件複製到伺服器會逐漸變慢,直到完全停止。

長版

伺服器上有一個 Samba 共享,我可以連接到它,並且我具有讀/寫訪問權限。

從伺服器到筆記型電腦的所有傳輸都可以正常工作,但從筆記型電腦到伺服器的傳輸似乎速度受到限制,有時甚至完全失敗。

小文件傳輸正常,但超過 2MB 的文件通常會失敗。

為了測試這是 Samba 問題還是其他問題,我嘗試使用scp(Putty’s 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,沒有錯誤。

這聽起來像是網路問題或 Windows 和 Linux Samba 版本之間的不兼容。

您是否嘗試過將筆記型電腦直接插入伺服器?如果它在 Ubuntu 上執行正常,那應該不是問題,但您可以嘗試。

您應該擷取一些流量以查看它在您的網路中實際發生的情況。您可以在這里分享它,也許我們可以找到問題。

如果沒有其他工作,你可以試試這個分析工具。我發現它真的很有趣,您可以上傳 pcap 文件,然後他們會通過電子郵件向您發送分析。如我所見,您可以在表單中送出您的問題。

引用自:https://serverfault.com/questions/531509