為什麼 CIFS 安裝的共用比 SMB 更快?

為什麼 CIFS 安裝的共用比 SMB 更快?

首先,這個問題不是我真正遇到的問題,而是一個問題“為什麼會這樣”。在 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

相關內容