我正在使用带有 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
好吧,实际上有两个问题:
- 毕竟巨型帧并不是那么不重要。它极大地提高了我的性能。
- 我的 SSD 磁盘可以轻松写入 100 MB/s,但我最近打开了 NTFS 压缩,这带来了问题(写入时长时间停顿)。TRIM 优化解决了这个问题。
答案2
要测试驱动程序的电缆和带宽,您应该取出硬盘(以及 Windows 系统的防病毒软件)的写入限制。
因此您可以:
在 Windows 机器上创建一个 RAM 磁盘,并将文件下载/推送到其中
创建 Samba 共享并将其重定向到 /dev/null,然后从 Windows 框中将文件推送到其中
运行跨平台带宽实用程序(可能是 Windows 平台上 Intel NIC 实用程序的一部分)。
如果有人知道跨平台的 Windows-Unix 基准测试工具,请告诉我/我们:-)
是的,您需要确保您的网卡和交换机上有匹配的巨型帧(2048 字节似乎是“标准”)。标准 TCP/IP 数据包大小对于千兆流来说有点小。