首先,這個問題不是我真正遇到的問題,而是一個問題“為什麼會這樣”。在 Windows 世界待了幾年之後,我試圖回到 Linux,但我失去了很多…所以這裡是重新學習的時候了。 :)
我有一台 Windows 10 x64 電腦作為我的網路中的檔案伺服器。我從 Ubuntu Mate 16.04 存取共用。主要文件瀏覽器是Caja。
這是好的部分: 當我瀏覽網路上的網路共用並開始複製檔案時,最大速度約為 600 Mbit。但是當我使用 CIFS 在 Fstab 中永久掛載共享時(根據https://help.ubuntu.com/community/MountWindowsSharesPermanently)我可以利用我的完整連結速度(1 Gbit)。透過終端使用 smbclient 時,我也可以利用完整的連結速度。
任何人都可以向我解釋為什麼 Caja (以及據我所知的 Nautilus)會出現這種情況,也許給我一些鏈接,讓我可以閱讀更多相關信息? CIFS 和 SMB 本質上不是一樣的嗎?
謝謝!
更新:我使用的是 Intel I217-V(修訂版 04)NIC。
答案1
SMB 是 IBM 發明的伺服器訊息區塊,用於透過 LAN 網路寫入檔案。 CIFS 是一種通用 Internet 檔案系統。 CIFS 是 Microsoft 完成的 SMB 的特定實作。
1.) SMB 的 CIFS 實作目前很少使用。大多數現代儲存系統不再使用 CIFS,而是使用 SMB 2 或 SMB 3。
2.) SMB 2 和 SMB 3 是 CIFS 實施的大規模升級。
現在需要記住一些事情(TCP 視窗大小 * 8 位元 / RTT(以毫秒為單位)) = 最大 TCP 吞吐量(以 bps 為單位)。雖然您可能擁有千兆位元網絡,但單一 TCP 流量不太可能達到那麼高。
現在優化 SMB 設定:
[global]
看:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798532
strict allocate = Yes
看:https://lists.samba.org/archive/samba-technical/2014-July/101304.html
allocation roundup size = 4096
允許在一個資料包中讀取 65535 位元組
讀取原始資料 = 是
伺服器簽章會減慢速度。
server signing = No
支援RAW寫入。
write raw = Yes
“嚴格鎖定=自動”或“嚴格鎖定=否”是可接受的。
strict locking = No
套接字選項 = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
「最小接收檔案大小」將直接傳遞到內核,recvfile/splice 系統呼叫。
min receivefile size = 16384
使用更有效率的sendfile()系統調用
use sendfile = Yes
Samba 必須使用非同步檔案支援 I/O 支援來構建
aio read size = 16384
aio write size = 16384
另外,就我而言,我需要更改 nsswitch.conf 中名稱查找的順序。事實證明,這個配置包含這樣一行。
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
只需在主機行中新增“wins”即可解決問題。
hosts: files wins mdns4_minimal [NOTFOUND=return] dns mdns4