Performance

FreeBSD:GBit-Ethernet 上的 Samba 性能

  • January 7, 2011

我正在使用帶有 RAID-Z 的 FreeBSD NAS。

我可以從 ZFS 磁碟讀取 ~300MB/s 到盒子上的 /dev/null ,但通過 GBit-Ethernet 和 SMB 到 Windows 7 (Samba 3.5.6) 只能獲得大約 50MB/s。兩個系統都有 Intel-PCIe-NIC 並直接連接。

Samba 配置為使用 AIO,我已經嘗試過調整 TCP/IP:

kern.ipc.maxsockbuf=16777216
net.inet.tcp.sendspace=1048576
net.inet.tcp.recvspace=1048576
net.inet.tcp.sendbuf_max=8388608
net.inet.tcp.recvbuf_max=8388608
net.inet.tcp.delayed_ack=0

任何想法是什麼導致了瓶頸?我認為連結應該可以輕鬆處理 100 MB/s。

好吧,實際上有兩個問題:

  1. 巨型幀畢竟不是那麼無關緊要。這給了我巨大的性能提升。
  2. 我的 SSD 磁碟可以輕鬆寫入 100 MB/s,但我最近打開了 NTFS 壓縮,這造成了問題(寫入時第二次長時間停頓)。TRIM 優化解決了這個問題。

要測試驅動程序的電纜和頻寬,您應該取出硬碟(和 windows 盒的防病毒軟體)寫入限制。

所以你可以:

  • 在 Windows 盒子上創建一個 RAM 磁碟,將文件下載/推送到它上面
  • 創建一個 samba 共享並將其重定向到 /dev/null 並從 windows 框中將文件推送到其中
  • 執行跨平台頻寬實用程序(可能是 Windows 平台上英特爾 NIC 實用程序的一部分)。

如果有人知道跨平台的 windows-unix 基準測試工具,請告訴我/我們 :-)

是的,您需要確保您的網卡和交換機上有匹配的巨型幀(2048 字節似乎是“標準”)。對於千兆流,標準 TCP/IP 數據包大小有點小。

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