这对我来说有点麻烦,我会尽量提供尽可能多的信息。我的设置如下:
我有一台运行 Windows 7 的笔记本电脑,通过有线以太网连接到路由器。我有一个 1TB 的外置硬盘,通过 USB 2.0 连接到 Windows 笔记本电脑,并由外部供电。
在 Windows 笔记本电脑上,我拥有运行 FreeNAS 8.0 Release VM 的 VirtualBox,其主硬盘 VDI 文件位于外部 USB 硬盘的根文件夹中。
我有另一个名为“media1”的虚拟硬盘 VDI,它也位于外部 USB 硬盘的根文件夹中,并通过虚拟 IDE 控制器连接到 FreeNAS VM。
FreeNAS VM 的虚拟 NIC 通过主机操作系统 (Windows 7) 桥接到 LAN。我运行着 CIFS 和 AFP 共享。当我加载 Windows 7 主机并连接到 FreeNAS VM 上的 CIFS 共享(在同一台机器上的 VirtualBox 中运行)时,我可以以大约 10 兆的速度传输文件字节每秒。当我通过 AFP / CIFS 从 LAN 上的另一台机器连接时,无论是通过有线以太网还是 802.11n,我的传输速度约为 10-30 兆位每秒。我知道 TCP 有开销,但减少十分之一?我从互联网下载文件的速度实际上比将它们传输到我的虚拟机和从虚拟机传输文件的速度要快。读写速度完全没有区别……两者始终保持在 15 mbps 左右。
AFP 甚至更慢。我正在使用 AFP 登录帐户。使用 CIFS,我未经身份验证进行连接。我希望我提供了足够多的重要信息。如果需要更多配置设置,我可以提供,但我猜实际瓶颈与基础设施有关,而不是配置?如果我可以详细说明,请告诉我。任何建议都将不胜感激。
答案1
您如何创建 CIFS / AFS 共享?如果您使用 VirtualBox 的内置文件共享,则可能会出现问题。在操作系统上正常进行共享。
尝试创建 NFS 共享并测试是否有更好的效果。
使用IO区域进行测试。这是一个开源文件系统基准测试实用程序。
以下是示例命令:
iozone -Rab result.wks -i 0 -i 1 -+u -f z:\scratch\test.tmp -q 64k -n 32M -g 1G -z
使用 Windows 中的映射网络驱动器工具并选择一个驱动器号。在我的示例中,我选择了 z:。对所有共享都尝试此操作,看看效果如何。
在测试期间,您可以运行命令iostat -x 10
来获取一些磁盘统计数据。在基准测试期间粘贴 iozone 的结果和 iostat 的输出。
2011年6月5日更新:
FreeNAS。对。听起来这可能是速度/双工设置的问题。FreeNAS 运行 OpenBSD 对吧?ethtool 应该可以工作。运行ethtool eth0
并验证您是否以千兆位连接。我以前在 *BSD 上遇到过一些非常烦人的 Realtek NIC 问题,不得不构建一些自定义模块才能使其正常工作。
6/5/11 第二次更新
当您的实例关闭时,还要检查“设备”下的虚拟盒网络设置。如果您希望客户操作系统能够访问互联网,请尝试不同的适配器类型,并为其中一个 NIC 尝试主机专用适配器,为另一个 NIC 尝试 NAT。
答案2
10美比字节您自己的机器每秒的数据传输已经够糟糕了,即使执行读取的进程是在虚拟机中的客户操作系统中,并且从慢速外部 USB 硬盘上的虚拟磁盘映像文件中读取。您应该至少得到两倍的速度。如果这种缓慢是由于在虚拟机中运行 FreeNAS 引入的延迟造成的,那么虚拟机导致的延迟可能也会降低您的网络吞吐量。
当您说“以太网”时,您的以太网连接是 10 兆位、100 兆位还是千兆位?如果是 100 兆位,并且您的 VM 引入了大量延迟,那么在这种情况下,我很容易看到 AFP 或 SMB 吞吐量仅为 30 兆位/秒。至于您的 802.11n 情况,您没有说明您的客户端和 AP 之间的 802.11n 数据速率是多少(如果您的 FreeNAS 盒是无线的,则说明您的 FreeNAS 盒和 AP 之间的数据速率是多少),因此您很容易看到 RF 条件,您只能获得 20-60 兆位/秒的信号速率,在这种情况下,吞吐量预计为 10-30 兆位/秒。
我认为一个非常有说服力的测试是将 FreeNAS 和您的一些媒体文件安装在它自己的分区上(最好安装在您的外部 USB 硬盘上,这样您就不会一次更改太多内容),并查看当 FreeNAS 本地运行而不是通过 VirtualBox 运行时您获得的 AFP 和 SMB 吞吐量。